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

目录

前言

语音播报功能的重要性

实现语音播报的关键组件

环境搭建

集成语音播报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的开发环境,包括但不限于:

  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,我们可以轻松地将文本转换为语音,给用户提供更加自然和便捷的交互体验,提升应用的可访问性和用户体验。个人觉得随着技术的不断发展,未来语音交互将在更多场景中发挥重要作用,由于本文提供的实战代码示例只是一个开始,大家可以根据具体需求进行扩展和优化,创造出更加丰富和智能的语音交互体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/35567.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式入门Day25

数据结构Day 6,IO Day1 查找算法顺序查找折半查找&#xff08;二分查找&#xff09;哈希查找 IO概念标准IO创建递归索引&#xff08;用于查询结构体定义&#xff09; 文件IO标准IO缓冲区指针相关函数 查找算法 顺序查找 关键字&#xff1a;分为主关键字和次关键字主关键字&am…

内网代理转发工具

概念区分 端口转发 端口转发就是将一个端口&#xff0c;这个端口可以本机的端口也可以是本机可以访问到的任意主机的端口&#xff0c;转发到任意一台可以访问到的IP上&#xff0c;通常这个IP是公网IP。 适用端口转发的网络环境有以下几种&#xff1a; 服务器处于内网&#x…

MNIST_FC

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

掌握时间,从`datetime`开始

文章目录 掌握时间&#xff0c;从datetime开始第一部分&#xff1a;背景介绍第二部分&#xff1a;datetime库是什么&#xff1f;第三部分&#xff1a;如何安装这个库&#xff1f;第四部分&#xff1a;简单库函数使用方法1. 获取当前日期和时间2. 创建特定的日期3. 计算两个日期…

算法之括号匹配中最长有效字符串

目录 1. 题目2. 解释3. 思路4. 代码5. 总结 1. 题目 任何一个左括号都能找到和其正确配对的右括号任何一个右括号都能找到和其正确配对的左括号 求最长的有效的括号长度 2. 解释 例如&#xff0c;这里的括号 ((((()()()()()()()))()最长有效是&#xff1a;((()()()()()()(…

统信桌面专业版部署postgresql-14.2+postgis-3.2方法介绍

文章来源&#xff1a;统信桌面专业版部署postgresql-14.2postgis-3.2方法介绍 | 统信软件-知识分享平台 应用场景 CPU架构&#xff1a;X86&#xff08;海光C86-3G 3350&#xff09; OS版本信息&#xff1a;1070桌面专业版 软件信息&#xff1a;postgresql-14.2postgis-3.2 …

【书生大模型实战营】Python 基础知识-L0G2000

前言&#xff1a;本文是书生大模型实战营系列的第2篇文章&#xff0c;是入门岛的第二个任务&#xff0c;主题为&#xff1a;Python基础知识。 官方教程参考链接&#xff1a;Tutorial/docs/L0/Python at camp4 InternLM/Tutorial 1.任务概览 本关为Python基础关卡&#xff0…

智能安全新时代:大语言模型与智能体在网络安全中的革命性应用

一、引言 随着信息技术的飞速发展&#xff0c;网络安全问题日益严重&#xff0c;成为各行各业面临的重大挑战。传统的安全防护措施已难以应对日益复杂的网络威胁&#xff0c;人工智能&#xff08;AI&#xff09;技术的引入为网络安全带来了新的希望。特别是大语言模型&#xff…

数仓技术hive与oracle对比(三)

更新处理 oracle使用dblink透明网关连接其他数据库&#xff0c;mysql、sqlserver、oracle&#xff0c;然后用sql、plsql更新数据&#xff1b;或者使用etl工具实现更新。 hive使用sqoop连接mysql、sqlserver、oracle实现数据更新。 oracle oracle数据加载命令 批量sql脚本上…

在 Vue.js 中使用对象映射和枚举类型

学习啦&#xff01; 对象映射是一种将一个对象的属性名映射到另一个对象的属性名的方法。 const keyMapping {username: 用户名, gender: { label: 性别, mapping: gender }, // gender 映射为 性别email: 邮箱, // email 映射为 邮箱phone: 电话, // phone 映射为 电话addres…

