Encoding speech utterances in flac (discontinuous chunks problem)

Stefan Sauer ensonic at hora-obscura.de
Wed Feb 29 01:12:36 PST 2012


On 02/28/2012 09:17 PM, Alex K wrote:
> Thank you for the response Stefan! 
>
> >>> What extactly are you doing in the vader-start/stop signal handlers?
> In the vader start callback I am not doing anything right now. 
> In the vader stop callback I write the buffered result to a file. Like
> I said before I have a callback for the fakesink 'handoff' signal,
> where I append the result to my buffer. 
> It looks something like this
>
> def vader_start(self, arg, data):
>     print "Vader start"
>
> def sink_new_buffer(self, pad, buffer, data):
>    print "New Buffer!"
>    self.sinkbuffer += buffer.data
>
> def vader_stop(self, arg, data):
>     print "Vader stop"
>     FILE = open("out.flac", "wb")
>     FILE.write(self.sinkbuffer)
>     FILE.close()
>     self.sinkbuffer = ""
This is not good, as the buffer you are looking at won't yet have made
it to the sink.
>
> >>> You might need to mark the first buffer of each new utterance with
> a discont flag.
> The vader plugin emits VADER_START and VADER_STOP signals. How do I
> mark it with a discount flag? Also will that flag make the
> AudioEncoderClass to reset the element?

something like this:
buffer.flags |= BufferFlags.DISCONT
>
>
> >>> Use a smaller buffersize on the capture size or write your own
> chunking element. There is also a "removesilence" element and a
> "cutter" element which you might want to check
> I looked at flac encoder's implementation and it seems that I can
> achieve my goal if I can invoke the GStAudioEncoderClass->stop and
> GstAudioEncoderClass start methods. This will basically reset the
> state of the flacencoder element. 
> These methods are invoked by AudioEncoder
> element's gst_audio_encoder_activate method.
These are tied to the state-changes. There is no regular way to call them.

Stefan

> However it seems like this method is invoked only when the pipeline is
> first started. 
> Does anyone know if there is any other way I can trigger the method?
>
> Thank you in advance,
> Alex. 
>
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20120229/e6da1d35/attachment.html>


More information about the gstreamer-devel mailing list