谈谈音频开发

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

摘要: 前面的博客里说过最近几个月我从传统语音(语音通信)切到了智能语音(语音识别)。刚开始是学语音识别领域的基础知识,学了后把自己学到的写了PPT给组内同学做了presentation(语音识别传统方法(GMM+HMM+NGRAM)概述)。一段时间后老板就布置了具体任务:在我们公司自己的ARM芯片上基于k 阅读全文
posted @ 2019-09-09 08:21 davidtym 阅读(9682) 评论(6) 推荐(8) 编辑

摘要: 又被“过运营商语音认证”虐了一回!虐的伤痕累累、疲惫不堪!过程是痛苦的,但结果是美好的,收获也是挺多的!既然用了“又”,那以前肯定被虐过。是的,没错。那是7年多前(2011年底),同样是在秋冬,不过一个是2011年底,一个是2018年底。同样是在芯片公司, 不过一个是老牌外企,一个是本土新秀。当时我 阅读全文
posted @ 2019-01-21 07:45 davidtym 阅读(3342) 评论(1) 推荐(8) 编辑

摘要: 本人从事音频软件开发10+年,既开发过voice相关的,又开发过music相关的,但大多数还是开发voice相关的。掐指一算到现在在通信终端上开发过的语音解决方案共有五套,它们既有有线通信的,又有无线通信的;既有在上层开发的,又有在底层开发的;既有在ARM上开发的,又有在DSP上开发的,总之各有特色 阅读全文
posted @ 2018-05-08 21:14 davidtym 阅读(10472) 评论(9) 推荐(20) 编辑

2024年3月21日

摘要: 最近在做蓝牙的宽带语音通话。相对于蓝牙窄带语音,主要变化是把采样率从8k变到16k,以及编解码器从CVSD变成mSBC(modified SBC,改进的SBC)等。蓝牙语音通话相关的HFP(Hand Free Profile)强烈建议在宽带语音通话时要用上语音丢包补偿(packet lost con 阅读全文
posted @ 2024-03-21 12:28 davidtym 阅读(220) 评论(0) 推荐(0) 编辑

2024年1月31日

摘要: 前面的文章(飞桨paddlespeech语音唤醒推理C定点实现)讲了INT16的定点实现。因为目前商用的语音唤醒方案推理几乎都是INT8的定点实现,于是我又做了INT8的定点实现。 实现前做了一番调研。量化主要包括权重值量化和激活值量化。权重值由于较小且均匀,还是用最大值非饱和量化。最大值法已不适合 阅读全文
posted @ 2024-01-31 11:28 davidtym 阅读(303) 评论(0) 推荐(2) 编辑

2023年12月18日

摘要: 上篇讲了语音通话,本篇讲录音。录音功能就是把录到的音频保存成文件。保存文件的格式支持两种:一是PCM(16K采样)的WAV格式,二是AMR-NB(8k采样)的AMR格式。WAV格式简单:44字节的文件头+PCM 数据,示意如下图。网上有很多这方面的讲解,这里就不细讲了。 AMR文件格式相对复杂一些, 阅读全文
posted @ 2023-12-18 07:52 davidtym 阅读(253) 评论(0) 推荐(0) 编辑

2023年11月30日

摘要: 上篇讲了智能手表上音频文件播放。本篇开始讲语音通话。同音频播放一样有两种case:内置codec和BT。先看这两种case下audio data path,分别如下图: 内置codec下的语音通话audio data path 蓝牙下的语音通话audio data path 从上面两张图可以看出,这 阅读全文
posted @ 2023-11-30 07:38 davidtym 阅读(312) 评论(0) 推荐(0) 编辑

2023年11月8日

摘要: 上篇讲了智能手表上音频相关的驱动。本篇开始讲具体的功能,先讲音频文件播放。 音频文件格式众多,目前我们仅支持了最常见的几种:WAV/MP3/AAC/AMR(主要用于播放录音文件)。相对于播放WAV(即PCM),MP3/AAC/AMR多了个解码过程。音频文件播放时只有AP和ADSP在运行。音频可以从s 阅读全文
posted @ 2023-11-08 07:59 davidtym 阅读(563) 评论(0) 推荐(1) 编辑

2023年10月18日

摘要: 上一篇讲了智能手表上音频系统的架构和应用场景。从本篇开始讲具体的,首先讲音频相关的驱动,主要包括IPC(inter-processor communication,核间通信, 即AP/CP/ADSP之间的通信)的driver 和audio的driver。首先说明一下,由于codec是我们公司自己设计 阅读全文
posted @ 2023-10-18 08:08 davidtym 阅读(417) 评论(0) 推荐(1) 编辑

2023年9月25日

摘要: 前面写过一篇文章(Android智能手机上的音频浅析)介绍了安卓智能手机上的音频。今年又做了智能手表的项目。相对智能手机而言,相同的是依旧有AP/ADSP/CP,不同的是不再用安卓系统,同时音频外设只有内置codec上的麦克风和扬声器,以及蓝牙。我负责音频系统的软件架构设计和ADSP上的软件开发。 阅读全文
posted @ 2023-09-25 08:53 davidtym 阅读(556) 评论(0) 推荐(2) 编辑

2023年7月21日

摘要: 前面的文章(飞桨paddlespeech语音唤醒推理C浮点实现)讲了飞桨paddlespeech语音唤醒推理的C浮点实现。但是嵌入式设备通常CPU频率低和memory小,在嵌入式设备上要想流畅的运行语音唤醒功能,通常用的是定点实现。于是我就在浮点实现(把卷积层和相应的batchNormal层合并成一 阅读全文
posted @ 2023-07-21 07:22 davidtym 阅读(499) 评论(0) 推荐(2) 编辑

2023年6月8日

摘要: 飞桨Paddlespeech中的语音唤醒是基于hey_snips数据集做的。Hey_snips数据集是英文唤醒词,对于中国人来说,最好是中文唤醒词。经过一番尝试,我发现它也能训练中文唤醒词,于是我决定训练一个中文唤醒词模型。 要训练中文唤醒词模型,主要有如下工作要做:找数据集,做数据增强(augme 阅读全文
posted @ 2023-06-08 07:58 davidtym 阅读(762) 评论(1) 推荐(1) 编辑

2023年5月8日

摘要: 最近在智能语音中用到了数据集cn-celeb。这个数据集的音频格式是flac,而在做数据增强(augmentation)以及模型训练时用的数据格式是wav,因此需要把音频格式从flac转到wav。我在ubuntu下摸索了一番,找到了两种方法。 1,基于Linux下的sox命令写shell脚本实现 S 阅读全文
posted @ 2023-05-08 08:19 davidtym 阅读(479) 评论(0) 推荐(1) 编辑