HarmonyOS开发:语音播报功能实战

打印 上一主题 下一主题

主题 968|帖子 968|积分 2914

目录

媒介
语音播报功能的重要性
实现语音播报的关键组件
环境搭建
集成语音播报API
1. 导入模块
2. 创建实例
3. 调用实例接口
4. 合成并播放语音
5. 停止合成及停止播报
6. 释放引擎(释放成功后,再次调用createEngine方法会重新创建引擎)
语音播报功能的优化
末了

媒介

   随着智能设备的遍及,语音播报功能已成为提升用户体验的重要手段之一,而且HarmonyOS 作为新一代的智能终端操作系统,提供了强大的开发框架和API,可以让开发者能够轻松实现语音播报功能。在HarmonyOS开发中,实现语音播报功能可以让用户通过语音下令控制设备,同时吸收语音反馈,增强交互的自然性和便捷性。那么本文就来详细介绍怎样在HarmonyOS应用中实现语音播报功能,包罗环境搭建、关键API使用和实际应用示例。
  语音播报功能的重要性

在移动应用开发中,语音播报功能对于视力受限用户或在特定场景下无法查看屏幕的用户来说,是一种极为重要的信息获取方式,而且在驾驶、烹饪等双手繁忙的场景中,语音播报也能提供极大的便利,还有就是在支付收款时候的提示也很重要,这就不需要商家时候留意自己的收款信息,根据语音播报就可以实时知道收款情况。在鸿蒙应用开发中的语音播报功能同样重要,而且HarmonyOS的语音播报功能不仅能提升应用的可访问性,还能增强用户的交互体验。
实现语音播报的关键组件

上面也介绍到文本转语音服务提供将文本信息转换为语音并进行播报的本领,便于用户与设备进行互动,实实际时语音交互,文本播报。在HarmonyOS中,实现语音播报功能主要依赖于TextToSpeech(TTS)引擎,其实TTS是一种将文本转换为语音的技能,HarmonyOS提供了一套完备的API来控制TTS服务。目前HarmonyOS中的语音播报服务支持的语种为中文,支持的音色为聆小珊女声音色,起始版本为:4.1.0(11)。
环境搭建

在开始编码实现语音播报功能之前,先需要确保你已经设置好了HarmonyOS的开发环境,包罗但不限于:

  • 安装DevEco Studio:下载并安装HarmonyOS官方的集成开发环境(IDE)。
  • 设置SDK:根据你的目标设备下载并设置相应的SDK。
  • 创建项目:在DevEco Studio中创建一个新的HarmonyOS项目。
集成语音播报API

HarmonyOS提供了语音播报API,答应开发者将文本转换为语音,下面分享一下集成语音播报API的步骤:
1. 导入模块

在项目中导入语音播报文件:
import { textToSpeech } from '@kit.CoreSpeechKit';
2. 创建实例

创建语音播报实例:
  1. let ttsEngine: textToSpeech.TextToSpeechEngine;
  2. let extraParam: Record<string, Object> = {"style": 'interaction-broadcast', "locate": 'CN', "name": 'EngineName'};
  3. let initParamsInfo: textToSpeech.CreateEngineParams = {
  4.   language: 'zh-CN',
  5.   person: 0,
  6.   online: 1,
  7.   extraParams: extraParam
  8. };
复制代码
3. 调用实例接口

在创建完语音播报实例之后,调用创建引擎实例的接口操作:
  1. textToSpeech.createEngine(initParamsInfo, (err: BusinessError, textToSpeechEngine: textToSpeech.TextToSpeechEngine) => {
  2.   if (!err) {
  3.     console.log('Succeeded');
  4.     // 获得引擎实例
  5.     ttsEngine = textToSpeechEngine;
  6.   } else {
  7.   }
  8. });
复制代码
4. 合成并播放语音

使用语音合成API将文本转换为语音并播放:
  1. // 调用speak播报方法。未初始化引擎时调用speak方法,返回错误码1003400007,合成及播报失败
  2. speak(originalText: string, speed: number) {
  3.   // 设置播报相关参数
  4.   let extraParam: Record<string, Object> = {
  5.     "queueMode": 0,
  6.     "speed": speed, // 语速,取值范围[0.5, 2.0]
  7.     "volume": 2,
  8.     "pitch": 1,
  9.     "languageContext": 'zh-CN',
  10.     "audioType": "pcm",
  11.     "soundChannel": 3,
  12.     "playType": 1
  13.   }
  14.   let speakParams: textToSpeech.SpeakParams = {
  15.     requestId: Date.now().toString(), // requestId在同一实例内仅能用一次,请勿重复设置
  16.     extraParams: extraParam
  17.   };
  18.   // 调用speak播报方法
  19.   ttsEngine?.speak(originalText, speakParams);
  20. };
复制代码
5. 停止合成及停止播报


  1. stop() {
  2.   // 调用stop方法停止播报
  3.   ttsEngine?.stop();
  4. };
复制代码
6. 释放引擎(释放成功后,再次调用createEngine方法会重新创建引擎)

  1. shutdown() {
  2.   // 调用release方法释放引擎
  3.   ttsEngine?.shutdown();
  4. };
复制代码
语音播报功能的优化

为了提升语音播报功能的用户体验,需要对语音播报功能进行优化,这里可以思量下面几个优化步伐:


  • 支持多语言:根据用户的语言偏好设置TTS的语言。
  • 调整语速和音调:提供接口让用户可以调整语音的语速和音调。
  • 错误处理:在TTS服务不可用的时候,提供相应的错误提示。
末了

颠末本文对HarmonyOS提供的TTS引擎的使用介绍,想必大家都学了怎样实现语音播报功能,而且实现语音播报功能是提升HarmonyOS应用用户体验的有用方式之一。通过集成语音播报API,我们可以轻松地将文本转换为语音,给用户提供更加自然和便捷的交互体验,提升应用的可访问性和用户体验。个人觉得随着技能的不断发展,未来语音交互将在更多场景中发挥重要作用,由于本文提供的实战代码示例只是一个开始,大家可以根据详细需求进行扩展和优化,创造出更加丰富和智能的语音交互体验。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表