我在BSD上使用epeak将文本输出为声音。我的问题是我希望它把它当作一种.mp3但我运气不佳。我尝试将输出管道连接到 tee,但我想这仅适用于 stdout,而不仅仅是播放声音。
有什么想法吗?我最后的手段是重新编译我自己的 espeak 版本,它允许我保存到文件而不是播放它
您可以将其编写为 wave,然后用 ffmpeg
进行转换:
espeak "HelloWorld" -w <file>.wav
或管道到ffmpeg
espeak "HelloWorld" --stdout | ffmpeg -i pipe:0 output.mp3
从文档中:
-w <波形文件>
-
将语音输出以 WAV 格式写入文件,而不是朗读。波形文件>-标准输出
在生成语音输出时将语音输出写入 stdout,而不是说出它。数据以 WAV 文件头开头,该文件头指示数据的采样率和格式。长度字段设置为零,因为在生成标头时数据的长度未知。
看起来这两个选项都会生成 WAV 文件,但您无需 ffmpeg 等其他程序即可轻松转换这些文件。