混合 PCM 音频样本

2024-01-26

我有一个关于混合多个 PCM 样本的简单问题。

我读到混合多个音频 PCM 样本的最佳方法是取每帧样本的平均值。

因此,如果我在除以 5 之前将 5 个 16 位样本相加,显然很有可能它的值会大于 16 位 Short 所能容纳的值。

因此,当将多个 16 位样本混合在一起时,我是否首先将它们全部存储在 int 中,然后将它们相加并求平均值,然后再转换回短整型?


如果您想混合音频样本,只需将它们添加在一起即可。建立平均值并不是正确的方法。

想一想:如果有人拉小提琴,第二把小提琴加入音乐,第一把小提琴的声音会变得小吗?不,不会的。第二把小提琴只是增加了信号。

添加 PCM 样本时,您必须处理整数溢出问题。一种方法是拥有一个应用于混合 PCM 样本的全局“主音量”。使用这样的全局乘法器可以帮助您确保最终信号大部分在输出数据的 16 位范围内。

您可能还需要每个通道的音量控制。

最终,溢出仍然会时不时地发生,处理它们的最佳方法是将输出值限制为 16 位输出流的最大和最小可表示值。耳朵会容忍这种情况,只要不经常发生,就不会被注意到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

混合 PCM 音频样本 的相关文章

  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • Python 中的可逆 STFT 和 ISTFT

    有没有通用的形式短时傅立叶变换 https en wikipedia org wiki Short time Fourier transform与内置于 SciPy 或 NumPy 或其他什么中的相应逆变换 这是pyplotspecgram
  • 声音在模拟器中工作,而不是在真实 iPhone 中工作

    有几短音效播放的样本在模拟器中很好 但在真正的 iPhone 中根本不行3GS 以下是 Apple SysSound 示例中的代码 CFBundleRef mb CFBundleGetMainBundle CFURLRef soundFil
  • 如何使用 iPhone SDK 加快或减慢背景音乐曲目的速度?

    是否有一种简单的方法来控制使用音频队列服务播放的声音文件循环的播放速度 节奏 例如 如果游戏正在播放背景音乐 我想让BGM随着时间的流逝而加快 但不改变音乐的音调 谢谢 据我所知 没有什么简单的方法可以做到这一点 在 Mac 上 您可能会使
  • Android 视频循环缓冲区与声音

    我正在使用谷歌的开源示例 Grafika https github com google grafika 我正在使用它ContinuousCaptureActivity java https github com google grafik
  • #define 内存地址声明

    这个 define 语句有什么作用 它用于定义内存地址 但我不明白 uint32 t 部分 define GPxDAT uint32 t 0x6FC0 通常用于访问映射到地址空间的硬件寄存器 或者一些特定的内存地址 硬件寄存器应定义为vol
  • Android Mediaplayer:下载媒体文件的 setDataSource 问题

    我有一个可以录制和播放音频文件的应用程序 一些音频文件是使用 httpclient 使用简单的标准 http 下载来下载的 很长一段时间以来 它就像一种魅力 现在我突然无法播放我下载的文件 该堆栈失败 我将文件存储在 SDCard 上 并且
  • 如何设置扬声器声音增强设置

    如何以编程方式设置 Windows 扬声器设置 增强 选项卡 中可用的声音效果 恐怕这是不可能的 参见 Maurits 对他的评论blog http blogs msdn com b matthew van eerde archive 20
  • 在 MATLAB 中使用 FFT 的频率响应

    这是场景 使用频谱分析仪 我有输入值和输出值 样本数是32000采样率为2000样本 秒 输入是正弦波50 hz 输入为电流 输出为压力 单位 psi 我如何使用 MATLAB 根据这些数据计算频率响应 使用 MATLAB 中的 FFT 函
  • 颤振:音频服务。如何播放本地文件?

    我想播放本地文件的播放列表 在android上 没有问题 我可以在Mediaitem id 中添加本地文件并且它可以正常播放 但在 iOS 上它不起作用 我收到这个错误 VERBOSE 2 ui dart state cc 186 Unha
  • 使用 python 检测给定音频文件中的静音索引

    我正在尝试使用 numpy struct 等各种模块在 python 中处理音频文件 但是我真的很难检测文件中的静音 就像在哪里存在静音一样 我遇到的方法之一是在音频信号上滑动固定时间间隔的窗口并记录元素平方和 我是Python新手 几乎不
  • iOS 音频修剪

    我搜索了很多 找不到任何相关的东西 我正在处理 iOS 音频文件 这就是我想做的 录制音频并保存剪辑 已检查 我使用AVAudioRecorder 改变音高 已检查 是用狄拉克做的吗 修剪 我有两个标记 即开始和结束偏移 并使用此信息我想修
  • Web 浏览器中的高品质音频录制

    一行版本 什么开源软件 WAMI Recorder 网络浏览器 通过 getUserMedia 将为我提供最佳质量的录音 高质量定义为 44 1 或 48 采样率 和 16 位样本大小 更多信息 目前我的解决方案是 WAMI Recorde
  • 使用 UIImage 和 caf 创建视频文件的问题

    我已经阅读了在互联网上可以找到的所有关于此功能的帖子 并且我在创建视频文件方面取得了一些成功 但我还剩下 3 个问题 而且似乎没有人提到过这一点 我有 3 个问题 视频在某些播放器上无法正常播放 quicktime window 视频只播放
  • 音乐分析软件[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 问候 我可能已经想到了这一点 但有人知道 Last fm 之前是否使用某种形式的开源项目对音乐进行分析
  • 在python中将mp4声音转换为文本

    我想将 Facebook Messenger 中的录音转换为文本 以下是使用 Facebook 的 API 发送 mp4 文件的示例 所以这个文件只包含音频 不包含视频 我想将其转换为文本 此外 我希望尽可能快地完成此操作 因为我将在几乎实
  • .wav 文件长度/持续时间,无需读入文件

    有没有办法提取有关 wav 文件长度 持续时间的信息 而无需在 R 中读取文件 我有数千个这样的文件 如果我必须阅读每个文件才能找到其持续时间 那将需要很长时间 Windows 文件资源管理器为您提供了打开 长度 字段的选项 并且您可以查看
  • 返回音频文件类型列表

    在回答这个问题时 我想制作一个java程序 其中有一个组合框 显示文件夹中所有可用文件的标题 https stackoverflow com questions 6516869 i want to make a java program i
  • 如何在Android中使用AudioRecorder录制音频

    我想从 Android 设备捕获音频 我下面的代码似乎成功地制作了一个wavSD卡上有文件但无法播放 我尝试使用不同的媒体播放器来播放它 但没有成功 我的代码中有一个问题导致了这个问题 code public class MainActiv
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01

随机推荐