前记

  你平时在商场看到的语音助手,看起来非常的简单,其实,这个小小语音助手的背后,是一个非常的复杂的技术支撑。从前端到后端的技术依次是:前端语音降噪技术,高效的音频编解码技术,蓝牙双模技术,DMA协议移植技术。手机侧音频编解码技术,降噪技术,语音识别技术。丰富的娱乐和使用资源(地图,音乐,音频等)。整个流程下来,是一个复杂的工程。想把整个产业链玩起来,真不是一个公司能够玩起来的,需要的是产业上很多公司的共同努力。

终端设备的难点

  • 前端降噪技术
     前端降噪技术,这里面一般是软件算法实现的,一般包括,单麦克,双麦克,多麦克降噪算法,消回声算法,AGC算法等。这三个的使用是一个配合的过程。具体设置什么参数,怎么适配,这个跟产品的特性是强相关的。有这方面疑问的同学可以多多交流。

  • 音频编码技术
     由于蓝牙spp和ble的带宽都无法传输没有压缩的音频,还有就是无法对无线传输的质量做一个比较高的保证。因此,音频传输一定需要编解码的。在DMA长录音中,音频编解码常用的只有两种:SBC和OPOS。由于SBC是比较老的编解码算法,无论压缩比还是压缩质量,都无法和opus相比,所以,想要你的语音助手听的清楚,目前主流的都是opus编码。opus是一个开源的编解码技术,它无论是压缩比,抗抖动性能,还是音质的还原度,都是在目前的同类音频编解码中绝无仅有的。

 opus唯一的不足之处就是消耗的MIPS比较高,假如你想把它移植到耳机或者类似耳机的小平台上,还是需要花费很多功夫的,很多芯片都是因为无法移植opus或者移植的opus无法优化,造成音频编解码效率特别低或者无法使用。这个当初我们也是摸索了好久,做了大量的算法优化才做的比较好的。

  • 蓝牙双模支持
     DMA语音这块,虽然是spp和ble都可以使用。假如你想在苹果上使用,只能使用ble,因为apple是不给第三方公司开发spp接口的。但是,假如你想在android上使用ble的话,由于android厂商太分散,每家做的ble都差距很大,会造成很多兼容性问题。这个也就是为什么目前主流的方案都是 android + spp apple +ble的模式,这个就要求你的芯片支持蓝牙和ble双模了。目前的绝大多数耳机芯片,双模支持的比较好的的确很少。这点我们也走了不少弯路,才后面找到了一个合适的芯片来做个这个东西。
  • 低成本的技术
     做产品呢,都是为了赚钱。所以,成本是广大设备商首先考虑的重点。为了能够做DMA+小度的方案,很多公司使用了两颗以上的主芯片。成本就需要5美金以上,这个价格就决定了产品无法大范围的商用。基于此,我们把所有的东西都放到了一个芯片中,一个产品一个芯片搞定,这个极大的降低了成本。不过,也是花费了很多精力的。毕竟,把所有的东西放到一个芯片中,这个对软件工程师的水平是一个极大的考验。

后台app的技术难点

  • 高效的语音识别技术
     前面的所有一切的努力,最后都是为了进行语音识别。国内做语音识别的厂家很多,为什么我们选择百度呢?主要有几个原因,百度是ai这块国内投入最大,投入最早,商用范围最广的互联网公司。他们的语音识别技术做的特别好,并且还广泛开发给第三方厂家。所以说,选择百度。也是我们经过很多实际考察做出的选择。后来等产品做出来了,也证明了我们的选择当初是对的。

  • 广泛的消费内容
     语音识别技术,假如没有后面的内容作支撑,只是客户问几个小问题的话,估计没啥吸引力了。所以,app的内容多少是该产品成败的关键。百度在这块可以说是下了血本的。地图,音乐,有声读物,基本上把主流的厂商都签了合同的。可以调用QQ音乐,可以调用喜马拉雅等。这些资源,真不是一般厂商能够调动的。

