1

我正在开发一个对话系统,我需要将 ASR 结果和相应的音频文件作为输入。我在 Ubuntu 14.04 上使用 ROS indigo 并编辑识别器.py ( http://docs.ros.org/indigo/api/pocketsphinx/html/recognizer_8py_source.html ) 以便接收来自 ASR 的文本和每个的音频文件公认的话语。我将 gst 管道更改为:

    self.launch_config += " ! audioconvert ! audioresample  ! tee name=t ! queue ! audioresample " \
                        + '! vader name=vad auto-threshold=true ' \
                        + '! pocketsphinx name=asr ! fakesink dump=1 t. ! valve drop=0 ! queue ! wavenc ! filesink location=test.wav async=0' 

但我设法做的是记录所有音频信号,直到识别器停止(例如^C)。此外,我尝试使用后

self.pipeline.set_property('rawlogdir', 'folder_name/') 第 101 行

但似乎 GstPipeline 没有属性“rawlogdir”

我需要的只是获取已识别话语的音频信号,这是使用 ROS pocketsphinx 节点进行音频处理(情感识别)所需的。

任何想法都会非常有帮助!

4

1 回答 1

0

您可以使用“vader”插件来获取以 .raw 格式检测到的音频。

只需将这些行添加到您的代码中

self.vader = self.pipeline.get_by_name('vad')
self.vader.set_property('dump-dir', audio_dir )

'audio_dir' 是您要保存文件的位置。要播放音频,请记住 pocketsphinx 使用 8kHz 的 16 位 PCM 音频。

有关 GStreamer 插件的更多信息,请使用

$ gst-inspect-0.10 pocketsphinx
$ gst-inspect-0.10 vader
于 2015-05-24T18:27:05.400 回答