嵌入式学习(15)-stm32通用GPIO模拟串口发送数据

一、概述 在项目开发中可能会遇到串口不够用的情况这时候可以用通过GPIO来模拟串口的通信方式。 二、协议格式 按照1位起始位8位数据位1位停止位的方式去编写发送端的程序。起始位拉低一个波特率的时间&#xff1b;发送8位数据&#xff1b;拉高一个波特率的时间。 三、代码 …

【C语言期末复习全攻略】:知识点汇总与考试重点剖析、附刷题资料软件

零、引用 期末考试临近&#xff0c;无论你是初学者还是“熬夜选手”&#xff0c;C语言的学习都需要系统梳理和重点突破。本文将全面总结C语言的核心知识点&#xff0c;并针对考试中常见的题型提供复习建议&#xff0c;助你轻松拿下高分。 文末提供了一款免费的C语言刷题软件 …

美颜SDK接入实战:构建智能化直播美颜APP的技术路径详解

如何将美颜SDK顺利接入并构建一个智能化的直播美颜APP呢&#xff1f;本文将从技术路径的角度&#xff0c;带你深入解析这一过程。 一、了解美颜SDK的基本功能 美颜SDK通常包括多个功能模块&#xff0c;针对不同的直播场景&#xff0c;SDK会提供针对性的优化算法&#xff0c;确…

【Spring】Spring事务和事务传播机制

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 一、Spring事务 我们在MySQL阶段已经学习了MySQL的事务相关知识&#xff0c;详情可见 【MySQL数据库】索引与事务-CSDN博客 1、概念 我们在此做一个简单回顾…

Qt 小项目 学生管理信息系统

主要是对数据库的增删查改的操作 登录/注册界面&#xff1a; 主页面&#xff1a; 添加信息&#xff1a; 删除信息&#xff1a; 删除第一行&#xff08;支持多行删除&#xff09; 需求分析&#xff1a; 用QT实现一个学生管理信息系统&#xff0c;数据库为MySQL 要求&#xf…

核心网S6730-H48X6C-V2堆叠

核心网是电信网络的中枢,负责数据传输、服务提供和网络管理,对保障通信质量、支持新技术服务和维护网络安全至关重要。堆叠技术通过将多个网络设备逻辑上整合为一个单元,简化管理,提升网络可用性和性能,同时降低成本,增强网络扩展性。 堆叠在网络建设中至关重要,它通过…

教程: 5分钟部署 APIPark 开源 LLM Gateway 与 API 开放门户

极大简化了大语言模型调用的过程&#xff0c;无需复杂代码即可同时连接主流大语言模型&#xff0c;让企业更加快捷、安全地使用AI。喜欢或感兴趣的小伙伴们赶紧去体验吧&#xff01; &#x1f517;更详细使用教程可以查看&#xff1a;APIPark 产品使用文档 APIPark 提供出色的…

HTML5教程-表格宽度设置,最大宽度,自动宽度

HTML表格宽度 参考&#xff1a;html table width HTML表格是网页设计中常用的元素之一&#xff0c;可以用来展示数据、创建布局等。表格的宽度是一个重要的参数&#xff0c;可以通过不同的方式来设置表格的宽度&#xff0c;本文将详细介绍HTML表格宽度的不同设置方式和示例代…

RISC-V架构下OP-TEE 安全系统实践

安全之安全(security)博客目录导读 本篇博客&#xff0c;我们聚焦RISC-V 2024中国峰会上的RISC-V和OP-TEE结合的一个安全系统实践&#xff0c;来自芯来科技桂兵老师。 关于RISC-V TEE(可信执行环境)的相关方案&#xff0c;如感兴趣可参考RISC-V TEE(可信执行环境)方案初探 首…

RTK数据的采集方法

采集RTK&#xff08;实时动态定位&#xff09;数据通常涉及使用高精度的GNSS&#xff08;全球导航卫星系统&#xff09;接收器&#xff0c;并通过基站和流动站的配合来实现。本文给出RTK数据采集的基本步骤 文章目录 准备设备设置基站设置流动站数据采集数据存储与处理应用数据…