当前位置: 首页 > news >正文

【HarmonyOS 6.1 全场景实战】《灵犀厨房》实战(十七):【语音识别】免提声控启动播报——动口不动手

HarmonyOS 6.1 开发者盛宴|《灵犀厨房》实战(十七):【语音识别】免提声控启动播报——动口不动手

摘要:上一篇我们为菜谱详情页装上了"嘴巴"——接入 CoreSpeechKit 的 TTS 引擎实现了烹饪步骤分步语音播报。但你很快会发现:炒菜时手上全是油,根本没法点屏幕上的播放按钮。真正的免提厨房需要——进页面后直接说"开始播放",菜谱自动念起来。本篇,我们将接入 HarmonyOS 6.1.0 CoreSpeechKit 的 **SpeechRecognizer(语音识别)**模块,为《灵犀厨房》装上"耳朵"。你将学会:进页面自动开启声控、免提启动 TTS 播报、播完后自动重开声控供重听、1 分钟无指令自动关闭以省电。关键设计决策:声控不用于播报过程中的操作控制(避免 TTS 音频被麦克风回采),而是专职于免提启动播报。严格遵循 API 23 规范,代码即文档。


一、引言与系列定位

经过第 16 篇的语音合成,菜谱详情页有了播报按钮。但你很快会发现尴尬的现实:

场景问题解决
进页面后手上有油没法点▶️播放按钮直接说"开始播放"
TTS 播完一轮,想重听屏幕已息屏,不想碰手机声控自动重启,说"重新播放"
只想重听某一步想听步骤2但不想从头来屏幕按钮点"下一步"跳转
声控开着但不用了不想一直耗电监听1 分钟无指令自动关闭

设计决策:为何声控不用于"下一步""暂停"等播报中途控制?

经过多次真机验证,我们发现:当 TTS 正在大声播报菜谱步骤时,手机麦克风会捕获自己的喇叭声,导致 ASR 把播报内容识别为语音指令。例如 TTS 正在说"第三步,蒸锅水开后放入蛋液碗……",ASR 识别到长文本,尝试匹配指令时可能因关键词碰撞而误触发。这是一个物理层面的回采问题,目前在模拟器调试场景中暂时无法通过纯软件可靠解决。感兴趣读者,后续可以通过采用利用 AudioKit 的音频焦点与会话隔离、分时复用 + 短暂静音、唤醒词 + 录音回采过滤、将声控能力下移到系统级语音助手等方案进行验证和解决,菜品详情页面中预留了手动和自动切换的按钮,便于读者后续可以利用这个按钮进行功能扩展、增强和改进。

因此,本项目的声控设计为:

  • TTS 播报前:声控自动开启,用户说"开始播放"启动播报
  • TTS 播报中:声控自动关闭,用户通过屏幕按钮控制(暂停/上下步/停止)
  • TTS 播报后:声控自动重启,用户可说"重新播放"重听,1 分钟无指令自动关闭

这就是声控操作的核心价值——进页面免提启动,播完免提重听。不是指挥每一步,而是"开始"和"重来"两个关键动作。


二、核心原理与底层机制深度解读

2.1 SpeechRecognizer:系统级的"云端+本地"语音识别

HarmonyOS 6.1.0(API 23)的@kit.CoreSpeechKit提供了speechRecognizer模块,封装了华为自研的语音识别引擎。它的工作模式是"持续监听 + 静默检测自动结束":

TtsSpeechManagerRecipeDetailPageVoiceControlManagerSpeechRecognizer 引擎📱 手机👤 用户TtsSpeechManagerRecipeDetailPageVoiceControlManagerSpeechRecognizer 引擎📱 手机👤 用户用户进入菜谱详情页🎤 声控自动开启🔊 播报步骤1、步骤2、步骤3...🎤 声控自动重启🔊 从头播报
http://www.gsyq.cn/news/1328939.html

相关文章:

  • CANN/asc-devkit HCCL批量写入接口
  • 终极知识管理模板:快速搭建你的Obsidian笔记系统
  • Python开发者三步完成Taotoken接入并调用多模型
  • Linux串口编程进阶:深入termios2结构体,搞定CH340/FTDI各种转接器的非标准波特率
  • setup-java企业级实践:大型项目的依赖缓存和版本矩阵测试
  • 告别‘听完再说’:聊聊LAS语音识别模型为啥不能实时转文字,以及现在有啥新方案
  • 5分钟掌握Unlock Music:浏览器音乐解密转换终极指南
  • 如何在Windows电脑上轻松安装安卓应用:APK-Installer终极指南
  • elec-ops-simulation实战教程:5步实现电网稳态运行仿真
  • 天津大学LaTeX论文模板终极指南:告别格式困扰,专注学术创作
  • CANN asnumpy快速开始指南
  • Ascend C数据解压搬运API
  • 深入RPMsg-Lite virtqueue:拆解异构多核芯片共享内存通信的‘黑盒子’
  • Abiotic Factor多人生存建筑游戏《非生物因素》 专用服务器搭建教程
  • 3步掌握TransNet V2:从零开始实现智能视频镜头检测
  • Gemini赋能安全工程师:自动写PoC脚本
  • CANN Ascend C数据转换临时空间API
  • CANN/asc-devkit DeepNorm API 文档
  • 如何3分钟搞定专业级虚拟背景:obs-backgroundremoval快速上手指南
  • Perplexity环境新闻检索失效真相(2024最新API响应延迟根因分析)
  • 工业视觉系统选型实战:CCD相机与镜头参数计算全解析
  • Sora之后的真相:2026年真正落地的8款工业级AI视频引擎,含API吞吐量、帧间PSNR均值与商用SLA承诺明细
  • Qt QSettings管理Windows环境变量:原理、实现与实战优化
  • 5分钟彻底净化Windows 11:Win11Debloat终极优化指南
  • 5分钟快速上手Vue3思维导图:打造专业级数据可视化应用
  • 2026招聘网站平台排行榜 易直聘好用排第一求职招聘优选 - 博客万
  • 猫抓浏览器扩展:基于网络请求拦截的智能资源嗅探技术实现
  • 告别DDPG训练不稳定!用SAC(软性演员-评论家)算法搞定复杂环境强化学习
  • 3天掌握Dify工作流开发:从零构建企业级AI应用的完整指南
  • 空洞骑士模组管理器Scarab:2024年最完整的安装与使用指南