我的管道中的阀门有问题:
self.pipeline = gst.parse_launch(' ! '.join(['autoaudiosrc',
'queue silent=false leaky=2 max-size-buffers=0 max-size-time=0 max-size-bytes=0',
'audioconvert',
'audioresample',
'audio/x-raw-int, rate=16000, width=16, depth=16, channels=1',
'tee name=t',
'queue',
'audioresample',
'audio/x-raw-int, rate=8000',
'vader name=vader auto-threshold=true',
'pocketsphinx lm=%s dict=%s name=listener' % (dir_path + '/pocketsphinx/lisa.lm',dir_path + '/pocketsphinx/lisa.dic'),
'fakesink dump=1 t.',
'valve name=valve drop=0',
'queue',
'flacenc',
'filesink async=0 location=' + self.recording]))
我知道这不是创建管道的最好的pythonic方式,但它是最可读的。
将其设置为0会在我的文件中记录麦克风流量,一切正常。 但是我希望默认情况下放弃它,并根据事件动态打开阀门(使用pocketsphinx监听关键字),然后再次关闭此阀门。 但它似乎不起作用:我的文件保持0字节。
一旦pocketsphinx听到关键字,我就启用了阀门:
self.recording_valve.set_property('drop',False)
我试图给出一个非常简短的问题示例。也许它不在这部分,但那是我的调试引导我的地方。
要查看整个项目: https://github.com/Seraf/LISA-CLIENT-Linux/blob/pocketsphinx/lisa.tac
调用此类: https://github.com/Seraf/LISA-CLIENT-Linux/blob/pocketsphinx/lib/listener.py
调用此类: github /Seraf/LISA-CLIENT-Linux/blob/pocketsphinx/lib/recorder.py
感谢您的帮助!
答案 0 :(得分:0)
看起来有点愚蠢,但是我很快就重写了我的filesink文件,所以“watch”命令,即使是1秒的timeloop也没有看到文件中的变化。
删除有罪行告诉我文件已正确填写。
对不起噪音。