从 espeak 生成 mp3 文件

从 espeak 生成 mp3 文件

我想使用 espeak 将文本文件转换为 mp3 文件。可以这样做吗?我正在尝试使用 espeak 创建一个可以将文本转换为歌曲的歌曲合成 shell 脚本。

答案1

有两种方法可以做到这一点;如果您只想要一个wav文件,请参见第一个例子;如果您想要mp3转换,请参见第二个示例。

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

答案2

我实际上编写了一个脚本来实现这一点......而且效果很好。

https://github.com/divVerent/ecantorix

例子:https://github.com/downloads/divVerent/ecantorix/sarastro.ogg

答案3

espeak 现在有一个 -w 选项,可以输出为 wav
(之后仍然需要转换为 mp3。)

espeak -f foo.txt -w foo.wav

答案4

espeak选项--stdout将告诉它将音频数据写入 stdout,而不是通过音频设备。从那里,您可以将其导入 ffmpeg 等,以转换为正确的格式。

相关内容