尝试使用gstreamer

时间:2017-03-16 12:48:10

标签: gstreamer opus python-gstreamer

我正在使用Kaldi-Gstreamer-Server库,它使用python gstreamer绑定,用于实时语音识别应用程序。该库使用onlinegmmdecodefaster gstreamer元素(包含在Kaldi库中)以及其他元素(解码器,音频转换...)来接受音频并将其转录为文本。库需要在向服务器发送请求时,使用GStreamer 1.0大写格式指定 content-type 查询参数,并将其编码为请求Url。

通过将内容类型设置为audio/x-raw,format=S16LE,channels=2,layout=interleaved将原始音频发送到服务器时,一切正常,我从服务器获取转录文本。但是,对于低延迟,我尝试使用opus编码器对音频进行编码并发送到服务器。我将content-type请求参数设置为opusdec元素填充的caps格式,如下所示:

    audio/x-opus, channel-mapping-family=(int)[ 1, 255 ], channels=(int)[1, 255 ], stream-count=(int)[ 1, 255 ], coupled-count=(int)[ 0, 255 ]

然而,当gstreamer尝试使用上述功能时,我收到以下错误:

  

2017-03-15 13:53:26 - INFO:decoder2:   0578f66f-8474-48db-996b-ce401ed5c034:设置上限为audio / x-opus,   channel-mapping-family =(int)[1,255],channels =(int)[1,255],   stream-count =(int)[1,255],coupled-count =(int)[0,255]

     

(python:1145):GStreamer-CRITICAL **:gst_event_new_caps:断言   ' gst_caps_is_fixed(caps)'失败

     

(python:1145):GStreamer-CRITICAL **:gst_pad_push_event:断言   ' GST_IS_EVENT(事件)'失败2017-03-15 13:53:27 - 错误:解码器2:   (GLib.Error('内部数据流错误。',' gst-stream-error-quark',1),   ' gstbasesrc.c(2933):gst_base_src_loop():   / GstPipeline:pipeline0 / GstAppSrc:appsrc:\ nstreaming任务暂停,   理由未谈判(-4)')2017-03-15 13:53:27 - INFO:decoder2:   0578f66f-8474-48db-996b-ce401ed5c034:重置解码器状态

     

(python:1145):GStreamer-CRITICAL **:gst_event_new_caps:断言   ' gst_caps_is_fixed(caps)'失败

     

(python:1145):GStreamer-CRITICAL **:gst_pad_push_event:断言   ' GST_IS_EVENT(事件)'失败

     

(python:1145):GStreamer-CRITICAL **:gst_event_new_caps:断言   ' gst_caps_is_fixed(caps)'失败

     

(python:1145):GStreamer-CRITICAL **:gst_pad_push_event:断言   ' GST_IS_EVENT(事件)'失败2017-03-15 13:53:27 - 错误:解码器2:   (GLib.Error('内部数据流错误。',' gst-stream-error-quark',1),   ' gstbasesrc.c(2933):gst_base_src_loop():   / GstPipeline:pipeline0 / GstAppSrc:appsrc:\ nstreaming任务暂停,   原因未经谈判(-4)')

导致此错误的原因是什么?如何解决这个问题,以便我可以将opus编码的音频数据发送到服务器?

0 个答案:

没有答案