设置计时器并提供语音反馈 本课概览的速写笔记 速写笔记由 Nitya Narasimhan 绘制。点击图片查看大图。 预习测验 预习测验 引言 智能助手不是单向通信设备。你对他们说话,他们会回应: “Alexa,设置一个3分钟的计时器” “好的,你的计时器已设置为3分钟” 在前两节课中,你学习了如何将语音转换成文本,然后从该文本中提取设置计时器的请求。在这节课中,你将学习如何在物联网设备上设置计时器,并通过语音确认用户的计时器,并在计时器结束时通知用户。 在这节课中,我们将涵盖: 文本转语音 设置计时器 将文本转换为语音 文本转语音 顾名思义,文本转语音是将文本转换成包含文本的音频的过程。

速写笔记由 Nitya Narasimhan 绘制。点击图片查看大图。
智能助手不是单向通信设备。你对他们说话,他们会回应:
“Alexa,设置一个3分钟的计时器”
“好的,你的计时器已设置为3分钟”
在前两节课中,你学习了如何将语音转换成文本,然后从该文本中提取设置计时器的请求。在这节课中,你将学习如何在物联网设备上设置计时器,并通过语音确认用户的计时器,并在计时器结束时通知用户。
在这节课中,我们将涵盖:
顾名思义,文本转语音是将文本转换成包含文本的音频的过程。基本原理是将文本中的单词分解成其组成的声音(称为音素),然后使用预录制的音频或由AI模型生成的音频将这些声音拼接在一起。

文本转语音系统通常有三个阶段:
文本分析涉及将提供的文本转换成可以用于生成语音的单词。例如,如果你要将“Hello world”转换成语音,不需要进行文本分析,这两个单词可以直接转换为语音。然而,对于“1234”,则可能需要将其转换为“一千二百三十四”或“一、二、三、四”,这取决于上下文。对于“I have 1234 apples”,则会转换为“一千二百三十四”,而对于“The child counted 1234”,则会转换为“一、二、三、四”。
创建的单词不仅因语言而异,还因该语言的区域设置而异。例如,在美式英语中,“120”会被转换为“一百二十”,而在英式英语中,则会被转换为“一百二十”。在英式英语中,会在百位之后使用“and”。
✅ 其他一些需要文本分析的例子包括“in”作为英寸的缩写,以及“st”作为圣人和街道的缩写。你还能想到自己语言中哪些单词在没有上下文的情况下具有歧义?
一旦单词被定义,它们就会被发送到语言分析。
语言分析将单词分解成音素。音素不仅基于使用的字母,还基于单词中的其他字母。例如,在英语中,“car”和“care”中的“a”发音是不同的。英语语言中有44个不同的音素,对应于字母表中的26个字母,其中一些音素由不同的字母共享,例如“circle”和“serpent”的开头音素相同。
✅ 做一些研究:你的语言有哪些音素?
一旦单词被转换成音素,这些音素需要额外的数据来支持语调,根据上下文调整音调或持续时间。例如,在英语中,可以通过提高音调将陈述句变成疑问句,增加最后一个词的音调意味着疑问句。
例如 - 句子“You have an apple”表示你有一个苹果。如果音调在末尾上升,在“apple”这个词上增加,它就变成了疑问句“You have an apple?”,询问你是否有一个苹果。语言分析需要利用句末的问号来决定是否增加音调。
一旦生成了音素,它们就可以被发送到波形生成以产生音频输出。
最早的电子文本转语音系统使用每个音素的单个音频记录,导致非常单调、机械的声音。语言分析会产生音素,这些音素将从声音数据库中加载并拼接在一起以形成音频。
✅ 做一些研究:查找早期语音合成系统的音频记录。与现代语音合成(如用于智能助手)进行比较。
更现代的波形生成使用基于深度学习(非常大的神经网络,作用类似于大脑中的神经元)构建的ML模型,以产生听起来更自然的声音,几乎无法与人类区分开来。
这些ML模型可以使用迁移学习重新训练以听起来像真人。这意味着使用语音作为安全系统,银行越来越尝试这样做,不再是好主意,因为只要有几分钟的录音,任何人都可以冒充你。
这些大型ML模型正在训练以结合这三个步骤成为端到端的语音合成器。
要设置计时器,你的物联网设备需要调用使用无服务器代码创建的REST端点,然后使用结果秒数来设置计时器。
按照相关指南调用物联网设备上的REST端点并设置所需时间的计时器:
你可以使用相同的语音服务将文本转换回语音,并且可以在物联网设备上的扬声器上播放。要转换的文本被发送到语音服务,连同所需的音频类型(如采样率),并返回包含音频的二进制数据。
当你发送此请求时,你使用的是 语音合成标记语言(SSML),这是一种基于XML的标记语言,用于语音合成应用程序。这不仅定义了要转换的文本,还定义了文本的语言、使用的语音,甚至可以定义速度、音量和某些或全部文本中单词的音高。
例如,此SSML定义了一个请求,使用名为en-GB-MiaNeural的英国英语语音将文本“Your 3 minute 5 second time has been set”转换为语音。
<speak version='1.0' xml:lang='en-GB'> <voice xml:lang='en-GB' name='en-GB-MiaNeural'> Your 3 minute 5 second time has been set </voice> </speak>
大多数文本转语音系统都有多种语音供不同语言使用,带有相关的口音,如带有英国口音的英国英语语音和带有新西兰口音的新西兰英语语音。
通过相关指南将文本转换为语音:
SSML 可以改变单词的发音方式,例如突出显示某些单词、添加停顿或改变音高。尝试这些方法,从你的物联网设备发送不同的SSML并比较输出。你可以阅读更多关于SSML的内容,包括如何改变单词的发音方式,请参阅万维网联盟发布的 《语音合成标记语言 (SSML) 版本 1.1 规范》。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。