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

c++ - Portaudio 无法使用 macports GCC 4.8 进行编译(-arch 命令选项无法识别/错误的寄存器名称错误)

我使用了很多 C++11 特性,所以我使用 macports gcc/g++ 编译我的 C++ 代码。

我无法让 Portaudio 使用 macports gcc 4.8 进行编译。使用稳定版本 (pa_stable_v19_20111121.tgz),使用 gcc-mp-4.8 作为编译器运行 configure 会导致:

使用最新的每日版本(4 月 5 日),我收到一堆“错误的寄存器名称”错误:

(更多错误的寄存器名称错误如下)

0 投票
1 回答
726 浏览

python - 音频设备名称中的特殊字符:Pyaudio

我目前面临一个难题。我需要在法语 Windows 环境中使用 Pyaudio,并且音频设备的名称默认包含éè

这是出现特殊字符时出现的错误:

如果我可以访问代码,这将不是问题(我猜我需要在字符串链前面添加一个 u"...")。

问题是我查看了 Pyaudio 代码,导致错误的方法在 pyd 文件(_portaudio.pyd)中定义,因此,我无法修改它!

我试图下载 _portaudio 来自己编译它,但我发现的发行版是用 C 编码的,而且相当繁重(我不知道关于 C 的第一件事)。也许我可以在那里做点什么,但我不知道确切的地点和方式。

我也可以通过仅注释获取音频设备名称的行来解决此问题,但是如果没有向用户显示其名称,则要识别特定的音频输入要困难得多。

编辑 :

这是整个过程:我从 pyaudio 调用该函数:

这将引导我进入调用该方法的 pyaudio 模块:

device_info 是 _portaudio.pyd 中定义的对象。由于特定音频设备的名称包含“é”或“è”(谢谢 windows),并且 _portaudio.pyd 未编码以处理这些字符。它返回错误:

0 投票
2 回答
11257 浏览

python - 使用 pyaudio 中的任何其他值作为速率/格式/块给我错误:[Errno Input overflowed] -9981

操作系统:Mac OSX 10.7.5 Python:Python 2.7.3(自制软件) pyaudio:0.2.7 portaudio:19.20111121(homebrew - portaudio)

以下脚本输出以下内容并显示我遇到的问题:

以上输出如下:

0 投票
2 回答
2135 浏览

python - 使用带有 ASIO 支持的 portaudio 构建 pyaudio

我在 win32 上运行 Python 2.7.3 [MSC v.1500 32 位(英特尔)]。

我需要构建支持 ASIO 的 portaudio 并将其绑定到 pyaudio 以在 Windows 7 下使用它。基本上我想从 python 访问 ASIO 驱动程序,我发现这是方法。我正在关注 pyaudio 网页http://people.csail.mit.edu/hubert/pyaudio/的手册。该手册相当过时,gcc 不再支持 -mno-cygwin 标志。我做了什么:

  1. 从他们的网页下载 PyAudio-0.2.7
  2. 下载稳定的 portaudio-v19 http://www.portaudio.com/download.html
  3. 从手册中删除了“-mno-cygwin”选项并编译了 portaudio(gcc 版本 4.5.3)
  4. 编辑 C:\Python27\Lib\distutils\cygwinccompiler.py 并从文件中删除“-mno-cygwin”标志。
  5. 我运行了建议的 pyaudio 编译,但出现 gcc 错误

    /li>

我假设 portaudio 编译失败。我认为提到的 libportaudio.a 是一个 linux 文件。你能说出出了什么问题吗?

0 投票
1 回答
1656 浏览

c++ - 立体声模式下的音频输出错误 - FFMPEG PortAudio C++

我又来了。这次我正在处理音频,之前我遇到了一些内存泄漏问题,但现在它们已经解决了,这次我遇到了一个新问题,当我将 portaudio 配置为立体声(通道 = 2)时,音频输出质量不好。

它只在单声道中输出良好,谷歌几乎没有解决方案(或者我是一个糟糕的“谷歌人”),这里是代码:

播放音频的线程:


解码音频帧函数


端口音频设置

为什么音频输出质量差的立体声而不是单声道?我该如何解决?

0 投票
1 回答
462 浏览

go - 在 OS X (+MacPorts) 上使用 portaudio-go 构建一个 go 项目

