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

目录

前言

语音播报功能的重要性

实现语音播报的关键组件

环境搭建

集成语音播报API

[1. 导入模块](#1. 导入模块)

[2. 创建实例](#2. 创建实例)

[3. 调用实例接口](#3. 调用实例接口)

[4. 合成并播放语音](#4. 合成并播放语音)

[5. 停止合成及停止播报](#5. 停止合成及停止播报)

[6. 释放引擎(释放成功后,再次调用createEngine方法会重新创建引擎)](#6. 释放引擎(释放成功后,再次调用createEngine方法会重新创建引擎))

语音播报功能的优化

最后


前言

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

语音播报功能的重要性

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

实现语音播报的关键组件

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

环境搭建

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

  1. 安装DevEco Studio:下载并安装HarmonyOS官方的集成开发环境(IDE)。
  2. 配置SDK:根据你的目标设备下载并配置相应的SDK。
  3. 创建项目:在DevEco Studio中创建一个新的HarmonyOS项目。

集成语音播报API

HarmonyOS提供了语音播报API,允许开发者将文本转换为语音,下面分享一下集成语音播报API的步骤:

1. 导入模块

在项目中导入语音播报文件:

import { textToSpeech } from '@kit.CoreSpeechKit';

2. 创建实例

创建语音播报实例:

复制代码
let ttsEngine: textToSpeech.TextToSpeechEngine;
let extraParam: Record<string, Object> = {"style": 'interaction-broadcast', "locate": 'CN', "name": 'EngineName'};
let initParamsInfo: textToSpeech.CreateEngineParams = {
  language: 'zh-CN',
  person: 0,
  online: 1,
  extraParams: extraParam
};

3. 调用实例接口

在创建完语音播报实例之后,调用创建引擎实例的接口操作:

复制代码
textToSpeech.createEngine(initParamsInfo, (err: BusinessError, textToSpeechEngine: textToSpeech.TextToSpeechEngine) => {
  if (!err) {
    console.log('Succeeded');
    // 获得引擎实例
    ttsEngine = textToSpeechEngine;
  } else {
  }
});

4. 合成并播放语音

使用语音合成API将文本转换为语音并播放:

复制代码
// 调用speak播报方法。未初始化引擎时调用speak方法,返回错误码1003400007,合成及播报失败
speak(originalText: string, speed: number) {
  // 设置播报相关参数
  let extraParam: Record<string, Object> = {
    "queueMode": 0,
    "speed": speed, // 语速,取值范围[0.5, 2.0]
    "volume": 2,
    "pitch": 1,
    "languageContext": 'zh-CN',
    "audioType": "pcm",
    "soundChannel": 3,
    "playType": 1
  }
  let speakParams: textToSpeech.SpeakParams = {
    requestId: Date.now().toString(), // requestId在同一实例内仅能用一次,请勿重复设置
    extraParams: extraParam
  };
  // 调用speak播报方法
  ttsEngine?.speak(originalText, speakParams);
};

5. 停止合成及停止播报

复制代码
stop() {
  // 调用stop方法停止播报
  ttsEngine?.stop();
};

6. 释放引擎(释放成功后,再次调用createEngine方法会重新创建引擎)

复制代码
shutdown() {
  // 调用release方法释放引擎
  ttsEngine?.shutdown();
};

语音播报功能的优化

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

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

最后

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

相关推荐
TRockBots39 分钟前
三、DevEco Studio安装和HelloWorld应用
harmonyos
GY-9311 小时前
HarmonyOS - UIObserver(无感监听)
harmonyos
哼唧唧_11 小时前
新闻类鸿蒙应用全链路运维指南:高并发场景下的稳定保障
harmonyos·新闻·harmony os5·鸿蒙运维
zacksleo14 小时前
哪些鸿蒙原生应用在使用Flutter
前端·flutter·harmonyos
no_work14 小时前
深度学习小项目合集之音频语音识别-视频介绍下自取
pytorch·深度学习·cnn·音视频·语音识别·梅卡尔
二流小码农14 小时前
鸿蒙开发:简单实现一个服务卡片
harmonyos
移动端开发者16 小时前
鸿蒙Next数据面板组件DataPanel介绍
harmonyos
移动端开发者16 小时前
鸿蒙Next使用Canvas绘制一个汽车仪表盘
harmonyos
移动端开发者16 小时前
鸿蒙Next数据量环形图标Gauge介绍
harmonyos
塞尔维亚大汉16 小时前
鸿蒙开发面试真题:鸿蒙操作系统的微内核架构有哪些优势?
面试·harmonyos