百度DMA+小度App的蓝牙语音解决方案技术难点解析的更多相关文章

  1. 百度DMA+小度App的蓝牙语音解决方案入局

    前记   人机交互经历了三个阶段键鼠.触屏和语音交互.在国外,谷歌.亚马逊.苹果等巨头的竞争已经到达白热化状态:在国内,百度的DuerOS凭借着入局早,投入大,已经成为国内语音互交的一面旗帜.无论是从 ...

  2. 百度DMA+小度App的蓝牙语音解决方案展示

    前记   跟着百度也有一段时间了,经过一年多的努力,我们也做出了一些基于百度的语音助手的产品方案.下面就给大家秀一下我们做的产品.有类似需求的朋友可以多多交流.我们的合作方式十分灵活,可以卖芯片你自己 ...

  3. 百度DMA+小度App的蓝牙语音解决方案案例展示

    前记   跟着百度也有一段时间了,经过一年多的努力,我们也做出了一些产品.下面就给大家秀一下我们做的产品.有类似需求的朋友可以多多交流. 智能语音耳机   这个是就是可以通过按键来调用小度app的运动 ...

  4. 【阿里聚安全技术公开课】移动APP漏洞风险与解决方案

    阿里云·云栖社区携手阿里聚安全打造阿里安全技术公开课,带你一探互联网安全的风采 关于移动APP安全 移动App是大家使用手机每天接触最多的东西,然而在移动APP开发中,由于一些开发工程师对安全的不重视 ...

  5. iOS后台唤醒实战:微信收款到账语音提醒技术总结

    1.前言 微信为了解决小商户老板们在频繁交易中不方便核对.确认到账的功能痛点,产品MM提出了新版本需要支持收款到账语音提醒功能.本文借此总结了iOS平台上的APP后台唤醒和语音合成.播放等一系列技术开 ...

  6. android Qzone的App热补丁热修复技术

    转自:https://mp.weixin.qq.com/s?__biz=MzI1MTA1MzM2Nw==&mid=400118620&idx=1&sn=b4fdd5055731 ...

  7. App热补丁动态修复技术介绍

    安卓App热补丁动态修复技术介绍 来自qq空间团队:微信号qzonemobiledev QQ空间终端开发团队 1.背景 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就 ...

  8. 蓝牙mesh网络技术的亮点

    蓝牙mesh网络技术的亮点 The highlights of Bluetooth mesh networking technology 导言 蓝牙是当今最主要的低功耗无线技术之一,对无线设备用户和开 ...

  9. 吓哭原生App的HTML5离线存储技术,却出乎意料的容易!【低调转载】

    吓哭原生App的HTML5离线存储技术,却出乎意料的容易![WeX5低调转载] 2015-11-16 lakb248 起步软件 近几天,WeX5小编编跟部分移动应用从业人士聊了聊,很多已经准备好全面拥 ...

随机推荐

  1. 2019-7-22-Roslyn-获得-sln-文件所在的文件夹

    title author date CreateTime categories Roslyn 获得 sln 文件所在的文件夹 lindexi 2019-07-22 08:57:14 +0800 201 ...

  2. Mysql查询某个月的每一天的数据

    需求:查询最近三个月的每一天的业绩总和 因为最近三个月每个月的天数是不一样,所以不能用这篇文章:Mysql查询最近30天的数据(每天的业绩总和数据) 介绍的用固定多少天去查数据.需要一个新方法. 一. ...

  3. @hdu - 6594@ Double Tree

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定两棵 N 个点的树,以及树上每条边的权值 w(u, v),每 ...

  4. Top 10 open source projects of 2015

    Top 10 open source projects of 2015 Posted 15 Dec 2015Jen Wike Huger (Red Hat)Feed 188 up 31 comment ...

  5. python -- 类中--内置方法

    isinstance 和  issubclass isinstance(obj,b)  检查是否obj是否是类b的对象 class A(object):pass class B(A):pass b=B ...

  6. Ubuntu 开机自动挂载NTFS分区

    先安装两个软件,ntfs-3g 和 ntfs-config,前面那个最新版本的Ubuntu已经自带了,所以只需要安装ntfs-config. 输入 sudo apt-get install ntfs- ...

  7. SuperSocket新的配置属性 "defaultCulture"

    这个新增的功能只支持 .Net framework 4.5 及其以上版本. 它允许你设置所有线程的默认Culture, 不管这些线程是如何创建,通过代码或者来自于线程池. 这个新的配置属性 " ...

  8. Pytest - 使用介绍

    1. 概述 pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点: 1.简单灵活,容易上手,文档丰富: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单 ...

  9. poj 2451 Uyuw's Concert (半平面交)

    2451 -- Uyuw's Concert 继续半平面交,这还是简单的半平面交求面积,不过输入用cin超时了一次. 代码如下: #include <cstdio> #include &l ...

  10. [转]FileDescriptor详解

    FileDescriptor是"文件描述符". FileDescriptor可以被用来表示开放的文件,开放的套接字等. 当FileDescriptor表示文件来说,当FIleDes ...