指南

如何让文字转语音唱歌、做 Beatbox 或“发疯”

机械声唱歌、做 Beatbox 或模仿直升机声的视频,多年来一直是热门梗。很多人用现代文字转语音尝试同样的效果,却发现它只是把奇怪的字符原样读出来。

本指南介绍这些技巧的来源、背后有文档记载的 DECtalk 语法,以及 SuperClonica 这样的现代 AI 声音可以怎样替代。注意:SuperClonica 引擎不支持中文朗读,可以用英语等 31 种语言生成。

这些技巧从哪里来

大多数唱歌和怪声技巧都是用经典的共振峰语音合成器 DECtalk 做出来的。NASA 的免费游戏 Moonbase Alpha 用 DECtalk 朗读聊天内容,玩家在聊天框里输入音素命令让宇航员唱歌,由此走红。DECtalk 按规则合成声音,所以可以精确指定发什么音、持续多久、在什么音高上。

DECtalk 的唱歌语法

DECtalk 文档描述的格式是:方括号中的音素后面用尖括号写出时长和音高编号;时长以毫秒计,音高编号来自列出音名和频率的音高表。例如,音素 ow 加上尖括号中的 400 和 13,会让一个元音在一个音高上保持 400 毫秒。把许多这样的命令连起来就是旋律;非常短促、快速的序列则能做出 Beatbox、马达声和“故障”效果。不同的 DECtalk 版本可能需要先开启音素输入,请查看你所用版本的手册。

为什么现代 AI 声音做不到

包括 SuperClonica 在内的神经网络语音合成,是从真实说话录音中学习的,会像人一样朗读文本。它不接受音素、时长或音高命令,所以 DECtalk 字符串会被当成字母读出或被跳过,也无法按指定音符唱歌。这是声音自然的代价。

现代声音能做什么

你仍然可以在表达方式上做文章:免费引擎的语速范围是 0.7 到 2.0,用逗号和句号制造停顿,用感叹号和问号改变语调,按应有的读音拼写单词。想搞笑的话,选一个角色声音,生成短句,然后在音频编辑器里拼接;重复或倒放短片段,不用任何音素代码就能做出许多“故障”效果。在各声音页面用 30 到 100 个字符即可免费试听。

选择合适的工具

想要复古机器人唱歌,就用 DECtalk,DECtalk 指南介绍了如今在哪里获取它。想用角色或旁白声音、以 31 种语言自然说话,就用 SuperClonica:用 python -m pip install superclonica-cpu 安装,或在工作室用 5 到 10 秒的录音训练自己的声音。目前不支持中文。