背景需求

做语音识别和答录功能的app大都需要将通话录音上下行VOICE_DOWNLINK/VOICE_UPLINK单独分离实时转义识别。

两个解决方向:

1、AudioRecord 方法的立体声录制PCM数据混合音源了,二进制文件无法区分哪些数据是左声道,哪些是右声道。

通过修改AudioRecord立体声PCM录制方案,每8位一组数据,左声道8位在前,右声道8位在后。

2、使用两个实例同时运行MediaRecorder的VOICE_UPLINK,VOICE_DOWNLINK录制上行或下行数据,且数据不重用。

基于这两个方向我们都需要去看 Audio HAL 代码。

最终结论

一开始从方向二出发,由于安卓本身的录音机制同一时间只允许一个应用录音,首先需要破解这个机制,

Android Audio - 支持多应用同时录音_Android8.1修改方法 参考这个修改后,确实可以同时 start 两个 MediaRecorder。但最终问题是不管如何设置 AudioSource

VOICE_DOWNLINK 和 VOICE_UPLINK,保存录音文件内容都是一样的,依旧是上下行混在一起。最终发现底层 buffer 是同一个,所以

保存的数据一样,这块尝试改了好几天,没啥进展,具体分析过程看下文。

再尝试方向一,通过 AudioRecord 获取原始 pcm 数据按 8 位分离,最终通过这个搞定了!

分析过程

主要的代码目

Audio HAL 通话录音上下行分离相关推荐

  1. uniapp 移动端通话录音上传

    记录一下近半个月的一个项目解决思路 需求是这样的 1,通话双向录音 2,监听移动端通话状态 3,挂断后上传通话录音到后端进行统计 先说下第一点 通话双向录音,这个在android 6之前还有办法实现, ...

  2. Android通话录音流程

    Android手机现在基本上都有通话录音的功能.那么这个功能的原理是什么呢, 原理:语音通话包含uplink 和downlink数据,因此只要分别获取这两部数据,然后将PCM 格式的语音流转存成其他格 ...

  3. Android音频驱动学习(一) Audio HAL

    Hal加载过程 加载audio hal需要分三步 1.hw_get_module_by_class :加载hal module 2.audio_hw_device_open:调用audio devic ...

  4. Android底层开发之Audio HAL Android Audio Overview

    http://blog.csdn.net/kangear/article/details/44939429 Android底层开发之Audio HAL 在Android音频底层调试-基于tinyals ...

  5. pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存

    pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存 目录 输出结果 代码实现 输出结果 代码实现 # -*- codi ...

  6. 通话录音_iOS14,通话录音终于来了!

    苹果的WWDC 2020全球开发者大会就要正式召开,还有不到一个月的时间 目前国外的越狱社区中,已经有不少大神泄露了有关iOS14的全新功能, 就在昨天,有人在推特上曝光了iOS最新功能的截图,它就是 ...

  7. 通话录音_iOS 14将支持通话录音功能,但有隐性使用条件

    6月9日消息,近日苹果已经正式宣布将于本月20日举行线上WWDC 2020大会,届时iOS 14将正式和大家见面.今日有外媒根据泄露的代码发现苹果或将在iOS 14中添加一项大家期待已久的新功能--支 ...

  8. 苹果手机通话怎么录音?通话录音的详细教程!

    案例:iPhone怎么一边通话一边录音? [苹果手机通过普通的方式不能边通话边录音,有什么方法可以帮到我吗?感谢!] 录制通话可以帮助用户记录重要的电话内容,如商务谈判.家庭事务等.但是录音涉及隐私, ...

  9. 关于部分手机通话录音报start failed的问题

    开发通话录音功能的时候,刚开始一切都很顺利,直到快发版的时候,发现了个问题,在华为的P8和Mate7上报错了,苦逼的程序员只能加班改bug,百度上看了一天,这个问题还挺常见的,一些人建议修改输出格式和 ...

  10. 如何恢复录音删除的录音文件_手机通话录音后!点击这个按钮,就能将录音文件一键转为文字...

    通话录音是很多朋友都会用的功能,比如接听重要电话,或者和领导电话会议都会用到这个功能. 但是将录音中的内容整理出来就比较麻烦了,不仅要一遍遍听,还要一边手写记录,其实点击这个按钮,就能将录音中的内容一 ...

最新文章

  1. Linux动态频率调节系统CPUFreq之一:概述【转】-- 非常好的博客
  2. linux系统无法启动提示give root password for maintenance的解决方法
  3. map转字符串数组中 php_js将map转换成数组
  4. mysql能否在手机端运行_在手机上安装linux并部署mysql,jupyter用于数据探索
  5. my makefile 自动推导
  6. Linux SOCKET编程详解
  7. hql中获取前一天的数据_如何使用DNS和SQLi从数据库中获取数据样本
  8. EXE文件反编译工具下载
  9. 如何免费批量将caj转换成PDF
  10. aws php sns,使用 AWS SNS 发送通知到 HTTP 终端
  11. install index.php,安装好的织梦dedecms首页index.php自动跳转到install/index.php的问题
  12. Roshan.exe 运行直接崩溃
  13. WYB-7型水质自动取样器
  14. 美团机器学习——特征工程
  15. 好用的语音转文字的软件
  16. 科学计算法(e/E表示规则)
  17. 通过Fiddler实现部分静态资源代理
  18. 纯css炫酷动态加载条
  19. 群里关于一个硬件电路的讨论,纹波大导致烧坏主芯片
  20. Ceph: ceph基础知识

热门文章

  1. SARIMA时间序列模型预测城市房价数据
  2. C#照片合成PDF_ PDF合成或拆分PDF_PDF获取页数
  3. 突然发现浏览器广告拦截插件原理
  4. java 汉字处理_Java汉字处理
  5. js调用html文件上传,JavaScript里的文件上传API
  6. WinRAR 无广告注册安装
  7. linux c 开发
  8. Linux信号量常用操作表
  9. Mac 电脑--excel方便的小技巧
  10. 通用PHM集成开发环境PIDE