質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

音声データの波形表示をmatplotlibで表示しようにも(x,y)の次元が合わないのはステレオで録音したから?

kay_ventris4
kay_ventris4

総合スコア263

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0リアクション

0クリップ

2770閲覧

投稿2020/10/31 08:55

編集2020/10/31 08:56

#やってみたいこと
iPhoneのボイスメモを用いて録音した音声データ(kay.m4a)を'https://online-audio-converter.com/ja/'のコンバーターを用いて.wavファイルに変換し(kay.wav)、サンプリング情報に加えてその波形データをmatplotlib上で出力しようとすると、xとyの次元が合わないとのエラーが出ました。

#該当コード

Python

import wave as wave import pyroomacoustics as pa import numpy as np import matplotlib.pyplot as plt wav=wave.open('/Users/***/Desktop/Musica/kay.wav') print('サンプリング周波数: ',str(wav.getframerate()), 'Hz') print('サンプルサイズ:', str(wav.getsampwidth()), 'bytes') print('サンプル数: ', str(wav.getnframes())) print('チャンネル数: ', str(wav.getnchannels())) print('音声ファイルの時間: ', str(wav.getnframes()/wav.getframerate()), 's') data=wav.readframes(wav.getnframes()) data=np.frombuffer(data, dtype=np.int16) wav.close() data=data/np.iinfo(np.int16).max x=np.array(range(wav.getnframes()))/wav.getframerate() plt.xlabel('Time(s)') plt.ylabel('Value') plt.plot(x, data, color='navy') plt.show()

#サンプリング情報の出力(正常)と描画に関する出力(エラー)

Python

サンプリング周波数: 44100 Hz サンプルサイズ: 2 bytes サンプル数: 8549962 チャンネル数: 2 音声ファイルの時間: 193.87668934240364 s Traceback (most recent call last): File "/Users/***/Desktop/Musica/ wav_file.py", line 22, in <module> plt.plot(x, data, color='navy') File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2796, in plot is not None else {}), **kwargs) File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 1665, in plot lines = [*self._get_lines(*args, data=data, **kwargs)] File "/Users/*/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 225, in __call__ yield from self._plot_args(this, kwargs) File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 391, in _plot_args x, y = self._xy_from_xy(x, y) File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 270, in _xy_from_xy "have shapes {} and {}".format(x.shape, y.shape)) ValueError: x and y must have same first dimension, but have shapes (8549962,) and (17099924,)

#原因推測
録音はAirpodsを使いました。学習が浅い為分かりませんが、おそらく拾った波形データが左右で異なる為yの値が二次元になっているということでしょうか?確かめる場所もどこか怪しいのですが、お力添え頂ける箇所が御座いましたら、ご教授のほど宜しくお願い申し上げます。

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Matplotlib

MatplotlibはPythonのおよび、NumPy用のグラフ描画ライブラリです。多くの場合、IPythonと連携して使われます。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。