ContinuousSpeech 连续语音识别扩展
介绍
此扩展通过”连续工作模式”改进了标准的 SpeechRecognizer 组件。与原生组件不同,它在启动和结束时不会发出烦人的提示音,并能持续运行而无需重复手动启动。
主要特点
- 无提示音:启动和结束时没有系统提示音干扰
- 连续识别:自动重启识别器实现持续语音识别
- 实时反馈:通过 OnPartialResult 事件提供实时中间识别结果
- 语言支持:支持设置不同的识别语言
下载
.aix拓展文件:
de.ullisroboterseite.ursai2continuousspeech.aix
.aia示例文件:
版本历史
| 版本 | 日期 | 修改内容 |
|---|---|---|
| 1.0 | 2021-03-13 | 初始版本发布 |
| 1.1 | 2022-02-16 | 修复 Android 11 兼容性问题,增加属性与改进 |
| 1.2 | 2022-09-01 | 添加语言选择功能 |
工作原理
状态流程图

扩展内部通过持续重启 SpeechRecognizer 来实现连续识别。这可能会产生几毫秒的识别暂停,但在实际使用中影响不大。
当屏幕销毁时,扩展会自动关闭识别并恢复音量设置。
截图
示例应用界面

参考
属性 Properties
- 识别可用 IsRecognitionAvailable
- 返回系统是否支持语音识别功能。在使用语音识别前应先检查此属性。
- 语言 Language
- 指定语音识别的语言。使用 ISO 639-1 语言标签,例如 “en”(英语)、”de”(德语)、”es-MX”(墨西哥西班牙语)、”zh”(中文)等。
- 启用提示音 SoundEnabled
- 控制系统提示音的开关状态。设置为 false 可禁用识别开始和结束时的提示音。
- 版本 Version
- 返回扩展的版本号。
方法 Methods
- 启动 Start()
- 启动连续语音识别。识别器将持续运行,直到调用 Stop() 方法或发生错误。
- 停止 Stop()
- 停止语音识别,中断内部重启循环。
事件 Events
- 部分结果 OnPartialResult(文本)
- 每识别完大约一个单词后触发此事件,提供中间识别结果。可用于实现实时命令检测。
Text:当前识别到的部分文本
- 识别结果 OnResult(文本)
- 当检测到说话暂停时触发此事件,提供最终识别结果。触发后识别器会自动重新启动以继续识别。
Text:完整的识别文本
使用示例
初始化

在屏幕初始化时启动语音识别:
当 Screen1.Initialize 时
如果 ContinuousSpeech1.IsRecognitionAvailable 那么
调用 ContinuousSpeech1.Start
处理部分结果

在 OnPartialResult 事件中检测语音命令:
当 ContinuousSpeech1.OnPartialResult 时
调用 CheckCommand
text = 获取 文本
命令检查

实现命令检查逻辑,识别特定的语音命令并执行相应操作。
语音输出后恢复识别

当应用需要语音输出(如 TextToSpeech)时,建议临时停止识别以避免干扰:
当 TextToSpeech1.AfterSpeaking 时
调用 ContinuousSpeech1.Start
处理完整结果

OnResult 事件在检测到说话暂停后触发,可用于处理完整的语音输入。
示例项目说明
示例应用演示了”将语音命令转换为红外遥控码”的功能:
- 在 OnPartialResult 事件中进行实时命令验证
- 识别到命令后临时关闭识别,避免后续语音输出被误识别
- 执行相应的红外发射操作
- 语音输出完成后重新启动识别
注意事项
- 权限要求:应用需要
RECORD_AUDIO权限才能使用语音识别功能 - 网络依赖:语音识别通常需要网络连接(除非设备支持离线识别)
- 电池消耗:连续语音识别会增加电池消耗,请根据实际需求控制识别时长
- 兼容性:
- 已修复 Android 11 兼容性问题
- 与 UrsAI2IrXmitter 和 UrsAI2KeepAlive 组件兼容
- 识别暂停:由于内部重启机制,可能存在几毫秒的识别间隙,但实际使用中影响不大
- 自动清理:屏幕销毁时会自动关闭识别并恢复音量设置
语言代码示例
常用的 ISO 639-1 语言代码:
| 语言 | 代码 |
|---|---|
| 英语 | en |
| 德语 | de |
| 中文 | zh |
| 日语 | ja |
| 西班牙语 | es |
| 法语 | fr |
| 韩语 | ko |
| 墨西哥西班牙语 | es-MX |
原文链接
原版文档:Ullis Roboter Seite - AI2 Continuous Speech
作者:Urs (Ullis Roboter Seite)
扫码添加客服咨询