#やってみたいこと
iPhoneのボイスメモを用いて録音した音声データ(kay.m4a)を'https://online-audio-converter.com/ja/'のコンバーターを用いて.wavファイルに変換し(kay.wav)、サンプリング情報に加えてその波形データをmatplotlib上で出力しようとすると、xとyの次元が合わないとのエラーが出ました。
#該当コード
Python
1import wave as wave 2import pyroomacoustics as pa 3import numpy as np 4import matplotlib.pyplot as plt 5 6wav=wave.open('/Users/***/Desktop/Musica/kay.wav') 7 8print('サンプリング周波数: ',str(wav.getframerate()), 'Hz') 9print('サンプルサイズ:', str(wav.getsampwidth()), 'bytes') 10print('サンプル数: ', str(wav.getnframes())) 11print('チャンネル数: ', str(wav.getnchannels())) 12print('音声ファイルの時間: ', str(wav.getnframes()/wav.getframerate()), 's') 13 14data=wav.readframes(wav.getnframes()) 15data=np.frombuffer(data, dtype=np.int16) 16wav.close() 17 18data=data/np.iinfo(np.int16).max 19x=np.array(range(wav.getnframes()))/wav.getframerate() 20plt.xlabel('Time(s)') 21plt.ylabel('Value') 22plt.plot(x, data, color='navy') 23plt.show()
#サンプリング情報の出力(正常)と描画に関する出力(エラー)
Python
1サンプリング周波数: 44100 Hz 2サンプルサイズ: 2 bytes 3サンプル数: 8549962 4チャンネル数: 2 5音声ファイルの時間: 193.87668934240364 s 6Traceback (most recent call last): 7 File "/Users/***/Desktop/Musica/ wav_file.py", line 22, in <module> 8 plt.plot(x, data, color='navy') 9 File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/pyplot.py", line 2796, in plot 10 is not None else {}), **kwargs) 11 File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_axes.py", line 1665, in plot 12 lines = [*self._get_lines(*args, data=data, **kwargs)] 13 File "/Users/*/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 225, in __call__ 14 yield from self._plot_args(this, kwargs) 15 File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 391, in _plot_args 16 x, y = self._xy_from_xy(x, y) 17 File "/Users/***/opt/anaconda3/lib/python3.7/site-packages/matplotlib/axes/_base.py", line 270, in _xy_from_xy 18 "have shapes {} and {}".format(x.shape, y.shape)) 19ValueError: x and y must have same first dimension, but have shapes (8549962,) and (17099924,)
#原因推測
録音はAirpodsを使いました。学習が浅い為分かりませんが、おそらく拾った波形データが左右で異なる為yの値が二次元になっているということでしょうか?確かめる場所もどこか怪しいのですが、お力添え頂ける箇所が御座いましたら、ご教授のほど宜しくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/31 11:58