2015-03-02 64 views
1

我正在開發一個對話系統,我需要將ASR結果以及相應的音頻文件作爲輸入。 我在Ubuntu 14.04上使用ROS indigo,並編輯識別器.py (http://docs.ros.org/indigo/api/pocketsphinx/html/recognizer_8py_source.html) 以便接收來自ASR的文本和每個識別的話語的音頻文件。 我改變了消費稅管道:ROS pocketsphinx + gstreamer將語音記錄到wav文件

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節點進行音頻處理(情感識別)所需的識別話語的音頻信號。

任何想法都會非常有幫助!

+0

不幸的是ROS pocketsphinx需要更多的工作 – 2015-03-17 18:29:58

回答

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