1

我在 BSD 上使用 espeak 将文本输出为声音。我的问题是我希望它把它当作.mp3,但我运气不好。我尝试将输出通过管道传输到 tee 但我想这仅适用于标准输出而不仅仅是播放声音。

有任何想法吗?我最后的手段是重新编译我自己的 espeak 版本,它允许我保存到文件而不是播放它

4

2 回答 2

2

您可以将其编写为 wave,然后将其转换为ffmpeg

espeak "HelloWorld" -w <file>.wav

或管道ffmpeg

espeak "HelloWorld" --stdout | ffmpeg -i pipe:0 output.mp3
于 2012-11-15T19:21:57.927 回答
1

文档中

-w <wave file>
将语音输出写入 WAV 格式的文件,而不是说出它。

--stdout
在生成语音输出时将其写入标准输出,而不是说出来。数据以 WAV 文件头开始,它指示数据的采样率和格式。长度字段设置为零,因为在生成标头时数据的长度是未知的。

看起来这两个选项都会生成 WAV 文件,但您可以轻松地转换这些文件,而无需其他程序(如 ffmpeg)。

于 2012-11-15T19:22:16.230 回答