问题标签 [portaudio]

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

c - 在 Windows 7 上安装 PortAudio 以与 Cygwin 一起使用

我正在尝试让 PortAudio 在我的计算机上工作。我一直在使用 Cygwin 和 gcc 在 C 中制作应用程序,但我完全不知道如何让 PortAudio 在我的系统上编译和工作。

我在 PortAudio 的网站上找到了让它与 Microsoft Visual Studio 一起工作的信息,但我没有使用那个 IDE(或任何与此相关的东西。只是在 Notepad++ 中工作并从命令行运行东西)。

如果有人有任何关于我如何让它工作的信息,或者我可以在哪里寻找答案,将不胜感激!谢谢!-贾斯汀

0 投票
2 回答
14224 浏览

c - 无法使用 ALSA 编译

我正在尝试在使用 PortAudio 接口的 Debian GNU/Linux 上创建一个 C 应用程序。为此,我必须使用gcc -lrt -lasound -ljack -lpthread -o YOUR_BINARY main.c libportaudio.a文档编译我的程序。

为此我安装了libasound2-dev,我检查了文件在哪里使用apt-file search libasound.so,这是输出:

所以应该正确安装libasound,但是当我用这个makefile编译我的程序时:

我收到以下错误:/usr/bin/ld: cannot find -lasound

如何正确链接此库?

0 投票
2 回答
2067 浏览

c - 初始化 PortAudio:主机错误

我正在尝试在 Debian Wheezy 64 位 GNU/Linux 上创建一个 PortAudio 应用程序。我阅读了有关如何添加库的文档,它编译时没有错误。

现在,当我想使用此脚本初始化 PortAudio 时:

我得到以下输出:Pa_Initialize error: Host error.

当我尝试运行同样基于 PortAudio 的 Audacity 时,出现以下错误:

当我尝试调用这个函数时:

我收到以下错误:Undefined reference to 'Pa_GetLastHostErrorInfo'

如何以正确的方式初始化 PortAudio,以及我的主机出了什么问题;PortAudio 是否需要我对 PulseAudio 做一些事情?

我已经尝试过这个主题的底层解决方案http://ubuntuforums.org/showthread.php?t=1756822,因为我认为它与库文件的配置有关。但这也不起作用,也不会改变错误。

0 投票
1 回答
1619 浏览

java - 如何使用 Java 中的 PortAudio 绘制波形(jpab with Processing)?

我需要在 Java 中访问多个音频输入,所以首先咨询了 SO 并找到了这个答案并使用 PortAudio Java 绑定(jpab)。不幸的是,我发现很少且过时的文档

根据我的发现,我在 Eclipse 中使用Processing进行了尝试:

我从第一个麦克风开始,我想我已经接近了,因为我可以看到一些值,但我不能 100% 确定我是否正确遍历了输入 ByteBuffer。

使用 jpab 从音频输入访问值和绘制波形的正确方法是什么?

我已经稍微更新了代码,并设法让一些东西更接近情节,但我仍然一无所知。从输入 ByteBuffer 读取的浮点数的正确最小/最大范围是多少?我是否以正确的方式使用它?

这是我所拥有的快速预览:

波形图

我还在这里上传了 eclipse 项目。它使用预构建的 Windows x86 PortAudio 二进制文件

另一个更新:我被告知值应该从 -1.0 到 1.0 并为此调整我的代码以映射/钳位,但我不确定这是否属实。这是一个更新的示例:

我还注意到,当我设置延迟时,输入 ByteBuffer 计数会发生变化。

我注意到另一个令人困惑的事情:JPAB与jportaudio不同,尽管大多数 API 是相似的,除了 createStream(jpab)/openStream(jportaudio)。到目前为止,我还没有找到 jportaudio 的编译版本,也没有设法在 Windows 上自己编译它。

关于我如何继续的任何线索?

0 投票
1 回答
2600 浏览

portaudio - 在 Win7 上将 WASAPI 与 PortAudio 一起使用时出错

我正在尝试使用 PortAudio 和 libsndfile 在我的 Windows 7 机器上以独占模式播放 .wav 文件,但我得到了

错误号 -9984 “不兼容的主机 API 特定流信息”。

我填写了 PaWasapiStreamInfo 结构如下:

然后分配 hostApiSpecificStreamInfo 参数并通过 Pa_OpenStream 打开流,如下所示:

我错过了一步吗?

谢谢,泰勒

0 投票
1 回答
1465 浏览

gtk - Gtk 音频播放器。如何在歌曲结束前停止声音

