问题标签 [adpcm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
158 浏览

c# - IMA ADCPM 转 Wav

我有一个字节数组,其中存储了 IMA ADCPM 数据,从特殊文件格式读取。我想知道如何将其写入 .WAV 文件。速率/频率为 32000 Hz,只有 1 个通道(单声道)。

我没有尝试过编写音频文件,也不知道该怎么做。

谢谢!

0 投票
1 回答
128 浏览

c# - 使用 NAudio 播放 IMA ADPCM 音频

我有一个没有标题的文件,其中存储了 IMA ADPCM 原始数据,我想使用 NAudio 播放它。在 Audacity 中,使用这个配置没有问题:

这是我正在使用的代码,但我总是收到System.DivideByZeroException错误。

我该如何解决?

谢谢!

0 投票
1 回答
156 浏览

c# - 如何将 adpcm 数据保存到电话系统中的 wav、mp3 等文件中?

有以下电话通信系统。

系统

其中,我将开发一个中继器。中继器执行 tcp/ip 通信。

分别从 user1 和 user2 接收以字节为单位的 adpcm 数据。

我想将从中继器接收到的数据保存为音频文件。

收集来自一侧(user1)的数据并将其制成字节数组后,我使用 Naudio 创建了一个 wav 文件,但它失败了。

当我使用window10的默认播放应用程序播放它时,它会播放大约1秒并结束。但总播放时间较长,如6秒和7秒。

下面的数据是我创建的wav文件的二进制数据开头的一部分。

52 49 46 46 B4 65 00 00 57 41 56 45 66 6D 74 20 32 00 00 00 02 00 01 00 40 1F 00 00 00 10 00 00 00 01 04 00 20 00 F4 0 010 07 00 0 0 0 010 07 00 0 0 00 00 00 00 C0 00 40 00 F0 00 00 00 CC 01 30 FF 88 01 18 FF 66 61 63 74 04 00 00 00 C4 CA 00 00 64 61 74 61 62 65 00 00 77 77 8 77 68 08 08 08 08 08 08 08 80 08 08 9A 99 99 90 01 21 21 12 25 53 40 9A B9 91 24 34 11 8A BC AA 80 13 17 43 42 12 09 8A AB DB BB BA 9A 88 A DB 9 02 A0 BA BB 33 33 31 10 1A 0B BB BA A0 91 22 32 11 90 A9 BB BB 9B 11 23 33 41 11 19 9B AB B9 11 22 13 35 11 08 99 AA BC A1 A1 00 31 31 11 A9 1314 AB BB 9A 1 12 91 90 9B 9B B9 A0 11 13 41 29 29 09 9B AB B9 09 10 13 33 11 A9 BB BB CA 09 00 12 33 33 39 39 1A AA B9 B1 91 22 33 40 01 90 A9 BC A9 919 01 3 9A 9B 9C 9A 9A 90 01 33 33 21 01 09 9B A9 90 11 11 33 33 21 01 0A 9B 9A 99 01 03 14 10 19 99 B9 BB BA B0 9012 33 11 20 91 A9 99 9A 01 02 11 33 01 10 09 99 B0 A0 10 12 13 31 29 99 9B 9A B0 99 90 01 11 21 90 91 09 19 09 10 90 12 03 19 19 19 9 9 03 19 19 9 1 13 10 90 99 BA B9 B0 99 00 01 91 00 99 11 99 00 11 01 11 11 11 19 99 11 91 91 11 00 10 01 20 01 90 99 AA 9A 99 01 91 99 1 1 9A 19 1 1 9 1 1 9A 19 1 9A 99 01 91 99 1 1 9A 19 1 1 3A 09 99 90 00 31 11 19 10 91 91 11 01 9A

这是我实现的代码(音频数据是 adpcmdata 的字节数组):

如何将 adpcm 数据保存为音频文件?

以及如何将 user1 和 user2 的声音同时保存在一个文件中?

0 投票
1 回答
37 浏览

c++ - 如何使用 ADPCM 微芯片

我对 .wav(声音)文件中的 adpcm 有一些问题。首先,我应该说我没有阅读有关 ADPCM 的所有内容,只是想快速实现并继续工作......(只是培训代码)我从MicroChip 的 pdf guid adpcm实现它。(更好说复制/粘贴和编辑,创建类)

测试代码:

我确定我的课程和编码/解码是正确的,就在解码之后我应该做一些事情来显示正确的数字(但我不知道哪个转换失败)

为什么我确定?因为当我在 QDebug 中看到我的输出时,其他所有样本(解码后)都是正确的(几乎没有错误,在大数据中错误会比现在小),但其他样本都失败了

我的输出:

设备中的数据为 8 位

0 投票
1 回答
161 浏览

python - 如何更快地将大量 PCM 样本编码/解码为 IMA ADPCM 样本?

我想尽快将 wav 文件编码为 IMA ADPCM。
但是当我尝试编码我的文件(1:​​39 长度,44100 采样率,16 位,立体声)时,编码它需要大约 8 秒......
有没有办法让它更快?因为 8 秒对我来说看起来很慢......
另外,我尝试使用 Python 的 audioop 模块,但它仍然很慢而且我并不真的需要 audioop 的东西,所以我编写了自己的示例编码器/解码器。

我的代码:

0 投票
0 回答
14 浏览

compression - 在时间冗余压缩中,当前要发送的帧和前一帧之间的差异究竟是什么意思?

我正在学习多媒体视频和照片压缩。我了解到,编码器可以发送要发送的帧与之前发送的帧之间的差异,而不是按原样将帧发送到解码器。此时,当当前要发送的帧是f1和前一帧是f0时,是f0指原帧还是经过多次加工,比如去除空间冗余的帧?

材料的早期部分

在此处输入图像描述

稍后提供的材料

在此处输入图像描述