语音服务适配指南

简介: 本文介绍 语音服务适配指南

1. 概述

语音服务组件提供关键词识别和语音数据的处理控制。输入麦克风的语音数据经过回音消除降噪和关键词识别处理后再输出到应用层使用。YoC在语音服务接口和算法实现之间增加了适配层,方便多种语音算法的接入,保持了应用代码的统一。

下图以SC5654芯片双核架构为例,适配层利用核间通讯,实现应用与DSP算法的数据交互。

image.png

2. 适配接口

2.1 语音服务适配接口

语音服务适配接口注册在mic_ops结构体中,详细信息如下:

组件:mic

头文件:

语音服务的适配接口如下:

image.png

2.2 应用接口映射

应用通过调用应用层API,操作对应语音服务适配接口,语音服务开发者只需实现适配接口定义。用户无需修改代码,即可迁移至对应语音服务上。

应用API与语音服务适配接口映射如下:

image.png

3. 接口说明

2.2 init

函数原型

int (*init) (mic_t *mic, mic_event_t mic_event);

功能描述

语音服务初始化,在应用调用aui_mic_start时会调用该接口。若有私有数据需要保存,可通过函数mic_set_privdata将其保存在mic->priv私有成员指针中。设置后,其他适配函数就可以通过函数mic_get_privdata获取该指针。语音服务层通过应用注册的mic_event回调函数将语音事件传递给应用层。

参数描述

image.png

相关定义

image.png

返回值

image.png

2.3 deinit

函数原型

int (*deinit) (mic_t *mic);

功能描述

应用接口aui_mic_stop执行时会调用该适配接口释放资源。

参数描述

image.png

2.3 kws_control

函数原型

int (*kws_control) (mic_t *mic, int flag);

功能描述

关键词识别使能控制。

参数描述

image.png

2.4 kws_wake

函数原型

int (*kws_wake) (mic_t *mic, int flag);

功能描述

强制算法发出一个模拟唤醒事件。

参数描述

image.png

2.5 pcm_data_control

函数原型

int (*pcm_data_control) (mic_t *mic, int flag);

功能描述

控制算法输出的音频流的开关。

参数描述

image.png

2.6 pcm_aec_control

函数原型

int (*pcm_aec_control) (mic_t *mic, int flag);

功能描述

控制算法是否使能回音消除。

参数描述

image.png

2.7 pcm_set_param

函数原型

int (*pcm_set_param) (mic_t *mic, void *param);

功能描述

初始化语音算法参数。

参数描述

image.png

返回值

image.png

2.8 mic_set_privdata

函数原型

int mic_set_privdata(void *priv);

功能描述

设置适配私有数据到mic对象。

参数描述

image.png

2.9 mic_get_privdata

函数原型

void *mic_get_privdata(void);

功能描述

获取mic对象中的私有数据指针。

参数描述

返回值

image.png

2.10 mic_ops_register

函数原型

int mic_ops_register(mic_ops_t *ops);

功能描述

注册适配层,一般增加一个适配需要实现一个新的函数封装该函数,提供一个简单的注册函数供应用使用。

参数描述

image.png

3 适配示例

适配完成所有接口函数后,定义适配接口结构体,完成函数注册。

示例如下:

/* 适配接口结构体 */
static mic_ops_t mic_adp_ops = {
    .init = mic_adaptor_init,
    .deinit = mic_adaptor_deinit,
    .kws_control = mic_adaptor_kws_control,
    .kws_wake = mic_adaptor_kws_wake,
    .pcm_data_control = mic_adaptor_pcm_data_control,
    .pcm_aec_control = mic_adaptor_pcm_aec_control,
    .pcm_set_param = mic_adaptor_set_param,
    .pcm_get_param = mic_adaptor_get_param,
};

/* 注册函数 */
void mic_thead_v1_register(void)
{
    mic_ops_register(&mic_adp_ops);
}

文章来源:芯片开放社区
文章链接:https://occ.t-head.cn/community/post/detail?spm=a2cl5.14300636.0.0.1b87180flWxVN5&id=3772275121524969472

相关文章
|
4月前
使用阿里云语音通知http批量推送模式获取用户回执短信内容
本文使用阿里云语音通知配置http批量推送模式获取用户回执信息,并进行测试
365 0
|
安全 JavaScript 机器人
阿里云 语音服务-国内语音服务
阿里云 语音服务-国内语音服务
473 0
阿里云 语音服务-国内语音服务
|
云计算
阿里云产品体系分为6大分类——云计算基础——云通信——语音服务
阿里云产品体系分为6大分类——云计算基础——云通信——语音服务自制脑图
97 0
阿里云产品体系分为6大分类——云计算基础——云通信——语音服务
《阿里云产品手册2022-2023 版》——语音服务
《阿里云产品手册2022-2023 版》——语音服务
|
云计算
秒懂云通信:如何用阿里云语音通知服务(小白指南)
手把手教你如何使用阿里云语音通知服务,超详细控制台步骤解析,快速上手!更有1650元短信体验代金券和免费试用,点击速抢:https://yqh.aliyun.com/live/cloudcommunication-videos
3796 0
秒懂云通信:如何用阿里云语音通知服务(小白指南)
|
API 语音技术 开发者
借助阿里云【语音服务】实现异常实时报警
阿里云的【语音服务】,实现异常情况的设备报警【比如火警】快速有效的通知到相关人员
2984 0
|
23天前
|
API 开发工具 Android开发
视觉智能开放平台产品使用合集之人脸活体检测能力是否支持Android端或者iOS端直接调用
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
|
14天前
|
安全 CDN
基于surging 如何利用peerjs进行语音视频通话
【9月更文挑战第5天】该内容介绍了如何在基于 Surging 框架的应用中集成 PeerJS 以实现语音视频通话功能。首先需安装 Surging 并引入 PeerJS 库,接着创建 Peer 对象并处理连接事件,然后在 Surging 中创建与 PeerJS 交互的逻辑,最后实现获取媒体设备及建立连接共享媒体流的功能。整个过程需根据具体需求进行调整和优化,并确保通信安全。
40 14
|
15天前
|
人工智能 机器人 UED
数字人模型网页手机云推流语音交互
随着AI技术的发展,数字人与大型语言模型的结合迎来了新机遇,各类数字人服务不断涌现,应用于多种场景。点量小芹发现许多厂商仍在探索如何优化数字人在移动端的表现。通过云推流实时渲染解决方案。无论是直播中的数字人形象定制,还是网页客服与大屏讲解的应用,只需将数字人模型置于服务器端,借助云渲染技术,用户即可在网页或移动设备上轻松使用高精度的数字人,显著降低硬件需求,提升互动体验。
53 13
|
4月前
|
Web App开发 安全 API
想开发一款带有视频通话/共享屏幕功能的产品?那WebRTC是你必须要知道的!
一名技术爱好者在研究如何为开源项目集成视频通话功能时,深入学习了WebRTC技术。WebRTC是一个API,允许浏览器和应用实现实时音视频通信,简化了之前复杂的技术挑战,如音视频处理和网络传输。该技术可用于视频通话、桌面共享、视频会议等多种场景。在WebRTC中,通过信令交换、STUN/TURN服务器和ICE框架处理网络连接和通信路径,实现点对点连接。与WebSocket不同,WebRTC专注于高质量实时通信,使用UDP协议以降低延迟。接下来的文章将分享如何实现WebRTC的视频通话功能。