我正在开发一个非常简单的音频播放器。它使用 Gtk 和 portaudio/libsndfile。我用浏览、播放等几个按钮创建了一个简单的测试界面。我的播放器正确选择了文件名,按下播放后开始播放。但是一切都在等待播放完成。没有什么是活跃的,我想知道如何在它自己完成之前阻止它。

我的 Gtk 代码是:

如果有必要,我会给出播放声音的代码:

0 投票
2 回答
2048 浏览

alsa - 5.1 带有 PortAudio 的频道

我正在尝试开始使用 PortAudio。我能够毫无问题地构建捆绑的示例文件“paex_sine.c”。这是左声道上的正弦波和右声道上不同频率的正弦波。这可以正常工作,没有错误。

我的设置是一台运行 Puppy Linux Slacko 5.5 的 32 位 PC。它有一个带有 EMU10k1x 芯片的 SoundBlaster SB0200。Alsa 库是 v1.0.26,驱动程序是 v1.0.24。我已经使用这个命令测试了所有 5.1 通道:

该测试在 6 个通道中的每一个上都能正常播放声音,尽管它确实抱怨管道损坏。这可能是因为测试程序中所有 6 个通道的缓冲区不够大。

我遇到的问题是,当我修改“paex_sine.c”以在 6 个通道而不是 2 个通道上运行时,它只会通过右前和左前通道播放声音。没有报告错误,并且 2 个通道听起来应该。我听说在某些情况下必须取消静音。在 AlsaMixer 和 Puppy 的“Retrovol”(反映 AlsaMixer)中,我已将 Master、PCM 和 Surround 设置为最大音量,未静音。PortAudio 中是否有我也必须取消静音的混音器?我可以在正确运行扬声器测试和运行修改后的 paex_sine 示例和只听到 2 个通道之间来回切换。这是我修改过的 paex_sine.c:

0 投票
4 回答
9600 浏览

c - PortAudio 中的连续录音(来自麦克风或输出)

我正在尝试在 PortAudio 中创建一个音乐可视化应用程序,我做了一些基础研究并找到了一些关于如何从麦克风录制到(临时)文件的示例。但是没有在记录过程中运行时不使用数据的例子。

那么如何启动一个连续的音频流,我可以从当前“帧”中捕获数据?

这就是我尝试这样做的方式:

但它给出了以下输出:

0 投票
1 回答
744 浏览

audio - 文件和麦克风录音之间的音频信号差异

我正在开发用于现场录音的语音情感识别系统。我正在使用OpenSMILE库进行特征提取。我收集了一组包含不同类别语音类型的音频文件,并从中提取特征并训练基于支持向量机的分类器进行情感识别。然而,当在现场演讲中进行测试时,这完全失败了。原因是现场语音中的信号以及因此的特征分布(MFCC、LSP、音高、强度、F0)与文件中的完全不同。OpenSMILE 库使用portaudio来访问来自麦克风的音频信号。

我尝试通过无线方式播放文件(f_original)并通过麦克风录制,然后让 OpenSMILE 保存它(f_distorted)。我发现 f_original 和 f_distorted 在播放时听起来与人耳没有太大区别。然而,在大胆可视化时的音频信号差异很大,从 f_original 和 f_distorted 中提取的特征差异很大。文件 f_original 为 16000Hz,我在特征提取之前将其上采样到 44100Hz。麦克风以 44100Hz 的频率录制。

虽然我确实预计通过麦克风录制时会出现一些失真,但我看到的失真量是极端的。

有没有其他人遇到过类似的问题?有关如何解决此问题的任何指示。

谢谢!

0 投票
1 回答
3339 浏览

c - 实时控制音量

我目前正在将libsndfilePortAudio V19结合使用来从文件中读取音频数据并进行播放。(请注意,我是在运行 Raspbian 的 Raspberry Pi 上执行此操作的。)我遇到的问题是,我需要为以这种方式播放的每个音频样本实时动态控制播放音量。我尝试使用系统调用通过 alsamixer 来操纵全局播放音量,这在我的用例中是一个可以接受的解决方案,但是延迟太高而无法工作。

我正在寻找的是两件事之一:

  • 一个可以实时处理修改音频音量的库,可以通过对 libsndfile 检索到的原始音频数据进行操作,或者通过设置具有最小延迟(亚毫秒)的全局播放音量。该库必须是免费的(免费)并可在 Raspbian 上使用;许可不是问题。

  • 需要对 libsndfile 检索到的音频数据应用数学变换,以修改数据的音量级别,最好目标音量在 [0.0f, 1.0f] 范围内,0.0f 为静音, 1.0f 是文件中的原始卷。

我试图到处寻找有关此主题的有用(免费)材料,但未能找到任何有帮助的东西。非常感谢任何帮助!