首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >安卓的媒体录像机需要多大的放大倍数才能与iOS的AVAudioRecorder输出相匹配?

安卓的媒体录像机需要多大的放大倍数才能与iOS的AVAudioRecorder输出相匹配?
EN

Stack Overflow用户
提问于 2019-10-10 22:33:50
回答 1查看 36关注 0票数 0

我有一个跨平台(iOS和安卓)的应用程序,我将在其中录制音频剪辑,然后将其发送到服务器进行一些机器学习操作。在我的iOS应用程序中,我使用AVAudioRecorder录制音频。在安卓应用程序中,我使用MediaRecorder录制音频。在移动端,由于大小的限制,我最初使用m4a格式。到达服务器后,我会将其转换为wav格式,然后在ML操作中使用它。

我的问题是,在iOS中,操作系统默认的AVAudioRecorder在我们开发人员访问原始数据之前会对原始音频数据进行放大。但在安卓系统中,MediaRecorder不提供任何形式的原始数据的默认放大功能。换句话说,在iOS中,我永远不会从麦克风获得原始音频流,而在安卓中,我只能从麦克风获得原始音频流。如果你可以在iPhone和Android手机上同时录制相同的音频和相同的音频源,然后在Audacity中导入录制的音频以进行视觉表现,那么这种区别是显而易见的。我已经附上了下面的示例表示屏幕截图。

在图像中,第一首曲目是Android录制的,第二首曲目来自iOS录制。当我通过耳机听到这两个音频时,我可以模糊地区分它们,但当我可视化数据点时,您可以清楚地看到图像中的差异。这些区别不利于ML操作。

显然,在iPhone中,有一定的放大因素,我也想在安卓中实现。

有没有人知道放大因子?或者,是否有其他可能的替代方案?

EN

回答 1

Stack Overflow用户

发布于 2019-10-11 06:32:31

很有可能不同之处在于自动增益控制的效果。

你可以在你的应用程序的AVAudioSession中通过将其模式设置为AVAudioSessionModeMeasurement来禁用它,这是在你的应用程序中执行一次-通常是在启动时。这禁用了大量的输入信号处理。

阅读你的问题描述,你可能会更好地在Android上启用AGC。

如果这两种情况都没有产生结果,您可能希望对两个信号都进行缩放,以便它们恰好低于剪裁。

代码语言:javascript
运行
复制
let audioSession = AVAudioSession.sharedInstance()

audio.session.setMode(AVAudioSessionModeMeasurement)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58325375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档