谈谈音频开发

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

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

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

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

2025年4月23日

摘要: 基于安卓平台的智能手机芯片回来后要做bringup。首先是负责平台的把安卓OS起来,然后就轮到各功能模块做bringup了,Audio是其中主要功能模块之一。Audio由于场景多和牵涉到的core多,bringup工作会多些。本人曾多次做过智能手机和智能手表上audio 的bringup,主要负责a 阅读全文
posted @ 2025-04-23 08:06 davidtym 阅读(238) 评论(0) 推荐(0)

2025年4月8日

摘要: 在智能手机或智能手表等SoC上通常有一块专门的audio DSP(简称ADSP)来做音频处理。要做音频处理,ADSP首先要被boot起来。本文以CEVA BX2为例来讲讲ADSP的boot过程。 在上篇文章(Audio DSP 链接脚本文件解析)里讲过链接脚本里用关键字ENTRY来设定程序的入口,且 阅读全文
posted @ 2025-04-08 08:33 davidtym 阅读(241) 评论(0) 推荐(1)

2025年3月26日

摘要: 上篇文章(智能手表音乐播放功耗的优化)讲了怎么优化音乐场景下的功耗,其中第二点是优化memory的布局。那么在哪里优化memory的布局呢?就是在本文要讲的链接脚本(ld)文件里。作为audio DSP 软件工程师,ld文件要能看懂和会修改。作为程序来说,先编译后链接。编译得到目标文件,链接就是把这 阅读全文
posted @ 2025-03-26 07:48 davidtym 阅读(298) 评论(0) 推荐(1)

2025年3月12日

摘要: 对于智能手机/手表等设备来说,续航能力/功耗是其重要的指标之一。要想有好的续航能力,一定要把主要应用场景下的功耗优化好。音乐播放就是主要的应用场景之一。本文就讲讲我开发的一款智能手表上音乐播放场景下是怎么做功耗优化的。 功耗优化一定程度上与硬件相关,因此先给出这款智能手表跟音乐播放相关的硬件框图,如 阅读全文
posted @ 2025-03-12 07:38 davidtym 阅读(483) 评论(1) 推荐(4)

2024年10月28日

摘要: 通常芯片设计公司(比如QUALCOMM)把芯片设计好后交由芯片制造商(比如台积电)去生产,俗称流片。芯片设计公司由ASIC部门负责设计芯片。ASIC设计的芯片只有经过充分的验证(这里说的验证是FPGA(现场可编程门阵列)原型验证, 通过将RTL移植到FPGA来验证)才能去流片。因为流片费用昂贵,如果 阅读全文
posted @ 2024-10-28 07:58 davidtym 阅读(454) 评论(0) 推荐(1)

2024年7月9日

摘要: 在audio DSP中, 软件的code和data主要放在3种不同的memory上,分别是片内的ITCM、DTCM和片外的memory(比如DDR)上。ITCM只能放code,DTCM只能放data,片外的memory既能放code也能放data。在写代码时要规划好哪些放片内,哪些放片外。上面说的这 阅读全文
posted @ 2024-07-09 08:39 davidtym 阅读(270) 评论(0) 推荐(0)

2024年3月21日

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

2024年1月31日

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

2023年12月18日

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