`
mmdev
  • 浏览: 12915897 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

活动报道:语音开发技术实践:语音云 语音浏览器 即时语音聊天技术(CMDN Club15期)

 
阅读更多

CMDN Club第15期活动于3月15日在北京丽亭华苑酒店举行。本次活动的主题为“移动平台语音技术的应用与实践”,现场的演讲嘉宾为:讯飞资深研发工程师李洪亮,讯飞iOS平台资深开发工程师储双双,UC优视公司UC浏览器产品部经理罗荣力,以及北京爱图腾科技高级iOS开发工程师张天虹。

语音云及基于iOS平台的语音云应用

讯飞资深研发工程师 李洪亮讯飞语音云计算的逻辑架构分为四层:顶端层是工作在客户端的用户应用软件;第二层是讯飞语音云的客户端组件;第三层是核心层,主要完成语音识别、语音合成、声文以及手写的工作;底部层为基础架构层,主要实现存储、实时监控以及自动报警的功能。

如何使用语音云?讯飞语音云代理的SDK叫做MSC,它的主要功能为:完成数据的收集、加工,构建、解析并发送消息,这样便可实现服务之间的消息交互。MSC能够保证高效率的交互,并且交互的数据量尽可能少,因为交互的数据量少了成功率就高了,对于断网这些异常能够进行正常的处理。

图:讯飞资深研发工程师 李洪亮

因为语音识别常用的均为嵌入式设备,造价比较高,决定了第一客户端工作组件不能太复杂,个头要小,效率要高。再加上复杂多样的使用环境,除了用户手上形形色色的设备之外,还包括多平台的运行,需要让组件在Android、iPhone等平台之间进行移植。

如何对付它的网络环境比较差,首先,在建立一个会话连接服务器的时候,在短时间内每隔一秒发一个链接请求,这样便提高了链接效率。其次,利用内部服务器切换功能,可切换至另一个服务器。第三,当链接异常中断,或只支持短连接网络时,由于这一路的会话信息还未丢失,如果恢复链接业务,用户便不会感觉到连接过程中曾出现问题。

语音云安全

任何一个云计算应用无法回避的问题即是安全问题。在安全机制上,科大讯飞采取两种策略:第一,对部分敏感信息进行加密,敏感信息是指会话信息与用户的敏感数据。会话信息包括用户的合成文本、上传和下载的数据;敏感数据是指用户不希望其他人看到的数据。对这两部分进行数据加密是非常必要的。第二,实现一个安全的HTTPS,也就是在传输之前用RC4加密算法对要传输的报文进行加密。

语音云与音频相关的技术

目前的引擎支持的音频格式只是因特尔PCM的音频。选择压缩算法涵盖了Speex和AMR。Speex提供的等级范围为0至11,其马力范围跨度是非常大的。面对这些压缩的音频,有时用户会提出疑问:我是否可以调用自己系统的接口,直接进行传输,以便有效地获取压缩音频?实际上,用户此时写入MSC的不是写好的音频,而是已经压缩好的音频。压缩帧的压缩等级是可变的,也就是说一个压缩帧的长度是可变的,是不定的。

图:开发者喜得奖品《程序员》

面对庞大的压缩算法,我们应该选择哪一个?面对这么多的压缩等级又该选择哪一个?根据讯飞工程师的实际测试,得出的结论为:压缩率范围控制在10至15 较为合适。

讯飞iOS平台资深开发工程师 储双双先讲一下语音云控件两个成功案例:讯飞口讯和讯飞输入法。讯飞口讯的产品功能是将文字通过发短信、发邮件的方式分享到新浪微博、腾讯微博。讯飞输入法是集语音、手写、拼音、笔画为一体的中文输入法,是中文输入法中功能最强大的输入法。

图:讯飞iOS平台资深开发工程师 储双双

MSC架构中用到了多种技术,包括:降噪、VAD端点检测、音频Speex编解码、语音云协议栈等。

我们的手机通讯录上有很多人名,但人名识别的效果并不很好。如果将所有人名上传至服务器,在一个小的集成商中进行识别,效果便会很好。这在一些电话或者通讯应用里面会用到。

合成也有创建对象,也有初始化,传的参数也是一样的。设置合成文本的第一个参数便是文本,第二个参数多作为扩展使用。考虑到开发者在语音合成时遇到的不确定因素,我们预先设定的参数也较为丰富,包括:设置背景音,设置发音人,设置合成语速,设置合成音量,以及上传和下载流量。

图:本期特别关注:女程序员提问演讲嘉宾

语音功能在浏览器项目上的落地与实现

UC优视公司UC浏览器产品部经理 罗荣力为什么语音技术越来越受人瞩目?人们已经发觉到物理键盘的输入远远不及语音输入的方式便捷。如果将繁复的事务都交给云来处理,人们会觉得轻松许多。并且云端处理的可扩展性、可兼容性与可控制性较其他方式更为强大。

图:UC优视公司UC浏览器产品部经理 罗荣力

UC浏览器在哪里布局云技术?浏览器从搜寻开始是一个顺时针的过程:

  • 浏览器内置搜索功能:用户通过用谷歌或百度在互联网上搜索内容的功能。
  • 到达内容:用户输入网址后进行网址导航。
  • 内容处理:用户找到内容以后对浏览器进行内容处理,包括编辑、操作、加入导航等一系列的处理。
  • 附加功能:围绕浏览器展开的附加功能,如设置与特性的功能。

UC如何布局语音浏览器的功能?首先是输入,我们帮助用户减少输入的步骤,帮助他在输入中更快输入目标,使用场景包括输入网址和关键词。其次是云端控制, UC浏览器利用强大的后台处理的能力,帮助用户实现如“说一个网址就可以帮你打开一个网址”,“说一个关键词我们会帮你搜索”的场景。在揣摩用户心理之后,UC浏览器将展开DIY个性化的浏览器服务。

iOS即时语音聊天技术实践

北京爱图腾科技高级iOS开发工程师 张天虹实现语音传输的首要即是录音,将录音文件传送至服务器,再从服务器传至另一个设备进行播放。iOS平台涉及的语音技术主要为语音录制、语音编解码、语音播放、Audaio Session以及语音实践。

iOS支持的语音录制格式不多,我们以往的经验认为AAC格式的压缩效果最好;ALAC和iLBC格式则多用于网络传输;IMA4的压缩效率虽然高,但其他算法的复杂度相对低一些,如果要求较高的效率则可考虑IMA4格式;Linear PCM是无压缩的格式;其他格式还包括miu-Law与阿尔法-Law。

图:北京爱图腾科技高级iOS开发工程师 张天虹

介绍一个基本的录出数据格式的过程:首先从话筒里面录制PCM出去,Codec将PCM转换成AAC格式,再将AAC写成硬盘文件。中间的Codec起到了转码的作用,这便是录出数据格式的办法。

我们经常用到的音频格式主要是MP3、WMA、MIDI、OGG、Speex。但iOS并没有默认支持的Codec,解决这以问题的方法是使用开源的Codec。因为Codec是一些服务商提供的,它可能是收费的,而以下Codec是免费的:

  • Speex是一个压缩比较好的、便于网络传输的格式,还有一些降噪的功能,所以它比较适合语音聊天。
  • Lame格式属于开源免费的Codec。
  • 苹果的Lossless是去年年底才开源的一个项目,属于苹果无损压缩的Codec。
  • FLAC属于免费的无损Codec。
  • LBC是适合网络传输的Codec。

Speex编码与解码的过程为:基于帧的编码,针对一个Speex格式定义一个帧的长度后,Speex会添加Speex文件的头信息,通过Socket发送Speex文件数据到服务器,服务器再将文件传至另一台设备,设备接受为Speex文件并解码为PCM音频数据。通过解码将PCM数据恢复为wave文件后,即可播放这个文件。此外,Speex能够在录制前进行设置,也支持设置降噪程度。


移动开发者俱乐部(CMDN Club)是全球最大中文IT社区CSDN专门为移动开发者打造的实名邀请制网络平台,是移动开发者线上交流和线下活动的专属社区。

同时欢迎关注CSDN移动频道的官方微博@CSDN移动;加入移动开发者交流:149841439;加入移动开发者Google讨论组,共同关注与探讨移动互联网资讯与热点话题。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics