一、目的

随着人工智能技术的不断发展,语音识别技术、图像识别技术、人机交互这几年越来越成为热门。作者从业于人工智能语音公司多年,简单聊聊设备端语音交互框架设计。

二、设计

一般语音交互类产品中会涉及到语音唤醒、语音识别、语义识别、对话理解、语音合成等相关技术,对于这些技术细节博主不是这方面的专业人员了解的不多,但这并不影响语音应用开发人员去设计一个语音交互框架。

一个完整的语音交互类产品一般分为以下模块,如图:

语音交互框架

其中虚线方框中的各项功能SDK一般由特定的语音厂商提供,在语音行业中比较有名包括思必驰、阿里、百度。椭圆虚线框中的各个模块根据产品的业务需要自行删减设计;其中特别需要关注是播放管理,这个我会在后期的博文中单独拆分说明。

录音模块即设备录音,这个一般由硬件厂商或者驱动开发人员适配特定的codec对外统一成alsa接口或者其他特定的录音接口。

信号处理一般是指回声消除、消噪、增强、beamforming等技术,最近比较流行的即麦克风阵列技术,包括线性阵列、环形阵列。

唤醒即语音唤醒,即设备时刻监听用户说话,当用户说出特定的词时,设备被唤醒,例如天猫精灵、小度小度等。

语音端点检测即VAD语音算法从录音中判断出话音的起点与终点,截取用户有效语音内容,交由后续语音识别模块使用。

本地识别即语音转文本并且是在设备端处理,这个一般对设备的性能(存储、算力)有一定的要求。

云端识别一般是将语音数据发送给语音云,由云端进行识别后反馈给设备端。一般情况下语音数据都是会进行压缩处理,比较流行的有speex ogg等算法。现在市面上各个大厂都有自己的一套语音云服务,例如思必驰DUI平台。

 

关于如何将前端信号处理、唤醒、语音断点检测、本地识别、云端识别设计成一个语音SDK,后续会在其他博文中加以说明,敬请期待。

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