###前提
docomoの音声合成APIを使用して,botに話させたいと思っています.
このAPIから出力された音声データが
response.content
というものに格納されています.
音声データの形式がBinaryで
音声データのフォーマットは下記の通りです.
【符号化方式】
リニアPCM
【チャネル数】
1(モノラル)
【サンプル周波数】
16000
【ビット深度】
16bit(ビッグエンディアン)
###現状
今は,Binaryデータを直接再生できないので,以下のような形で,soxを使ってwavデータに変換して音声を再生しています.
# バイナリデータの保存 fp = open(tmp + binary_file, 'wb') fp.write(response.content) fp.close() print ('Save binary data: ' + tmp + binary_file) # raw -> wavのコマンド cmd = "sox -t raw -r 16k -e signed -b 16 -B -c 1 " + tmp + binary_file + " " + sound_dir + wav_file # コマンドを実行 subprocess.check_output(cmd, shell=True) print("Done : " + sound_dir + wav_file) # wavの再生 play_wav(sound_dir + wav_file)
def play_wav(wav_file_path): # wavファイルの再生 cmd = "aplay -q " + wav_file_path # コマンドを実行 subprocess.check_output(cmd, shell=True)
###問題点
shell上でsox, aplayを使用することでシステムを実現しているのですが,これが使えない環境(heroku上など)で,Binaryファイルからwavファイルを作成し,それを再生することはできますでしょうか.
###補足情報(言語/FW/ツール等のバージョンなど)
Python3.4, Heroku, Docomo音声合成API

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/27 21:26
2017/04/28 00:56