海思HI35xx语音识别方案

前言

语音识别是智能化应用的一个重要分支,也是语音交互功能的基础。语音识别基于神经网络算法,借助大数据进行模型训练,据科大讯飞相关数据报道,它们已经能够实现98%以上的准确识别率,同时支持多种外语及国内的一些方言。从语音技术实现方式分类可以分为本地识别和云识别,本地识别主要是借助语音芯片诸如LD3320等,而云识别目前国内比较火的有科大讯飞、百度AI等云服务提供,它们提供友好的API接口,支持多种开发语言,相比于本地语音识别,它的识别准确率更高,应用场景更为灵活。

海思HI35xx音频知识

海思音频模块包含音频输入(AI)、音频输出(AO)、音频编码(AENC)、音频解码(ADEC)这四个模块,这几个模块实现了声音采集、声音播放以及声音编解码的功能。原始的音频信号是模拟信号,通过pcm方式进行数字化,常用音频采样频率有8khz、16khz、32khz、48khz。根据香农采样定理,为了不失真地恢复模拟信号,采样频率应该不小于模拟信号频谱中最高频率的2,而人能听到的声音频率范围在20~20000hz,而且听力敏感区是集中在中频区段,所以用16khz频率采样作为语音识别原始数据既能保持音质,也能降低数据运算复杂度。

根据笔者的经验,海思音频模块硬件实现方式有两种,一种是将音频芯片集成到芯片内部,作为片上资源使用,另一种是外接音频芯片方式,如wm9874。这两种接法大同小异,与音频芯片控制指令数据交互是由I2C实现,而音频数据交互则是由I2S或者PCM来实现。软件开发需要注意的是音频采样率设置、采样数据位宽,8位或者16位,不同的云语音识别平台对音频采样率、位宽都有要求,不过比较通用的是16khz采样、16位数据宽度、pcm音频格式。下图是海思CPU与音频芯片用I2S或PCM方式进行数据交互的示意图,可见PCM方式只有单声道,而没有多声道立体声的概念。

语音识别方案

语音识别方案分为硬件本地实现和智能语音云实现,我比较推崇使用云方式,它成本较低,后期维护少,识别准确率高,而且随着5G商业化浪潮实现,网络延时基本可以忽略,语音识别实时性与本地相比无异。配合HIMPP平台的API使用实现音频采集、处理、推云平台的功能并不难,首先MIC作为音频模拟信号输入源,由AUDIO CODE芯片进行模数转换,然后通过I2S或者PCM方式与CPU进行数据交互,接着CPU通过Socket连接云服务器进行推流,云将语音识别的数据返回。此外,云还有语音合成功能,它可以将文字合成为语音,此过程恰好与语音识别的数据流相反,并最终推向speaker。HIMPP平台的API使用可以参考《海思HI35xx平台软件开发快速入门之背景知识》

语音识别案例

这里参考了百度AI语音识别案例源码,百度AI语音识别的样例编程语言环境为C++,由于采用了云方式,避免不了进行网络开发,根据百度AI语音开发文档,有要求一定运行环境,网络连接请求依赖于curl、加密依赖于openssl、数据交互格式依赖jsoncpp,还有百度语音识别的SDK开发包,这里这里给出了这些运行环境移植的源码。

