问题不太明确,我来分情况讨论一下。
1. 机器人指的就是现实中的机器人产品
既然这种机器人发出的声音听起来不像真实的,那就说明它不是把语音预先录制然后播放(比如「倒车请注意」),而是用语音合成技术来生成语音的。
语音的音高,是由「基频」决定的。在语谱图上,语音看起来是「排骨」状的,每一根骨头叫做一个「谐波」,相邻谐波的间隔就是基频。比如, @曹力科 回答中「黑化肥发灰会挥发,灰化肥挥发会发黑」的语谱图就是下面这样的。注意「黑」这种一声字的谐波基本是水平的,而「化肥」这种声调有升降的字,谐波也有升降。
化肥绕口令——原始音频 https://www.zhihu.com/video/1206916879530635264要根据文本生成基频的变化,并不是一件容易的事,对于早期的语音合成来说更是这样。如果一个合成语音听起来全是一声,那么就很有可能它根本就没有去建模基频的变化,而是偷懒把基频设置为常数。这样的语音的语谱图上,就全是水平的谐波了。
2. 机器人指的是影视作品中的机器人
在影视作品中,为了给机器人赋予一种「非人感」,常常会对预先录制的真人声音进行处理。
@曹力科 的答案就给出了一种处理方法,其中关键的步骤就是:把原始语音延迟若干个不同的时间,然后叠加。他采用的参数为:总共叠加 10 份,最小延迟为 500 个采样点,最大延迟为 2000 个采样点。他使用的语音采样率是 16 kHz,那么相邻两份的时间差就是:(2000 - 500) / 9 / 16000 = 0.0104 s = 10.4 ms。
为什么这样处理会产生「都是一声」的听感呢?这就需要用到信号处理里的这个结论了: 时域重复等于频域采样 。在时域上每隔 10.4 ms 重复一次,相当于在频域中每隔 1 / (10.4 ms) = 96 Hz 采一次样。这其实就是用 梳状滤波器 对语音进行滤波,梳子的齿所在的频率都是 96 Hz 的倍数。滤波的效果如下面的视频所示:梳状滤波器会破坏掉语谱图原有的谐波结构,而生成一套新的谐波结构,相邻谐波的间距都是 96 Hz。你看,基频变成常数了——所以语音听起来就「都是一声」了。
化肥绕口令——叠加后的音频 https://www.zhihu.com/video/1206917660287811584这种处理方法完全是人为的,并不需要用「增强无线传输语音的可靠性」来解释,因为: