问题标签 [microsoft-acm]

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 回答
1164 浏览

c++ - 使用 acm 进行 Ogg 到 Riff/Wave 编码

我的任务是录制波形文件,将其转换为 ogg 并将其打包到 riff 容器中。前两部分已经完成,但我对第三部分有问题。我找到了可以解决我的问题的源代码,但它不能正常工作。

当我尝试执行该程序时,它显示 acmFormatSuggest() 和 acmStreamOpen() 失败。请帮我找出错误。

0 投票
1 回答
711 浏览

audio - 将 GSM6.10 转换为 PCM,不会丢失数据

我有使用 MSACM 函数将音频从 PCM 转换为 GSM6.10 并返回的代码。当我运行它来回转换几次时,我的音频质量明显下降。

我在 Audacity 中进行了类似的转换,并看到了类似的退化。

有没有人有办法在不遭受音频降级的情况下进行这种转换?

0 投票
1 回答
515 浏览

voip - GSM6.10 音频格式是基于块还是基于流?

我可能问错了问题,但我在这方面的知识非常有限。

我正在使用acmStreamConvert将 PCM 转换为 GSM (6.10)。

音频格式:8khz,16 位,单声道

对于 PCM 缓冲区大小,我使用 640 字节(320 个样本)。对于 GSM 缓冲区,我使用 65 个字节。我的理解是 GSM“总是”将 320 个样本转换为 65 个字节。

我问“块或流”的原因是我想知道是否可以使用相同的 acmStreamConvert 句柄安全地转换多个音频流(实时)?ACM_STREAMCONVERTF_START我看到该函数有一些用于andACM_STREAMCONVERTF_END和的标志ACM_STREAMCONVERTF_BLOCKALIGN,但是我是否需要将此开始/结束序列用于 GSM?我知道某些使用头/尾的格式可能需要这样做,但我希望 GSM 格式不需要这样做?

我正在开发一个组VOIP客户端,每个客户端发送GSM格式,然后需要转换为PCM才能播放。我希望每个客户不需要一个 ACM 句柄。