pcm相关内容

读取WAV文件并计算RMS

所以我正在尝试测试一些分析一些PCM数据量的代码。我得到了一些奇怪的音量测量数据,这与我从Audity获得的数据毫无意义。我的尺码好像到处都是。 我不确定我的错误是在读取WAV数据的方式中出错,还是在计算音量的方式中出错。 这里是我以字节形式读取数据并将其转换为短码的地方,因为它是PCM 16位。 InputStream pcmStream = this.getC ..
发布时间:2022-06-07 21:40:21 Java开发

播放在 UDP 数据包中收到的原始 PCM 音频

远程设备正在 UDP 数据包中发送实时原始 PCM 音频(不包含标头),我需要在 java 中实现一个程序来接收这些数据包并在 PC 上实时播放它们.我知道原始 PCM 的属性是 16 位、单声道、采样率 24KHz,所以我尝试在这个原始 PCM 音频中添加一个 wav 标头并播放,但问题是我没有音频的文件大小. 我还基于 this link 实现了一个程序,但它只会在输出中产生噪音. ..
发布时间:2022-01-22 17:21:10 Java开发

在 Node.js 上播放来自 Web Audio API 的 PCM 流

我正在使用网络音频 API 从浏览器流式传输录制的 PCM 音频. 我正在使用 binaryJS(websocket 连接) 将它流式传输到 nodejs 服务器,我正在尝试播放该流服务器使用扬声器 npm 模块. 这是我的客户.音频缓冲区最初是非交错的 IEEE 32 位线性 PCM,标称范围在 -1 之间和 +1.我从两个 PCM 频道中的一个开始,然后在下面播放. var cl ..
发布时间:2022-01-07 20:31:28 其他开发

将 16 位 pcm 转换为 8 位

我将 pcm 音频存储在一个字节数组中.每个样本是 16 位.我想将每个样本音频设为 8 位. 谁能建议一个好的算法来做到这一点? 我没有提到比特率,因为我认为它对算法并不重要 - 对吧? 解决方案 我现在不明白为什么只取高字节是不够的,即丢弃每个样本的低 8 位. 当然假设样本是线性的;如果不是,那么您可能需要在丢弃位之前做一些事情来线性化它们. short Sixt ..
发布时间:2021-12-21 00:07:20 Java开发

使用 Android SDK 从原始 PCM 数据创建 WAV 文件

我正在尝试使用 AudioRecord 类来录制 WAV 文件.问题是它只提供原始 PCM 数据,如果我将其写入文件,则没有标题信息,因此它不会在任何媒体播放器中播放.如何从这些原始数据创建 WAV 文件? 或者,有没有其他方法可以将 Android 中的声音录制到 WAV 文件(或者 MP3)中? 哦,我知道不能使用 MediaRecorder,因为它不支持 WAV 或 MP3 格式 ..
发布时间:2021-12-20 23:40:43 移动开发

PCM 音频幅度值?

我开始使用 Android 智能手机进行录音. 我成功地将录音保存到 PCM 文件中.当我解析数据并打印出带符号的 16 位值时,我可以创建如下图所示的图形.但是,我不理解沿 y 轴的幅度值. 幅度值的单位究竟是什么?这些值是有符号的 16 位,因此它们的范围必须从 -32K 到 +32K.但是这些值代表什么?分贝? 如果我使用 8 位值,那么这些值的范围必须在 -128 到 + ..
发布时间:2021-11-30 16:22:47 移动开发

音量标准化

我正在编写一个音乐播放器,我想标准化不同歌曲的音量. 我可以想到一些不同的方法来做到这一点,例如: 遍历所有 PCM 样本(假设是从 -1 到 1 的浮点数)并选择 m = max(abs(sample)).然后将因子 1/m 应用于所有 PCM 样本.这将使峰值为 1. 遍历 PCM 流,对于每个位置,取其周围一定宽度的汉宁窗,计算绝对样本的平均值,然后从这些数据中选取最大值并 ..
发布时间:2021-11-30 16:08:46 其他开发

