问题标签 [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.
c++ - speex 解码出错
我正在使用 speex 对一些音频数据进行编码并通过 UDP 发送,然后在另一端对其进行解码。我用 speex 进行了一些测试,并注意到如果我在编码后立即解码一个数据包,解码后的数据绝不会接近原始数据。缓冲区开头的大部分字节都是 0。所以当我解码通过 UDP 发送的音频时,我得到的只是噪音。这就是我编码音频的方式:
这就是我解码音频的方式:
我查看了文档,我的大部分代码来自 speex 网站的示例编码/解码示例。我不确定我在这里缺少什么。
audio - 如何使用 PyAudio 或 PortAudio 获取设备的音频采样率列表?
我想查询我的音频设备并获取其所有可用的采样率。我正在使用 Python 2.6 的 Ubuntu 机器上运行在 PortAudio v19 之上的 PyAudio 0.2。
python - PyAudio IOError:没有可用的默认输入设备
我在 Ubuntu 10.10 x64 的 Enthought Python Distribution (Python 2.6.6) 下使用 PyAudio。
如果我尝试打开输入流,这与我得到的错误相同。有相应的错误“IOError: No Default Output Device Available”
python - PyAudio 尝试使用 JACK
我在 Python 2.6.6 下运行 PyAudio,并希望它使用 ALSA 而不是 JACK。
python - PyAudio 在缓冲区不足/溢出时引发异常
PyAudio 基于 PortAudio。是否有检测缓冲区下/溢出以在 PyAudio 中写入/读取音频流?
python - 为什么 PyGILState_Release(...) 在这种情况下会出现段错误?
我正在为PyAudio实现异步音频播放。后端 Portaudio 通过创建自己的线程并在需要/有新音频数据时调用 C 回调函数来实现异步播放。每当调用 C 回调函数时,我都会调用先前注册的 Python 函数,用户必须在其中提供音频数据。
由于对 Python 的调用发生在非 Python 创建的线程中,因此文档说我必须在PyGILState_Ensure()
调用 Python 之前和PyGILState_Release()
之后调用。它大致看起来像这样:
哪个段错误PyGILState_Release(gstate)
。这个回调函数经常被调用。比如,每秒几百到几千次。这gstate
是一个 32 位变量,有时设置为1
,有时设置为0
by PyGILState_Ensure()
。它仅在设置为 时崩溃1
。通常,会有 11
后跟 2 到 4 0
。
这种感觉就像这PyGILState_Release(…)
比它的实际返回花费的时间更长,因此在仍在运行或类似的东西时被调用。
崩溃时,堆栈跟踪如下所示:
这对任何人都有意义吗?
portaudio - 如何启用脉冲设备以允许使用 portaudio 进行录制
我目前正在研究在 portaudio 框架上录制语音 bqsed 的代码。目前,我无法使其正常工作,并且我有以下错误代码。
我认为我的问题可能与不是脉冲音频设备的坏音频 src 有关。有没有人可以让我知道如何设置脉冲设备以允许端口音频访问它而不是 /dev/dsp
c - 如果当前正在播放另一个程序,Portaudio 将不会播放声音
我有一个使用 PortAudio 的程序。目前我正在启动它Pa_OpenDefaultStream(&stream, 0, 2, paFloat32, 44100, 256, audioCB, udata)
,但是当我编译并运行我的程序时,如果另一个程序正在运行(例如音乐播放器),它不会播放声音。错误字符串是PortAudio error: Device unavailable
我认为我需要改为运行Pa_OpenStream
,但我不确定我应该传递什么以使其与其他程序一起运行。
作为参考,我尝试打印出可用设备上的信息,但我不确定如何处理这些信息。
在写这个问题时,我还注意到 maxOutputchannels 的变化取决于是否有另一个程序试图播放声音。至少我认为这是造成差异的原因。我在关闭的另一个浏览器选项卡中有一个暂停的 youtube 视频,当我现在重新运行我的程序时,它会打印:
c - 在 portaudio 中打开原始数据流(例如 tcpdump)
我想从 portaudio 中的 tcpdump 等程序打开原始数据流,你有什么建议?在文档中没有找到太多关于接收传递数据的内容。谢谢!