练习 - 集成和使用语音识别和听录
在此模块中,你将创建一个混合现实应用程序,用于探索如何将 Azure 语音服务与 HoloLens 2 配合使用。 完成本系列后,你将能够使用设备的麦克风将语音实时转录为文本、将语音翻译为其他语言,并且使用意向识别功能使用人工智能来理解语音命令。
创建和准备 Unity 项目
在本部分,你将创建一个新的 Unity 项目,并为 MRTK 开发做好准备。
作为先决条件,请确保已完成以下步骤来初始化项目和应用程序:
- 创建 Unity 项目并为其指定适当的名称,例如“MRTK 教程”
- 切换生成平台
- 导入 TextMeshPro 基本资源
- 导入混合现实工具包
- 配置 Unity 项目
- 创建和配置场景并为其提供合适的名称,例如 AzureSpeechServices
注意
可以在混合现实工具包简介模块中了解如何设置混合现实项目。
配置功能
在 Unity 菜单中,选择“编辑”>“项目设置...”打开“播放器设置”窗口,然后找到“播放器”>“发布设置”部分:
在“发布设置”中,向下滚动到“功能”部分并仔细检查“InternetClient”、“麦克风”和“SpatialPerception”功能(在本教程开端创建项目时启用)是否仍处于启用状态。 然后启用 InternetClientServer 和 PrivateNetworkClientServer 功能。
导入教程资产
按照列出的顺序下载并导入以下 Unity 自定义包:
导入教程资产后,“项目”窗口应如下所示:
准备场景
在本部分中,你将通过添加教程 prefab 并配置用于控制场景的 Lunarcom 控制器(脚本)组件来准备场景。
在“项目”窗口中,导航到“资产”>“MRTK.Tutorials.AzureSpeechServices”>“预制件”文件夹,然后将“Lunarcom”预制件拖到“层次结构”窗口中以将其添加到场景中。
在“层次结构”窗口中选中“Lunarcom”对象后,在“检查器”窗口中,使用“添加组件”按钮将“Lunarcom 控制器(脚本)”组件添加到 Lunarcom 对象。
选中“Lunarcom”对象后,将其展开显示其子对象,然后将“Terminal”对象拖动到“Lunarcom 控制器(脚本)”组件的“Terminal”字段中。
选中“Lunarcom”对象后,展开 Terminal 对象以显示其子对象,然后将“ConnectionLight”对象拖动到“Lunarcom 控制器(脚本)”组件的“Connection Light”字段中,并将“OutputText”对象拖动到“Output Text”字段中。
选中“Lunarcom”对象后,展开 Buttons 对象以显示其子对象,然后在“检查器”窗口中展开“Buttons”列表,将“Buttons”字段设置为 3,并将“MicButton”、“SatelliteButton”和“RocketButton”对象分别拖动到“Element”0、1 和 2 字段。
将 Unity 项目连接到 Azure 资源
若要使用 Azure 语音服务,需要创建一个 Azure 资源并获取语音服务的 API 密钥。 按照“快速入门”中的说明进行操作,并记下服务区域(也称为“位置”)和 API 密钥(也称为“密钥 1”或“密钥 2”)。
在“层次结构”窗口中选择“Lunarcom”对象,然后在“检查器”窗口中找到“Lunarcom 控制器(脚本)”组件的“语音 SDK 凭据”部分,并按如下所述对其进行配置:
- 在“语音服务 API 密钥”字段中,输入 API 密钥(密钥 1 或密钥 2)。
- 在“语音服务区域”字段中,使用小写字母输入你的服务区域(位置)并删除空格。
使用语音识别来转录语音
在“层次结构”窗口中选择“Lunarcom”对象,然后在“检查器”窗口中,使用“添加组件”按钮将“Lunarcom 语音识别器(脚本)”组件添加到 Lunarcom 对象。
如果现在进入游戏模式并选择“开始游戏”按钮,则可以先按麦克风按钮测试语音识别:
假设计算机上配备了麦克风,当你讲话时,会在终端面板上听录你的语音:
注意
应用程序需要连接到 Azure,因此请确保计算机/设备已连接到 Internet。