如何从fft结果中获取频率?

我已经在 Android 手机上记录了来自麦克风的数据数组 [1024],将其通过真实数据的一维前向 DFT(将另外的 1024 位设置为 0).我将数组保存到一个文本文件中,并重复了 8 次. 我得到了 16384 个结果.我在 Excel 中打开了文本文件并制作了一个图表来查看它的样子(x=数组索引,y=返回的数字大小).在 110、232 附近有一些巨大的尖峰(正和负),小尖峰以这种方 ..
发布时间:2021-11-25 19:16:11 Java开发

PCM 原始字节 [] 到 Android 上的音频

我目前有一个字节数组形式的 PCM 音频.格式是有符号的 16 位小端.我想将其转换为一些可在 Android 上播放的格式,最好是 3.2 或更高版本.有没有人有关于如何做到这一点的建议?我做了一些研究并尝试了以下方法,但都没有成功.如果有人能提出更好的方法或指出我哪里出错了,我们将不胜感激. 我尝试使用正确的音频设置创建 AudioFormat,但是 Android 不支持 javax. ..
发布时间:2021-11-18 04:57:33 移动开发

从 wavesurfer.js 后端/网络音频 api 获取 PCM 数据

我正在使用 wavesurfer.js 在线创建一个多轨播放器,并希望导出带有级别平移等的组合曲目的混音版本. 首先,我有一个 audioFiles 数组,并使用它来创建一个 wavesurfer 元素数组. for(var i=0; i 然后我从 wavesurfer 后端为每一个创建一个缓冲区 for(var i=0; i 最后我在下载功能方面得到了一些帮助 从网络下载经过wav ..
发布时间:2021-09-22 18:51:20 前端开发

在 Android 上将 wav 编码为 AAC

您可以使用 MediaRecorder 将流直接录制到 AAC 但似乎没有是一种将现有 PCM/WAV 文件编码为 AAC 的方法.编码为 AAC 的能力存在于 Android 中,我想使用它.有没有办法用预先存在的音频文件来做到这一点? 解决方案 看看这个漂亮(而且工作完美)的例子:Mp4ParserSample 看看类的最后一部分(第 335-442 行),convert Run ..
发布时间:2021-09-22 18:50:26 移动开发

从 24 位 wav pcm 格式转换为浮点的更快方法?

我需要从 24 位 pcm 格式的 wav 文件中读取数据,然后转换为浮点数.我使用的是 Python 2.7.2. wave 包以字符串形式读取数据,所以我尝试的是: 导入波将 numpy 导入为 np导入数组导入结构f = wave.open('文件名.wav')# 读取整个 wav 文件wdata = f.readframes(nFrames)f.close()# 解包为有符号整数并 ..
发布时间:2021-09-22 18:50:21 Python

没有数据管道时如何插入静音 pcm 数据

我目前正在研究 Discord.js 语音接收器,我需要它在没有实际音频数据进入时通过写入静默数据包来连续发送 PCM 音频数据. 我之前发现了这个讨论,但我不明白/不知道如何当没有实际数据包进入时插入静默数据包 接收方代码: const r = connection.receiver.createStream(user, {模式:'pcm',结束: '手册'});//当用户不说话时 ..
发布时间:2021-08-30 20:22:41 前端开发

pjsip 捕获和播放 pcm 数据

我有一些默认情况下没有音频设备的嵌入式设备.它们通过 FPGA 相互通信.所以我的问题是,如何从 pcm 中的 pjsip 捕获/播放音频,以便使用 FPGA 发送/接收它? 我知道有 pjmedia_mem_player_create() 和 pjmedia_mem_capture_create() 但我似乎找不到关于使用这些函数的任何好的信息. 我尝试了以下代码,但断言失败,导致函 ..
发布时间:2021-06-18 18:43:54 C/C++开发