Python 2.5 を使用して、音声 mp3 ファイルでテキストを音声に変換する作業を行っています。
pyTSS を python Text-To-Speech モジュールとして使用して、オーディオ .wav ファイルのテキストを変換します (pyTTS では、mp3 形式で直接エンコードすることはできません)。その後、ラメ コマンド ライン エンコーダーを使用して、これらの wav ファイルを mp3 形式でコーディングします。
さて、問題は、特定の外部サウンドファイル(音声警告など)または(可能であれば生成された警告音)(オーディオmp3ファイルの特定のポイント、2つの単語の間)を挿入したいということです。
質問は次のとおりです。
1) PyTTS にはオーディオ ストリームをファイルまたはメモリ ストリームに保存できる可能性があることがわかりました。2つの機能を使用:
tts.SpeakToWave(ファイル、テキスト) または tts.SpeakToMemory(テキスト)
tts.SpeakToMemory(text) 関数を利用し、PyMedia を使用して、mp3 を直接保存することはできましたが、mp3 ファイル (再生時) は、ドナルドダックのように理解できないように聞こえます! :-) ここにコードのスニペットがあります:
params = {'id': acodec.getCodecID('mp3'), 'bitrate': 128000, 'sample_rate': 44100, 'ext': 'mp3', 'channels': 2}
m = tts.SpeakToMemory(p.Text)
soundBytes = m.GetData()
enc = acodec.Encoder(params)
frames = enc.encode(soundBytes)
f = file("test.mp3", 'wb')
for frame in frames:
f.write(frame)
f.close()
どこが問題なのかわからない?!? この可能性 (正しく動作する場合) は、wav ファイルの変換ステップをスキップすることをお勧めします。
2) 2 番目の問題として、オーディオ mp3 ファイル (テキスト読み上げモジュールから取得) を特定の警告音と連結する必要があります。
明らかに、オーディオ メモリ ストリーム全体を一意の mp3 ファイルにエンコードする前に、テキストのオーディオ メモリ ストリーム (テキスト読み上げモジュールの後) と警告音のストリームを連結できれば素晴らしいことです。
また、tksnack ライブラリはオーディオを連結できますが、mp3 ファイルを書き込むことはできません。
明確になったことを願っています。:-)
私の質問に答えてくれてありがとう。
ジュリオ