如何从Nao机器人流式传输音频

本文关键字:传输 音频 机器人 Nao | 更新日期: 2023-09-27 18:31:10

我想创建一个从Nao到我的WPF表单的流音频。

我发现的唯一方法是我们可以通过SSH在Nao上下载录制的声音。

但它不是真正的流媒体...

如果有人有想法!

谢谢

如何从Nao机器人流式传输音频

在您的

NAO(通过ssh登录)上运行此命令gst-launch-0.10 pulsesrc ! audioconvert ! vorbisenc ! oggmux ! tcpserversink port=1234

通过VLC列出:vlc tcp://IP:1234/

你应该看看嵌入在机器人中的gstreamer。这会有点慢,但这将是真正的流媒体......

对于窗口:下载最新的 pulseaudio(不是官方的)并使用以下两行创建一个 config.pa 文件:

load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1
load-module module-waveout

首先在Windows机器上运行pulseaudio,使用pulseaudio -F config.pa

在您的 NAO 上:

pacmd load-module module-tunnel-sink sink_name=nao server=192.168.1.152 

(将此地址更改为您的 Windows 一。还要确保脉冲音频在窗口上运行,否则这将不起作用)

qicli call ALAudioDevice._listOutputs 

上一个命令将显示刚刚创建的脉冲音频设备的索引号。在下一个命令中使用此数字

pacmd set-default-sink 1
qicli call ALAudioDevice._setDefaultOutput 1

就是这样。现在一切都通过您的 PC 扬声器进行。索引 0 是 NAO 的声卡

对于 Linux:在终端上运行以下命令:

pactl load-module module-rtp-recv

在 NAO 上:

pactl load-module module-null-sink sink_name=nao (creates the sink)
qicli call ALAudioDevice._listOutputs  (checks the index on sink)
qicli call ALAudioDevice._setDefaultOutput 1  
pactl load-module module-rtp-send source=nao.monitor

我发现Linux方法更稳定。Windows上的TCP可能会在一段时间后中断。