simpleaudioで音声を正しく出力したい

実現したいこと

「output.wav」の音声データをsimpleaudioで正しく出力したい。

def play_audio(filename):
data, samplerate = sf.read(filename, dtype='int16')
sd.play(data, samplerate)
sd.wait()

前提

デバイス/OS:mac
エディタ:PyCharm
インタプリタ:Python3.7~3.9

発生している問題・エラーメッセージ

エラーは発生していませんが
ノイズのみが流れてしまい、音声として聞き取れません。

該当のソースコード

python

1def play_audio(filename):2 data, samplerate = sf.read(filename, dtype='int16')3 sd.play(data, samplerate)4 sd.wait()5 6output_filename = "output.wav"7play_audio(output_filename)

試したこと

https://www.wizard-notes.com/entry/python/sounddevice
こちらのを参考に下記のようにprintで出力させてみました。

python

1def play_audio(filename):2 data, samplerate = sf.read(filename, dtype='int16')3 sd.default.device = 14 print(f'samplerate: {samplerate}')5 print(f'data: {data}')6 print(f'data: {data.shape}')7 print('==============')8 device_list = sd.query_devices()9 print(device_list)10 11 for device_number in sd.default.device:12 print(device_number)13 print(device_list[device_number])14 # sd.play(data, samplerate)15 # sd.wait()

その結果

samplerate: 24000 data: [0 0 0 ... 0 0 0] data: (36288,) ============== 0 MacBook Proのマイク, Core Audio (1 in, 0 out) * 1 MacBook Proのスピーカー, Core Audio (0 in, 2 out) 1 {'name': 'MacBook Proのスピーカー', 'index': 1, 'hostapi': 0, 'max_input_channels': 0, 'max_output_channels': 2, 'default_low_input_latency': 0.01, 'default_low_output_latency': 0.01175, 'default_high_input_late0.1, 'default_high_output_latency': 0.021083333333333332, 'default_samplerate': 48000.0} 1 {'name': 'MacBook Proのスピーカー', 'index': 1, 'hostapi': 0, 'max_input_channels': 0, 'max_output_channels': 2, 'default_low_input_latency': 0.01, 'default_low_output_latency': 0.01175, 'default_high_input_late0.1, 'default_high_output_latency': 0.021083333333333332, 'default_samplerate': 48000.0}

上記のような出力結果となりました。

本来ステレオの出力は2次元配列で、macのスピーカーもステレオがデフォルトに設定されているようなので
data.reshape(-1, 2)
data.reshape(2, -1)
のどちらも試してみましたが、変化はありませんでした。

また、default_samplerateが「48000.0」に対してsamplerateが「24000」であるため
sd.play(data, samplerate*2)
としてみたところ、
改善がみられ、ノイズではなくヒトの声を高速再生したように聞こえました。
また、再生時間も本来の時間に比べ遥かに短くなっていました。

おそらく、どこかで正弦波をいじればいいのだろうと思いますが、それがわかりません。
お教え頂けますでしょうか?

コメントを投稿

0 コメント