// 请替换您下载的C++SDK路径
#include "aip-cpp-sdk-0.7.4/speech.h"void ASR(aip::Speech* client);void ASR_url(aip::Speech* client);void TTS(aip::Speech* client);int main()
{// 务必替换百度云控制台中新建百度语音应用的 Api Key 和 Secret Keyaip::Speech * client = new aip::Speech("15398376", "GgCrxhNOhe0UnP9k0hHaUxfF", "TEmp8hCGMeVV61VG0PAKXKRG4nekMLmI");ASR(client);ASR_url(client);TTS(client);return 0;
}/*** ASR语音识别示例*/
void ASR(aip::Speech* client) {std::map<std::string, std::string> options;options["lan"] = "ZH";std::string file_content;aip::get_file_content("./16k_test.pcm", &file_content);Json::Value result = client->recognize(file_content, "pcm", 16000, options);std::cout << "语音识别本地文件结果:" << std::endl << result.toStyledString();
}/*** ASR语音识别示例,使用远程文件地址*/
void ASR_url(aip::Speech* client) {std::map<std::string, std::string> options;options["lan"] = "zh";Json::Value result =client->recognize_url("http://bos.nj.bpc.baidu.com/v1/audio/8k.amr","http://your_site/dump","amr", 8000, options);std::cout << "语音识别远程文件结果:" << std::endl << result.toStyledString();
}/*** TTS语音合成示例*/
void TTS(aip::Speech* client) {std::ofstream ofile;std::string file_ret;std::map<std::string, std::string> options;options["spd"] = "5";options["per"] = "2";ofile.open("./tts.mp3", std::ios::out | std::ios::binary);Json::Value result = client->text2audio("百度语音合成测试", options, file_ret);// 如果file_ret为不为空则说明合成成功,返回mp3文件内容if (!file_ret.empty()){// 合成成功保存文件ofile << file_ret;std::cout << "语音合成成功,打开目录下的tts.mp3文件听听看" << std::endl;} else {// 合成出错,打印错误信息std::cout << result.toStyledString();}
}

总结

语音识别作为智能化终端的基础越来越受到人们的重视,特别是云语音识别能力及准确率大大提高的今天,借助5G网络发力,相信在未来的3年内将会普遍实现终端带语音,云识别的应用场景。智能安防将重新定义市场,安全智慧城市将服务于大众。记HI35XX语音识别总结于广州,2019-01-25.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

海思Hi3798MV200机顶盒芯片处理器简介

Hi3798MV200是用于IPTV/OTT机顶盒市场的支持4KP60解码的全4K高性能SOC芯片。集成4核64位高性能Cortex A53处理器和多核高性能2D/3D加速引擎&#xff1b;支持H.265 4Kx2KP60 10bit超高清视频解码&#xff0c;高性能的H.265高清视频编码&#xff0c;HDR视频解码及显示&#xff0c…

TTS语音播报模块UNV6288的使用方法

TTS即text to sound&#xff0c; 输入字符它可以帮你转化为语音输出。 UNV6288可以实现中文、英文、数字的语音合成。用户也可以定义语音大小速度等参数。 这个模块的控制方式很简单&#xff0c;只要通过 TTL 串口向模块发送GBK编码&#xff0c;串口发送什么就播放什么。 另…

基于STM32 + SYN6288语音播报

完整代码下载 https://download.csdn.net/download/zhouml_msn/85592868 一、接线示例&#xff1a; 二、模块重点&#xff1a; 1&#xff1a;5V供电 &#xff0c;功耗约120mA (带图中小喇叭)&#xff1b; 2&#xff1a;最少接3根线&#xff1a;5V, GND, RXD&#xff0c;TXD…

5.32 综合案例2.0 - TTS语音云播报(支持M320开发板)

HaaS506 - TTS语音云播报 简介准备硬件接口代码流程功能实现1、物联网平台开发2、设备端开发代码调试 3.应用平台开发3.1新建‘普通项目’3.2关联产品和设备3.3新建移动应用 简介 用python开发板写的云喇叭&#xff0c;文字转语音&#xff0c;附教程源码 手机端发送文字&#x…

深圳知名语音ic品牌,语音芯片方案公司,多功能语音芯片,WTV890

随着人工智能技术的不断发展&#xff0c;语音交互已成为智能家居、智能医疗、消费类电子等领域的主流趋势。WTV890作为深圳知名的语音IC品牌&#xff0c;凭借着卓越的性能、丰富的扩展功能和灵活的应用&#xff0c;已成为众多需要语音交互的智能设备的首选方案。 WTV890-32N 有…

chatgpt赋能python:用Python生成动画:带你深入了解Python动画生成技术

用Python生成动画&#xff1a;带你深入了解Python动画生成技术 Python作为一门高效的编程语言&#xff0c;已经被广泛应用于各个领域&#xff0c;包括数据分析、机器学习、自动化测试等。除此之外&#xff0c;Python还可以用于生成动画&#xff0c;帮助我们更直观地理解一些复…

银联AID

应用标识 application identifier&#xff1b;AID 由注册的应用提供商标识&#xff08;RID&#xff09;以及专用应用标识符扩展&#xff08;PIX&#xff09;组成 AID:即唯一标识一个应用&#xff0c;分为两部分&#xff0c;RID(5字节)PIX&#xff08;最多11字节&#xff09; …