我尝试portaudio-go在 Mac OS X 10.8 下运行。我通过安装 portaudio

所以现在portaudio.h位于/opt/local/include. 由于该文件夹不是头文件的默认位置,因此在运行时

我收到一条错误消息,提示portaudio.h找不到。有没有相当于-I /opt/local/include我可以用于 go 的东西?

/编辑:已回答

0 投票
2 回答
2557 浏览

python - Windows:获取默认麦克风名称

在 Windows 上的 python2.7 中,我需要获取默认麦克风的名称,它将是一个字符串,例如“麦克风(2-高清晰度音频设备)”。

我的第一次尝试是使用 subprocess: 查询 WMI wmic path Win32_SoundDevice get * /format:list。不幸的是,这似乎返回了扬声器和麦克风,我看不到任何可以让我区分两者的属性。此外,正确设备的名称格式不正确,例如,它仅显示为“高清晰度音频设备”,而不是完整的正确字符串“麦克风(2-高清晰度音频设备)”。

我的第二次尝试是使用 PyAudio(python 绑定到 PortAudio)。打电话PyAudio().get_default_input_device_info()["name"]让我很接近,但不幸的是,这个名字由于某种原因被截断了!返回值为“Microphone (2- High Definition”)(截断为 31 个字符长度)。如果我只能得到这个字符串的非截断版本,那就完美了。

对于获取默认麦克风名称的最简单、最独立的方法有什么想法吗?谢谢!

0 投票
1 回答
517 浏览

compilation - Visual Studio 编译 Espeak 时出错

我是一名 Pascal 程序员,但我需要为 Windows 编译一个 C 库。

该库是espeak(一个语音合成器),它使用portaudio库来访问音频端口。我已经将 C 头文件翻译成 Pascal,并且在 Linux 中使用带有 Pascal 头文件的库没有问题。此外,在 Linux 中编译该库也没有问题(一些 Make,......并且已经完成......)。

但我也想在 Windows 上使用它……所以我安装了 Microsoft Visual Studio 并加载了项目。

当我编译 lib 时,我收到如下消息:

wavegen.obj:错误 LNK2019:函数“int __cdecl WavegenInitSound(void)”中引用的未解析外部符号 _Pa_Initialize (?WavegenInitSound@@YAHXZ)

似乎找不到该库的链接。我如何声明该库的内容和位置(portaudio.dll)。

在代码中有 #include "portaudio.h" 所以我认为该函数的链接已定义。但我找不到它在哪里定义使用哪个库(portaudio.dll)。

PS:我不会说很好的C所以一些代码是非常受欢迎的......

非常感谢

0 投票
2 回答
7343 浏览

gcc - C 编译器无法创建可执行文件 - Cygwin/MiniGW

我正在尝试从源代码编译Pyaudio(一个 Python 模块),因为我使用的是 Windows,并且只有 32 位二进制文​​件可用 - 我需要 64 个。按照这些说明,我下载了 Cygwin,并安装了每个组件,安全的。首先需要安装另一个模块 Portaudio。

当我运行时CFLAGS="-mno-cygwin" LDFLAGS="-mno-cygwin" ./configure,我收到错误configure: error: C compiler cannot create executables. See 'config.log' for more details.config.log 在该消息下方有一行:gcc: The -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler.

这让我相信也许 Cygwin 使用了错误的编译器。这些说明用于将 MinGw 与 Cygwin 一起使用,但我从未在此过程中指定 minigw。我还想知道 PyAudio 构建文件中是否有某些内容需要更改为 64 位。我对 C、编译、Cygwin 或 MinGW 一无所知,并且对一般编程很陌生。有任何想法吗?还有什么我可以提供的信息吗?

0 投票
1 回答
276 浏览

portaudio - 如何使用 PortAudio 在 QtAv 中发出声音

我已经编译了 QtAv 和 PortAudio 的 src 代码,但是我运行 QtAv 的示例(例如 vo-qt),它只有视频,我检查了 src 代码,到这里 AVPlayer.cpp:

HAVE_PORTAUDIO

包括“QtAV/AOPortAudio.h”

这里 /* HAVE_PORTAUDIO _audio = new QtAV::AOPortAudio();

*/ 所以我认为 PortAudio 没有包含,我不知道 HAVE_PORTAUDIO 在哪里定义以及如何包含 portaudio?

谢谢!