espeakを使用してテキストファイルをmp3ファイルに変換したいのですが。これは可能ですか?espeakを使用して、テキストを曲に変換できる曲合成シェルスクリプトを作成しようとしています。
espeakを使用してテキストファイルをmp3ファイルに変換したいのですが。これは可能ですか?espeakを使用して、テキストを曲に変換できる曲合成シェルスクリプトを作成しようとしています。
回答:
これには2つの方法があります。wav
ファイルだけが必要な場合は、最初の例をmp3
参照してください。変換については、2番目の例を参照してください。
1)オプションespeak
を使用してテキストファイルをフィードし、-f
オプションを使用して、--stdout
そのデータストリームをファイルにリダイレクトしwav
、任意のオーディオプレーヤーで正しく再生される有効なファイルを作成します。
espeak -f mytext --stdout > myaudio
file
コマンド(file myaudio
)で確認した結果:
myaudio: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 22050 Hz
2)mp3変換が必要な場合は、プログラムを使用してファイルを変換する必要があります(または単にファイルを保存audacity
してmp3としてエクスポートします)。私はffmpeg
(gitバージョン)を使用しましたが、任意のプログラムを使用してオプションを変更できます。
espeak -f myfile --stdout | ffmpeg -i - -ar 44100 -ac 2 -ab 192k -f mp3 final.mp3
結果は次のようにチェックされましたfile final.mp3
:
final.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, Stereo
私は実際にこれを達成するスクリプトを書いた...そしてそれは結局かなりうまくいった。
https://github.com/divVerent/ecantorix
例:https : //github.com/downloads/divVerent/ecantorix/sarastro.ogg
--stdout
espeakのオプションは、オーディオデバイスを通してそれを置くのではなく、stdoutにオーディオデータを書き込むためにそれを教えてくれます。そこから、たとえばffmpegにパイプして、適切な形式に変換できます。