ROS pocketsphinx+gstreamer将话语记录到wav文件中

2024-04-27 22:03:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个对话系统,我需要得到作为输入的ASR结果以及相应的音频文件。 我在ubuntu14.04上使用rosindigo并编辑识别器.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_属性('rawlogdir','folder_name/')第101行

但似乎没有rawgspipedir属性

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

任何想法都会很有帮助!在


Tags: nameself属性信号queue系统html对话
1条回答
网友
1楼 · 发布于 2024-04-27 22:03:14

您可以使用“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插件的更多信息,请使用

^{pr2}$

相关问题 更多 >