1

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 ファイルを書き込むことはできません。

明確になったことを願っています。:-)

私の質問に答えてくれてありがとう。

ジュリオ

4

2 に答える 2

0

ここで決定的な答えを提供することはできません、申し訳ありません。しかし、いくつかの試行錯誤があります.pymediaモジュールのドキュメントを見て、設定できる品質構成があるかどうかを確認します.

もう 1 つの問題は、wave や raw オーディオとは異なり、mp3 でエンコードされたオーディオを単純に連結することはできないということです。 mp3 エンコードされたオーディオを生成します。

また、「ワンステップ」で行うのではなく、ファイルをディスクに記録して再変換するのは厄介だと感じることがあります。自分自身をファイルします。Unix ライクなシステムを使用している場合は、いつでも FIFO 特殊ファイルを作成し (mkfifo コマンドを使用)、そこに yoru .wav データを別のプロセスでエンコードするために送信できます (lame を使用)。中間ファイルを使用しますが、実際にはそうしません。

于 2010-02-04T11:50:31.533 に答える