C语言 将应用程序的输出写入声音文件



我在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 等其他程序即可轻松转换这些文件。

相关内容

  • 没有找到相关文章

最新更新