问题标签 [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 回答
2440 浏览

algorithm - 将pcm转换为adpcm的算法是什么?

将pcm转换为adpcm的算法是什么?

0 投票
1 回答
2765 浏览

c++ - 从哪里获得简单的开源 adpcm C\C++ 编码器库?

从哪里获得简单的开源 pcm 到 adpcm C\C++ 编码器库?

0 投票
1 回答
1020 浏览

c# - Dialogic ADPCM VOX 文件 6000 赫兹到 Alvas.Audio 中的 Wave GSM

如何在Alvas.Audio 中将Dialogic ADPCM VOX 文件每秒 6000 个样本转换为 Wave GSM ?

0 投票
1 回答
5358 浏览

algorithm - 将 PCM 转换为 IMA ADPCM 的算法?

我有一个从http://wiki.multimedia.cx/index.php?title=IMA_ADPCM解压缩 IMA ADPCM 的算法,但无法将其重新压缩回 IMA ADPCM。是否有简单的伪代码描述,还是我必须从解压缩算法中对其进行逆向工程?

我这样做是因为我正在编写一个需要接收音频的服务器,将音轨合并在一起,然后将其发回。

谢谢你的帮助。

0 投票
0 回答
1461 浏览

ios - 使用 AudioQueue 播放原始未压缩的声音,没有声音

我使用三个缓冲区和一个队列,通过网络播放 ADPCM 数据。从我的应用程序中解码数据,并通过从 Audacity 播放正确验证解码数据(未压缩的 pcm 数据)。但是,使用 AudioQueue 从我的应用程序播放时,我听不到任何声音。所有 AudioQueue API 返回值都是 noErr (0)。我一直在尝试通过分配三个缓冲区来跟踪AudioQueue 不会输出任何声音。它对我不起作用!有人知道如何显示更多 AudioQueue 日志,以便我可以捕捉到故障点,或者我的代码有什么问题吗?谢谢!

0 投票
1 回答
1254 浏览

c++ - 如何播放 G726 ADPCM 缓冲区?

我想播放从 IP 摄像机接收到的音频。压缩音频数据的格式为 G726 ADPCM。

我在互联网上搜索了几天,但我还没有这样做。

我尝试了很多很多方法来播放它。尝试解码为 PCM 并构建头文件以创建 Wave 文件,但一切都失败了(也许我在做的时候有一些错误)。

但是今天,我找到了用于从 PC 录制和播放波形音频的代码。

这是代码:

我将 PCM 数据存储在我的缓冲区中,我想修改上面的代码来播放它,所以我将它编辑为以下代码:

但是当调用 waveOutUnprepareHeader() 时,它会抛出消息“运行时检查失败 #3 - 正在使用变量 'hWaveIn' 而未初始化”。

如何初始化 hWaveIn?

这是我第一次使用波形音频,所以我很愚蠢^^。

你能告诉我正确的方法吗?

0 投票
0 回答
974 浏览

c# - 在 XNA 中将 ADPCM 转换为 PCM 的问题

我正在寻找将 ADPCM 数据转换为 XNA 的 .xnb 文件中的 PCM 数据。(这么多缩写!)

我使用了几个地方作为参考,包括: http ://www.wooji-juice.com/blog/iphone-openal-ima4-adpcm.html http://www.cs.columbia.edu/~hgs /audio/dvi/p34.jpg 和其他几个。

我相信我已经接近了,因为我得到的声音有点相似,但是输出声音中有很多静态/损坏,我似乎无法弄清楚原因。

转换归结为两个功能。

我不相信实际的 calculateNewSample() 函数不正确,因为我已将来自http://www.cs.columbia.edu/~hgs/audio/dvi/p35.jpg的输入值传递给它并收到相同的他们有输出。我试过在高/低字节之间翻转,看看我是否也把它倒过来也无济于事。我觉得我可能错过了一些基本的东西,但我很难找到它。

任何帮助将不胜感激。

0 投票
1 回答
390 浏览

audio - ADPCM 有一定的采样率吗?

ADPCM 是自适应的,因此它具有可变的采样率。但它有一些平均速率吗?它有固定持续时间的帧吗?

0 投票
0 回答
936 浏览

iphone - 为 iPhone 上的 ADPCM 录制数据创建 wav 标头

我的要求是创建一个 .wav 文件,并且我已经编写了带有 ADPCM 编码器的现有代码。它在线性 PCM 中获取数据并将其转换为 ADPCM 并为文件创建波头。

现在,我修改了代码,直接将数据转换成 Apple ADPCM 格式,具体数值如下。如何为这个文件创建一个波头,这样我就可以在任何播放器上播放这个文件。现在,我得到的文件大小是正确的,但它没有播放数据,既不是完整的长度,也不是没有噼啪声。请建议我如何调试代码的任何突破,以便我可以得到确切的问题。目前这对我来说似乎是波头的问题。

使用的 ADPCM 规格: * mSampleRate: * 44100

mFormatID: kAudioFormatAppleIMA4

mFormatFlags: 0

mChannelsPerFrame: 2

mBitsPerChannel: 0

mFramesPerPacket: 64

mBytesPerPacket: 68(= mChannelsPerFrame * 34)

使用的波头规格: * samplesPerSecond: * 44100

频道: 2

状态: 0x0011U

块对齐: 通道 * 256

bitsPerSample: 4

格式扩展: 2

samplesPerBLock: lsx_ima_samples_in((size_t) 0, (size_t) wavHeader.wChannels, (size_t) wavHeader.wBlockAlign, (size_t) 0);

samplesWritten: self.audioLength/wavHeader.wSamplesPerBlock

fmtSize: 2 + wavHeader.wExtSize;

任何形式的帮助都将受到高度赞赏。

0 投票
2 回答
4847 浏览

audio - OpenAL:alBufferData 返回 AL_INVALID_VALUE,即使输入变量 *look* OK?

所以,我正在构建一个线程化的 IMA ADPCM 解码器,将音频数据流式传输到 OpenAL (简短描述见下文),但我遇到了一些麻烦。

我的问题之一是有时我对 alBufferData 的调用:

alBufferData(*bufferID, format, pcmData, sizeInBytes, bitRate);

AL_INVALID_VALUE即使在检查它们看起来的参数时也会返回,例如,像这样:

bufferID='109770616', format='AL_FORMAT_STEREO16', dataPtr='109754188', sizeInBytes='8164'

任何线索,有人吗?发生这种情况时,实际播放的声音会有点口吃,并且错误通常会连续发生约 10 次(在相同的声音上)。当我重复启动相同的声音时,通常也会发生这种情况(例如,当用 LMG 短时间射击时……;))

流式解码器模块的快速简化之旅

如何播放声音:

  1. 触发声音播放。
  2. 一个 bufferSize 的音频被解码,其余的被排队等待进一步解码。
  3. 触发 OpenAL 开始播放声音。

解码/流式循环

  1. 对于排队等待解码的每个声音,解码 bufferSize 值的音频。
  2. 解码后的音频被添加到具有适当 bufferID 的 alBuffer(参见上面的调用)中。