linux - 如何让电脑唱歌

标签 linux audio voice rubber-band espeak

我正在尝试开发一个在线应用程序,用户可以在其中写一些文本,然后软件将其唱回给用户。

我目前可以使用 espeak 将计算机所说的话生成音频文件,但我不知道如何让它听起来像一首歌,如何为其添加节奏。

我可以使用橡皮筋改变音高和节奏,但我目前只能做到这一点。

有没有人知道如何实现这一点?

最佳答案

如果你想使用橡皮筋来改变持续时间和音高,那么我认为困难的部分将是从文本中的音素/音节映射到语音合成输出中相应的音频范围,对此我没有简单的建议. (理想情况下,您会进入语音合成器内部,以便它为您提供从音素到音频位置的映射。)

一个更简单的替代方法可能是尝试语音合成器标记语言 - SSML .它有一个“音高”和“持续时间”元素,可以绝对指定以赫兹为单位的音高和以秒为单位的持续时间。您还可以指定音量,以控制动态。

鉴于此,您可以尝试将文本转换为 SSML 文档,并使用音高/持续时间和音量属性标记单词/音节/音素。

关于linux - 如何让电脑唱歌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2762164/

相关文章:

c++ - 等同于 Windows 在 Mac OS X 中命名的互斥体?

linux - 为什么新创建的线程不是通过pthread_create()返回参数获取它的tid,而是pthread_self()

linux - 如何在凌晨 1 点到凌晨 2 点每 5 分钟执行一次 cron

java - 如何录制音频,以使其在达到特定长度后覆盖录制的开始?

c - 生成错误的 WAV 文件

ios - 简单的语音识别 Swift?

javascript - 如何将默认的美国男性声音更改为英国女性或其他声音

linux - 如何在包debuild中包含一个目录

javascript - 音频排队未立即播放

Android 辅助功能设置(Talkback)焦点