标签: pulseaudio

在docker容器中使用音频运行应用程序

这个问题的灵感来自于您是否可以在docker容器中运行GUI应用程序?.

基本的想法是运行带有音频和ui的应用程序(vlc,firefox,skype,...)

我正在使用pulseaudio搜索docker容器,但我发现所有使用pulseaudio流在tcp上的容器.(应用程序的安全沙箱)

在我的情况下,我会优先从容器内的应用程序直接播放音频到我的主机pulseaudio.(没有ssh隧道和臃肿的docker图像)

Pulseaudio因为我的qt app正在使用它;)

audio qt alsa pulseaudio docker

33
推荐指数
4
解决办法
3万
查看次数

如何管道/ dev/urandom到linux声音输出?

这似乎根本不起作用:

cat /dev/urandom > /dev/dsp    #from wikipedia.org
Run Code Online (Sandbox Code Playgroud)

是因为pulseaudio?或者我需要做一些设置?

linux alsa pulseaudio

22
推荐指数
2
解决办法
2万
查看次数

获取PulseAudio的DBus接口上的信号?

每当PulseAudio中的接收器状态发生变化(例如变为非活动状态)时,我都会尝试调用D-Bus信号处理程序.不幸的是,它没有被调用,我坦率地不确定为什么.

import dbus
import dbus.mainloop.glib
from gi.repository import GObject


dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()


def signal_handler(*args, **kwargs):
    print('sig: ', args, kwargs)


def connect():
    import os
    if 'PULSE_DBUS_SERVER' in os.environ:
        address = os.environ['PULSE_DBUS_SERVER']
    else:
        bus = dbus.SessionBus()
        server_lookup = bus.get_object("org.PulseAudio1", "/org/pulseaudio/server_lookup1")
        address = server_lookup.Get("org.PulseAudio.ServerLookup1", "Address", dbus_interface="org.freedesktop.DBus.Properties")

    return dbus.connection.Connection(address)


conn = connect()
core = conn.get_object(object_path='/org/pulseaudio/core1')
core.connect_to_signal('StateUpdated', signal_handler)
core.ListenForSignal('org.PulseAudio.Core1.Device.StateUpdated', dbus.Array(signature='o'), dbus_interface='org.PulseAudio.Core1')
loop = GObject.MainLoop()
loop.run()
Run Code Online (Sandbox Code Playgroud)

python dbus pulseaudio

16
推荐指数
2
解决办法
1505
查看次数

如何使用PulseAudio从音频输出重定向到麦克风输入?

我正在为Maemo/MeeGo开发移动应用程序,Maemo使用PulseAudio.我想播放一个mp3给来电者(并且在做这个时取消麦克风,而不是听来电者,一切都应该在后台完成),要做到这一点,我必须重定向一定的音频输出(如果不可能,全部)应用程序,将其伪造为输入并使手机应用程序使用它.

在我的Ubuntu PC上,我用pavucontrol做到了.我创建了一个NULL接收器,然后:

Audio Output (from Amarok) --> to NULL Output 
Skype Input <-- NULL Output
Skype Output --> NULL
Run Code Online (Sandbox Code Playgroud)

它起作用了,Amarok播放了音乐,它正在播放到Skype,没有播放给我,我没有听到任何有关所有过程的信息.问题是; a)Maemo没有pavucontrol.b)即使它确实(或者我打包它)也没有任何好处,因为它是一个唯一的GUI应用程序,我必须在背景上完成所有这些东西,没有任何用户输入.(意思是:CLI或API)

在Freenode #pulseaudio上被问到这个问题时,一位乐于助人的人说"它可以通过pactl或pacmd完成,你想要的命令是move-sink-input和move-source-output,但你需要知道设备和流索引".所以看起来pavucontrol只是一个GUI,pactl和pacmd是真正的交易,最重要的是,它们是CLI应用程序.

我真的很感谢他,但我对"pactl","pacmd","move-sink-input"或"device/stream indices"一无所知,所以我需要一个非常简化的手册页,或者类似的应用程序,一个单行命令(两个?整个命令页?,只是给我们他们!^^)或有足够耐心的人向我解释这些东西.

linux audio command-line-interface maemo pulseaudio

14
推荐指数
1
解决办法
1万
查看次数

如何将Docker容器中的音频暴露给Mac?

我知道在Linux主机系统上使用脉冲音频是可能的但是paprefs是为linux而不是mac构建的.

audio macos containers pulseaudio docker

14
推荐指数
2
解决办法
3883
查看次数

Linux中的HFP/HSP配置文件

我有Ubuntu 16.04并且已经安装了BlueZ 5.37,PulseAudio 10.0和ofono 1.20(从github克隆).

我需要使用像调制解调器这样的电话将我的电话呼叫发送到电脑.我将我的电话与PC配对,使设备信任并连接(所有操作都成功).我认为ofono的问题,因为我可以播放音乐(使用A2DP),但如果我想使用免费或耳机配置文件 - 我在PC上没有声音.

在pacmd(PulseAudio控制台工具)列表卡中,我看到了我的蓝牙设备,但耳机音频网关HFP/HSP不可用.我也在不同的设备和计算机上测试过它.

谢谢你的建议.

linux bluetooth pulseaudio bluez

10
推荐指数
2
解决办法
3660
查看次数

qemu + pulseaudio和声音质量差