信用卡的支付清算

一、分享背景 Hi 大家好&#xff0c;我今天给大家分享是信用卡清算方面的内容&#xff0c;今天的分享主要分四块来讲&#xff1a; 定价模式 业务流程 清算流程 常见问题 二、分享内容 1、定价模式 首先给大家分享一下关于信用卡定价方面的内容&#xff0c;信用卡的定价…

金融支付-银联卡支付系统产品介绍

一、系统概述 银联卡支付业务是中国现代化支付方式中最重要的一种&#xff0c;村镇银行作为金融支付机构&#xff0c;银联卡支付业务在其日常经营活动中&#xff0c;占有很大的比重。金电银联卡支付系统正是着眼于村镇银行业务需求&#xff0c;结合村镇银行业务特点&#xff0c…

SpringBoot使用银联支付

目录 前言 一、银联支付java sdk 二、官方DEMO 三、springboot项目使用银联支付 3.1、新建项目 3.2、配置 3.3、封装客户端 写在后面 前言 项目里使用了微信支付&#xff0c;支付宝支付。但是还不满足&#xff01;我们还需要银联支付&#xff01;&#xff01;那就去看…

银联银行卡卡号java_编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类...

编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类 编写Java程序,使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位的数字,卡号以“62”开头,如图所示。 使用单例模式,创建可以生成银联借记卡号的工具类,银联借记卡号是一个 19 位…

苹果手机充值显示服务器繁忙,iTunes充值常见错误和解决方法

iTunes充值常见错误和解决方法 小编归纳总结了常见的iTunes充值异常和解决方法&#xff0c;包括充值未到账、语音操作异常、订单状态异常、系统验证信息错误、支付密码异常、账户金额限制、银行卡状态异常及系统异常8大常见iTunes充值错误&#xff0c;以方便果粉顺利充值iTunes…

雅思阅读笔记

一、一个星期七天 1.Monday 2.Tuesday 3.Wednesday 4.Thursday5. Friday 6.Saturday 7.Sunday 二、一年十二个月 1.January 2.February 3.March 4.April 5.May 6.June 7.July 8.August 9.September 10. October 11.November 12.December 三、一年四季 1.spring 2.summer 3.autu…

雅思复习总结

文章目录 1. 考前复习阶段1.1 阅读1.2 听力1.3 写作1.4 口语 2. 考试过程3. 最后成绩 刚刚考完雅思&#xff0c;这是我第一次考雅思&#xff0c;总结一下这次考试的经验。 1. 考前复习阶段 对于中国考生来说&#xff0c;阅读和听力是强项&#xff0c;只需做大量的练习即可。重…

计算雅思成绩C语言,雅思成绩到底如何计算的?

很多烤鸭在漫漫屠鸭路上时常会感到困惑&#xff1a;明明自己发挥不错&#xff0c;为什么成绩却和想象的不同&#xff1f;总分达标了&#xff0c;小分却不够该怎么办&#xff1f; 其实雅思成绩单隐藏了很多的信息&#xff0c;今天我们来分析两份典型的成绩单&#xff0c;帮助烤鸭…

ubc本科计算机雅思要求,英属哥伦比亚大学雅思要求

英属哥伦比亚大学雅思要求是6.5分&#xff1b;托福93分。 英属哥伦比亚大学院系 不列颠哥伦比亚大学共设有25个院系&#xff1a; 应用科学系(Faculty of Applied Science) 建筑与园林建筑学院 (School of Architecture and Landscape Architecture) 文学系 (Faculty of Arts) 听…

【b站雅思笔记】Charlie有好好学习 - 雅思听力

〇、前情提要 最近备考雅思&#xff0c;学习一下前人经验。 参考&#xff1a; 手把手教你做地图题 | 雅思听力地图题 https://www.bilibili.com/video/BV1Pp4y167sM?t1331手把手教你做听力Part4 | 雅思听力填空题 https://www.bilibili.com/video/BV1AK4y1W7dh手把手教你做…

雅思口语P3的逻辑

找最核心的地方 核心-> 玩音乐的好处 然后拉上孩子的关系 然后拉上父母的关系