やること
以前、音声会話できるRAGチャットシステムを作りました。
そのときに使った技術のおさらいになりますが、Pythonで音声ファイルを再生する方法を紹介します。
準備
simpleaudioというパッケージをインストールします。
pip install simpleaudio
こちらの音声ファイルを再生してみます。VOICEVOXの満別花丸です。
コード
こちらが最小コードです。
import simpleaudio
from time import sleep
wav_obj = simpleaudio.WaveObject.from_wave_file('なんくるないさー.wav')
play_obj = wav_obj.play()
これだけで「なんくるないさー」が再生されます。簡単ですね!
0.5秒間隔で3回再生してみます。
wav_obj = simpleaudio.WaveObject.from_wave_file('なんくるないさー.wav')
for i in range(3):
play_obj = wav_obj.play()
sleep(0.5)
音声が重なってしまいました。
前の音声の終了を待つには .wait_done() を使用します。
wav_obj = simpleaudio.WaveObject.from_wave_file('なんくるないさー.wav')
for i in range(3):
play_obj = wav_obj.play()
play_obj.wait_done()
連続で再生する場合はこうすると良いでしょう。ただし、待っている間はsleepと同じですべての処理が停止しているため、メインループを止めたくない場合はスレッド処理などの工夫が必要になります。
おわりに
自動運転車の車内アナウンスに使う予定です。「まもなく停留所です」とかですね。