我正在使用我的gentoo作为主机操作系统用于vv passthrough用于在Windows上播放,但我有声音问题,质量不好,我听到声音中的噼啪声.我在主机操作系统上使用pulseaudio(带--system模式),并尝试了不同的采样率,但没有帮助.我对vm的命令:

qemu-system-x86_64 \
   -vga none \
   -enable-kvm -m 10000 -cpu host -smp 8,cores=4,threads=2,sockets=1 \
   -device ioh3420,bus=pci.0,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1 \
   -device vfio-pci,host=01:00.0,bus=root.1,addr=00.0,multifunction=on,x-vga=on \
   -net nic,macaddr=50:E5:49:57:74:E3 -net bridge,vlan=0 \
   -soundhw hda \
   -boot d \
   -hda /dev/sdb \
   -usb -usbdevice host:09da:000a 
Run Code Online (Sandbox Code Playgroud)

我尝试设置PULSE_LATENCY_MSEC,QEMU_PA_SAMPLES,但没有帮助.我还检查了客户虚拟机上的live cd,以确定它是否不是Windows问题,但结果是一样的.我也试过设置-soundhw ac97,但是在Windows 10上没有官方支持ac97,我有一些声音延迟,但干扰较少.

我的音频是:

00:1f.3 Audio device [0403]: Intel Corporation Sunrise Point-H HD Audio [8086:a170] (rev 31) (snd_hda_intel on msi z170a m7),
Run Code Online (Sandbox Code Playgroud)

以及qemu和pulseaudio的版本:

QEMU emulator version 2.3.0, Copyright (c) 2003-2008 Fabrice Bellard
pulseaudio 5.0
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙吗?

kvm qemu gentoo pulseaudio

9
推荐指数
1
解决办法
2万
查看次数

如何在PulseAudio中使用回声消除模块?

我试图使PulseAudio回声消除器工作.

我有两个应用程序 - 录音机和播放器,都使用PulseAudio.我像这样创建播放器和录像机:

 // pulseAudio
 pa_simple *paS=0;
 pa_sample_spec ss;

void initPulseAudio()
 {
     ss.format = PA_SAMPLE_S16LE;
     ss.channels = 1;
     ss.rate = 8000;


     paS = pa_simple_new(NULL,               // Use the default server.
                       "bottomPlayer",           // Our application's name.
                       PA_STREAM_PLAYBACK,
                       NULL,               // Use the default device.
                       "playStream",            // Description of our stream.
                       &ss,                // Our sample format.
                       NULL,               // Use default channel map
                       NULL,               // Use default buffering attributes.
                       NULL               // Ignore error code.
                       );

     if(!paS)
     {
         fprintf(stderr,
                 "unable to create recorder\n");
         myExit(1);
       } …
Run Code Online (Sandbox Code Playgroud)

c pulseaudio echo-cancellation

8
推荐指数
1
解决办法
5998
查看次数

Python无法使用Gstreamer访问usb麦克风,在Raspberry Pi上使用Pocketsphinx进行语音识别

因此,蟒蛇的表现就像是从我的麦克风根本听不到任何东西.

这是问题所在.我有一个Python(2.7)脚本,假设使用Gstreamer访问我的麦克风并通过Pocketsphinx为我做语音识别.我正在使用Pulse Audio,而我的设备是Raspberry Pi.我的麦克风是Playstation 3 Eye.

现在,我已经获得了pocketphinx_continuous以正确运行并识别我在.dict和.lm文件中定义的单词.经过几次试运行后,准确度大约为85-90%.所以,我知道我的麦克风通常通过pocketsphinx +脉冲音频拾取声音.

仅供参考我执行以下操作:

pocketsphinx_continuous -lm /home/pi/dev/scarlettPi/config/speech/lm/scarlett.lm -dict /home/pi/dev/scarlettPi/config/speech/dict/scarlett.dic -hmm /home/pi/dev/scarlettPi/config/speech/model/hmm/en_US/hub4wsj_sc_8k -silprob  0.1 -wip 1e-4 -bestpath 0
Run Code Online (Sandbox Code Playgroud)

在我的python代码中,我试图做同样的事情,但我正在使用gstreamer访问python中的麦克风.(注意:我对Python有点新鲜)

这是我的代码(感谢Josip Lisec让我这么远):

import pi
from pi.becore import ScarlettConfig
from recorder import Recorder
from brain import Brain

import os
import json
import tempfile
#import sys

import pygtk
pygtk.require('2.0')
import gtk
import gobject
import pygst
pygst.require('0.10')
gobject.threads_init()
import gst

scarlett_config=ScarlettConfig()

class Listener:
  def __init__(self, gobject, gst):
    self.failed …
Run Code Online (Sandbox Code Playgroud)

python speech-recognition gstreamer pulseaudio cmusphinx

8
推荐指数
1
解决办法
2772
查看次数

脉冲音频使用过多的CPU

我正在运行带有 gnome 的 Centos 7 桌面,尽管 Arch 和其他发行版经常出现类似的问题。

当我通过 top 检查我的 cpu 使用情况时,pulseaudio 使用了近 20% 的 cpu。

我四处寻找解决方案,但有很多不正确的解决方案,因此我在这里发布业力点以帮助其他人。

firefox cpu-usage pulseaudio espeak centos7

8
推荐指数
2
解决办法
5827
查看次数