问题标签 [pcm]

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 投票
5 回答
4970 浏览

c# - Silverlight 4 - 对来自麦克风的 PCM 数据进行编码

我编写了一个基本的 SL4 应用程序来使用CaptureSource. 问题是,它是原始 PCM 输出——这意味着巨大且未压缩。

鉴于我需要这个应用程序纯粹在 SL4 环境中运行,我怎样才能将 PCM 音频数据压缩成可以更轻松地传送到远程服务器的东西?

本质上,我需要一个解决方案,我也可以在 Windows Phone Series 7 应用程序中部署/包含一个解决方案,以及一个可以在浏览器环境中工作的解决方案——我认为只有托管代码解决方案?

在谈话中,人们建议使用 Speex 和 WMA,但我没有找到任何不需要引用 DLL 就可以工作的库或示例,这些 DLL 在 SL4 项目中不起作用。

0 投票
2 回答
3482 浏览

c++ - 可视化 PCM 样本量

我的 C++ 应用程序中有几块 PCM 音频 (G.711)。我想可视化每个块中的不同音量。

我的第一次尝试是计算每个块的样本值的平均值并将其用作音量指标,但这并不适用。对于具有静音的块,我确实得到 0,而对于具有音频的块,我得到了不同的值,但这些值只是略有不同,而且似乎与实际音量不一样。

计算体积的更好算法是什么?

我听说 G.711 音频是对数 PCM。我应该如何考虑到这一点?

0 投票
2 回答
437 浏览

algorithm - 什么是加入 PCM 文件的算法?

什么是加入 PCM 文件的算法?我有几个 PCM 文件,我需要像扬声器同时说话一样加入它们。

那么如何加入 PCM 文件呢?

0 投票
3 回答
2396 浏览

mp3 - 使用 pymad、pcm、vad 等检测口语音频文件中的停顿

首先,我将大致说明我正在尝试做的事情并寻求建议。然后我将解释我目前的方法并询问我当前问题的答案。


问题

我有一个人说话的 MP3 文件。我想把它分成大致对应于一个句子或短语的片段。(我会手动完成,但我们正在谈论数小时的数据。)

如果您对如何以编程方式执行此操作或对某些现有实用程序有建议,我很想听听。(我知道语音活动检测并且我已经对其进行了一些研究,但我没有看到任何免费提供的实用程序。)


当前方法

我认为最简单的方法是以特定间隔扫描 MP3 并识别平均音量低于某个阈值的位置。然后我会使用一些现有的实用程序来切割这些位置的 mp3。

我一直在玩 pymad,我相信我已经成功地为 mp3 的每一帧提取了 PCM(脉冲编码调制)数据。现在我被困住了,因为我似乎无法真正理解 PCM 数据如何转换为相对音量。我也知道其他复杂的因素,如多通道、大端与小端等。

关于如何将一组 pcm 样本映射到相对体积的建议将是关键。

谢谢!

0 投票
1 回答
4323 浏览

java - 难以将原始 PCM 输出代码从 Java 移植到 Android AudioTrack API

我正在尝试将播放chiptunes(NSF,SPC等)音乐文件的应用程序从Java SE移植到Android。Android API 似乎缺少此应用程序用于输出原始 PCM 音频的 javax 多媒体类。我在 API 中找到的最接近的模拟是 AudioTrack,所以我一直在努力解决这个问题。

但是,当我尝试通过正在进行的端口运行我的示例音乐文件之一时,我得到的只是静态的。我怀疑是我设置的 AudioTrack 有问题。我尝试了各种不同的构造函数,但最后都只是输出静态的。

原始代码中的 DataLine 设置类似于:

我现在使用的构造函数是:

我已经替换了其中的常量和变量,以便它们尽可能简洁地有意义,但我的基本问题是,在从一种格式转换到另一种格式时,我所做的假设是否存在任何明显的问题。

0 投票
1 回答
620 浏览

android - android播放突然停止

我有一个正在流式传输音频内容的应用程序,有时它会突然停止。

logcat 窗口显示——

AudioHardware pcm 播放将进入待机状态

就是这样。

我在另一个线程(双关语)上看到有人说这是因为他使用了太多线程。这真的会导致这种情况吗?我可以给音频线程更高的优先级吗?

无论如何要防止音频硬件pcm进入待机状态?

0 投票
1 回答
381 浏览

bytearray - 从 ByteArray 正确修剪 PCM 数据

我有一种情况,我需要从录制剪辑的开头修剪少量音频(通常在 110-150 毫秒之间,这是一个不一致的数量)。

我正在以 44100 频率和 16 比特率录制。这是我正在使用的代码:

这似乎在时间上有效,但所有录制的音频都变得静态和粗糙。我的四舍五入有问题吗?这是我第一次需要更改原始 PCM 数据,所以我不确定它的细节。

谢谢!

0 投票
1 回答
1686 浏览

c++ - 隐藏 PCM 流中的丢包

我希望使用“丢包隐藏”来隐藏音频流中丢失的 PCM 帧。不幸的是,如果没有所有许可限制和代码膨胀,我找不到可以访问的库(尽管有一些建议)。

我找到了一些由 Steve Underwood 为实现 PLC 的 Asterisk 项目编写的 GPL 代码。有几个限制;不过,正如史蒂夫在他的代码中所建议的那样,他的算法可以通过一些工作应用于不同的流。目前,该代码适用于 8kHz 16 位签名单声道流。

可以通过Google Code Search的简单搜索找到代码的变体。

我希望我可以调整代码以与其他流一起使用。最初,目标是针对 8+ kHz、16 位有符号的多声道音频(全部在 C++ 环境中)调整算法。最终,我希望在 GPL 许可下提供代码,希望它可以对其他人有益......

下面附上我努力的代码。该代码包含一个主函数,它将以给定的概率“丢弃”许多帧。不幸的是,代码并没有按预期工作。我在 gdb 中运行时收到 EXC_BAD_ACCESS,但在使用“bt”命令时我没有从 gdb 获得跟踪。显然,我在某些地方记忆犹新,但不确定具体在哪里。当我注释掉amdf_pitch函数时,代码运行时不会崩溃......

Pcm遮瑕膏.hpp

Pcm遮瑕膏.cpp

PS - 我必须承认数字音频不是我的强项......

0 投票
1 回答
2153 浏览

c# - 如何使用 C# 播放纯 PCM 原始流?

我正在研究 System.Media.SoundPlayer 和 NAudio,而 AFAIK 他们只播放 WAVE 流。WAVE 文件由纯 PCM 数据加上格式头组成。

我不想以 WAVE 格式提供此标头。我想以编程方式传递参数(比特率等)

0 投票
2 回答
1618 浏览

delphi - 如何制作一个简单的pcm格式的录音机?

我使用 wav 格式创建了一个简单的录音。我的问题是我希望它使用 Tbass 组件形式保存为 PCM 格式http://www.un4seen.com。我的编译器是delphi。或从 mp3/wav 转换为 pcm。