本文介绍: 从上图可以看出上行要经过audio driver / resampler / VE(AEC/ANS/AGC) / encoder / IMS等模块,下行要经过IMS / decoder / VE(ANS/AGC) / resampler / mixer / audio driver模块。7) ADSP给AP发DISABLE_ADSP_STREAM_ACK,告诉停止ADSP上的语音是否OK。9) CP给AP发DISABLE_CP_STREAM_ACK,告诉停止CP上的语音是否OK。

上篇讲了智能手表上音频文件播放本篇开始讲语音通话。同音频播放一样有两种case:内置codec和BT。先看这两种case下audio data path,分别如下图

                                        内置codec下的语音通话audio data path

                                     蓝牙下的语音通话audio data path

从上面两张图可以看出,这两种场景下仅仅audio driver有点差异,因此就不分别讲了。语音通话有上行(uplink,UL)和下行(downlink,DL)的概念。上行是从MIC采集到语音经处理后通过空口发送给对方,下行是通过空口收到对方发来的语音经处理后通过扬声器等播放出来。从上图可以看出上行要经过audio driver / resampler / VE(AEC/ANS/AGC) / encoder / IMS等模块,下行要经过IMS / decoder / VE(ANS/AGC) / resampler / mixer / audio driver等模块

下图给出了语音通话时AP/ADSP/CP之间的交互

1)  AP给ADSP发STREAM_DEV_SELECT,选择是以内置codec还是BT来采集和播放

2)  AP给CP发ENABLE_CP_STREAM,使能CP上的语音流

3)  AP给ADSP发ENABLE_ADSP_STREAM,使能ADSP上的语音流

4/5) ADSP与CP交互上下行之间的语音数据

6)  AP给ADSP发DISABLE_ADSP_STREAM,停止ADSP上的语音流

7)  ADSP给AP发DISABLE_ADSP_STREAM_ACK,告诉停止ADSP上的语音流是否OK

8)  AP给CP发DISABLE_CP_STREAM,停止CP上的语音流

9)  CP给AP发DISABLE_CP_STREAM_ACK,告诉停止CP上的语音流是否OK

4/5G上的语音通话叫VoLTE/VoNR,也就是VoIP over LTE/NR。跟传统的VoIP大体相同,主要区别是承载从以太网变成了LTE/NR,不过这对做音频的来说是黑盒不可见的,就是调调API。语音通话相对音频文件播放来说要难得多,要做好是不容易的,尤其在恶劣网络环境下要保证语音质量。VoIP涉及到的知识点又较多,我曾写过一篇文章VoIP语音处理流程和知识点梳理)对其进行了梳理,有兴趣的可以看看

原文地址:https://blog.csdn.net/david_tym/article/details/134702826

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11729.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注