HarmonyOS学习路之开发篇—AI功能开发(语音播报)

简介: 语音播报(Text to Speech,下文简称TTS),基于华为智慧引擎(HUAWEI HiAI Engine)中的语音播报引擎,向开发者提供人工智能应用层API。该技术提供将文本转换为语音并进行播报的能力。

语音播报概述

语音播报(Text to Speech,下文简称TTS),基于华为智慧引擎(HUAWEI HiAI Engine)中的语音播报引擎,向开发者提供人工智能应用层API。该技术提供将文本转换为语音并进行播报的能力。


约束与限制

支持超长文本播报,最大文本长度为100000个字符。

语音播报不支持多线程调用。

语音播报开发

场景介绍

实时语音交互:生成音频信息用于语音交互。

例如与智能音箱或手机智能助手的交互,后台会将回答信息以音频方式进行语音播报。


超长文本播报:用于小说、新闻等较长文本的自动朗读。

接口说明

语音播报功能提供了TtsClient类实现文本转语音功能,该类的主要接口如下表所示:

表1 主要接口

image.pngimage.png


表2 TtsListener中onEvent的eventType对照表

image.png


表3 method ID与方法对照表

image.png

开发步骤

导入相关的类。

import ohos.ai.tts.TtsClient; // TTS接口
import ohos.ai.tts.TtsListener; // TTS回调
import ohos.ai.tts.TtsParams; // TTS参数
import ohos.ai.tts.constants.TtsEvent; // TTS事件
import ohos.utils.PacMap; // TTS依赖

创建与TTS服务的连接。context为应用上下文信息,应为ohos.aafwk.ability.Ability或ohos.aafwk.ability.AbilitySlice的实例或子类实例。


说明


以下代码示例中Log.info()为各方法内定义的处理方法举例,已注释。

private static final TtsListener ttsListener = new TtsListener() {
        @Override
        public void onEvent(int eventType, PacMap pacMap) {
            // Log.info("onEvent:" + eventType);
            if (eventType == TtsEvent.CREATE_TTS_CLIENT_SUCCESS) {
                // Log.info("TTS Client create success");
            }
        }
        @Override
        public void onStart(String utteranceId) {
            // Log.info(utteranceId + " audio synthesis begins");
        }
        @Override
        public void onProgress(String utteranceId, byte[] audioData, int progress) {
            // Log.info(utteranceId + " audio synthesis progress:" + progress);
        }
        @Override
        public void onFinish(String utteranceId) {
            // Log.info(utteranceId + " audio synthesis completed");
        }
        @Override
        public void onSpeechStart(String utteranceId) {
            // Log.info(utteranceId + " begins to speech");
        }
        @Override
        public void onSpeechProgressChanged(String utteranceId, int progress) {
            // Log.info(utteranceId + " speech progress:" + progress);
        }
        @Override
        public void onSpeechFinish(String utteranceId) {
            // Log.info(utteranceId + " speech completed");
        }
        @Override
        public void onError(String utteranceId, String errorMessage) {
            // Log.info(utteranceId + " errorMessage: " + errorMessage);
        }
};
TtsClient.getInstance().create(context, ttsListener);


在TTS接口创建成功后初始化TTS引擎。

TtsParams ttsParams = new TtsParams();
ttsParams.setDeviceId("your device id");
boolean initResult = TtsClient.getInstance().init(ttsParams);

初始化TTS引擎成功后调用音频转换并播放接口。


if (initResult) {
    TtsClient.getInstance().speakText("欢迎使用语音播报!", null);
}

使用完成后销毁TTS客户端。

TtsClient.getInstance().destroy();
相关文章
|
1天前
|
索引
鸿蒙开发:ForEach中为什么键值生成函数很重要
在列表组件使用的时候,如List、Grid、WaterFlow等,循环渲染时都会使用到ForEach或者LazyForEach,当然了,也有单独使用的场景,如下,一个很简单的列表组件使用,这种使用方式,在官方的很多案例中也多次出现,相信在实际的开发中多多少少也会存在。
鸿蒙开发:ForEach中为什么键值生成函数很重要
|
7天前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
68 14
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
8天前
|
人工智能 API 语音技术
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
TEN Agent 是一个开源的实时多模态 AI 代理框架,集成了 OpenAI Realtime API 和 RTC 技术,支持语音、文本和图像的多模态交互,具备实时通信、模块化设计和多语言支持等功能,适用于智能客服、实时语音助手等多种场景。
87 15
TEN Agent:开源的实时多模态 AI 代理框架,支持语音、文本和图像的实时通信交互
|
3天前
|
人工智能 小程序 API
【一步步开发AI运动小程序】十七、如何识别用户上传视频中的人体、运动、动作、姿态?
【云智AI运动识别小程序插件】提供人体、运动、姿态检测的AI能力,支持本地原生识别,无需后台服务,具有速度快、体验好、易集成等优点。本文介绍如何使用该插件实现用户上传视频的运动识别,包括视频解码抽帧和人体识别的实现方法。
|
8天前
|
人工智能 小程序 UED
【一步步开发AI运动小程序】十六、AI运动识别中,如何判断人体站位?
【云智AI运动识别小程序插件】提供人体、运动及姿态检测的AI能力,本地引擎无需后台支持,具备快速、体验好、易集成等优势。本文介绍如何利用插件的`camera-view`功能,通过检测人体站位视角(前、后、左、右),确保运动时的最佳识别率和用户体验。代码示例展示了如何实现视角检查,确保用户正或背对摄像头,为后续运动检测打下基础。
|
4天前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。
|
移动开发 Ubuntu 网络协议
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
176 1
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(中)
|
XML Web App开发 开发框架
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
准备好鸿蒙开发环境后,接下来就需要创建鸿蒙项目,掌握项目的创建过程以及配置。项目创建好后,需要把项目运行在模拟器上,鸿蒙的模拟和安卓模拟器有些不同,鸿蒙提供远程模拟器和本地模拟器,通过登录华为账号登录在线模拟器,使用DevEco Studio可将项目部署到远程模拟器中。
1284 1
鸿蒙开发入门 | 开发第一个鸿蒙应用+页面跳转
|
存储 Ubuntu 前端开发
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
345 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(下)
|
存储 编解码 Ubuntu
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令
237 0
嵌入式linux/鸿蒙开发板(IMX6ULL)开发 (二)Ubuntu操作入门与Linux常用命令(上)

热门文章

最新文章