What exactly are you speaking into the microphone?
Saying "null" or "hmm" may lead to segfauls ;)


Am Mittwoch, den 21.03.2012, 14:38 -0400 schrieb Brian Duffy:
> Sorry, forgot to mention that the segfault happens when I speak into the
> microphone; so my pipeline and asr are working well enough to pick up
> utterances from my microphone.
> 
> 
> 
> ---------- Forwarded message ----------
> From: Brian Duffy <[email protected]>
> Date: Wed, Mar 21, 2012 at 2:30 PM
> Subject: Porting "Using PocketSphinx with GStreamer and python" to Vala
> To: vala-list <[email protected]>,
> [email protected]
> 
> 
> Hello all, I am trying to port
> <http://goog_1501870203>this<http://cmusphinx.sourceforge.net/wiki/gstreamer>example
> "Using PocketSphinx with GStreamer and Python" to Vala. I have an
> example compiling but I am getting some warnings that I don't understand
> and a segmentation fault when running. Also, I am not sure what data types
> I should be using for the "text" and "uttid" params in the asrResult ,
> asrPartialResult, partialResult and finalResult methods. My environment is
> Fedora 16. PocketSphinx .7, latest gstreamer that comes with Fedora 16. I
> am using Clutter (1.8) for the main loop because my application UI will
> ultimately be written in Clutter. Any help would be greatly appreciated.
> Here are my compile warnings and code .... thanks. [brian@duffybr2 foodie]$
> valac -X -O2 -g --pkg clutter-1.0 --pkg gstreamer-0.10 --pkg
> gstreamer-interfaces-0.10 --pkg clutter-gst-1.0 cmu.vala
> cmu.vala:25.24-25.48: warning: unhandled error `GLib.Error' pipeline =
> (Pipeline)Gst.parse_launch(pipeDef); ^^^^^^^^^^^^^^^^^^^^^^^^^
> cmu.vala:11.2-11.26: warning: field `Sphinx.vader' never used private
> Gst.Element vader; ^^^^^^^^^^^^^^^^^^^^^^^^^ cmu.vala:112.6-112.26:
> warning: local variable `sphinx' declared but never used var sphinx = new
> Sphinx(); ^^^^^^^^^^^^^^^^^^^^^ /home/brian/BitBucketRepos/foodie/cmu.vala:
> In function ‘sphinx_asrPartialResult’:
> /home/brian/BitBucketRepos/foodie/cmu.vala:51:2: warning: passing argument
> 1 of ‘gst_structure_set_value’ discards ‘const’ qualifier from pointer
> target type [enabled by default]
> /usr/include/gstreamer-0.10/gst/gststructure.h:117:25: note: expected
> ‘struct GstStructure *’ but argument is of type ‘const struct GstStructure
> *’ /home/brian/BitBucketRepos/foodie/cmu.vala:52:2: warning: passing
> argument 1 of ‘gst_structure_set_value’ discards ‘const’ qualifier from
> pointer target type [enabled by default]
> /usr/include/gstreamer-0.10/gst/gststructure.h:117:25: note: expected
> ‘struct GstStructure *’ but argument is of type ‘const struct GstStructure
> *’ /home/brian/BitBucketRepos/foodie/cmu.vala:54:2: warning: passing
> argument 1 of ‘_gst_structure_copy0’ discards ‘const’ qualifier from
> pointer target type [enabled by default] cmu.vala.c:287:17: note: expected
> ‘gpointer’ but argument is of type ‘const struct GstStructure *’
> /home/brian/BitBucketRepos/foodie/cmu.vala: In function ‘sphinx_asrResult’:
> /home/brian/BitBucketRepos/foodie/cmu.vala:65:2: warning: passing argument
> 1 of ‘gst_structure_set_value’ discards ‘const’ qualifier from pointer
> target type [enabled by default]
> /usr/include/gstreamer-0.10/gst/gststructure.h:117:25: note: expected
> ‘struct GstStructure *’ but argument is of type ‘const struct GstStructure
> *’ /home/brian/BitBucketRepos/foodie/cmu.vala:66:2: warning: passing
> argument 1 of ‘gst_structure_set_value’ discards ‘const’ qualifier from
> pointer target type [enabled by default]
> /usr/include/gstreamer-0.10/gst/gststructure.h:117:25: note: expected
> ‘struct GstStructure *’ but argument is of type ‘const struct GstStructure
> *’ /home/brian/BitBucketRepos/foodie/cmu.vala:68:2: warning: passing
> argument 1 of ‘_gst_structure_copy0’ discards ‘const’ qualifier from
> pointer target type [enabled by default] cmu.vala.c:287:17: note: expected
> ‘gpointer’ but argument is of type ‘const struct GstStructure *’
> /home/brian/BitBucketRepos/foodie/cmu.vala: In function
> ‘sphinx_app_message’: /home/brian/BitBucketRepos/foodie/cmu.vala:77:2:
> warning: passing argument 1 of ‘_gst_structure_copy0’ discards ‘const’
> qualifier from pointer target type [enabled by default] cmu.vala.c:287:17:
> note: expected ‘gpointer’ but argument is of type ‘const struct
> GstStructure *’ cmu.vala.c: In function ‘_vala_main’:
> /home/brian/BitBucketRepos/foodie/cmu.vala:107:15: warning: ignoring return
> value of ‘clutter_init’, declared with attribute warn_unused_result
> [-Wunused-result] Compilation succeeded - 3 warning(s)
> 
> 
> 
> 
> [code]
> using Clutter;
> using ClutterGst;
> using Gst;
> 
> 
> class Sphinx : GLib.Object {
> 
> 
> // experimenting with gstreamer pocketsphinx
> private Gst.Pipeline pipeline;
>  private Gst.Element vader;
> dynamic Gst.Element asr;
> private Gst.Bus bus;
>  private Gst.Structure msg;
> private Gst.Structure my_struct;
> 
>  public Sphinx() {
> 
> 
> string a = """pulsesrc
> device="alsa_input.usb-AKM_AK5370-00-AK5370.analog-mono" ! audioconvert
> !""";
>  string b = """ audioresample ! vader name=vad auto-threshold=true !
> pocketsphinx name=asr ! fakesink""";
> 
> 
> string pipeDef = a + b;
> pipeline = (Pipeline)Gst.parse_launch(pipeDef);
> 
> asr = pipeline.get_by_name("asr");
> 
> asr.set_property("lm", "4038.lm");
>         asr.set_property("dict", "4038.dic");
> 
> asr.partial_result.connect(asrPartialResult);
> asr.result.connect(asrResult);
> 
> asr.set_property("configured", true);
> 
> bus = pipeline.get_bus();
>         bus.add_signal_watch();
> bus.message.connect(app_message);
> 
> pipeline.set_state(Gst.State.PLAYING);
> 
> }
> 
> 
> private void asrPartialResult(Gst.Element asr, GLib.Value text, GLib.Value
> uttid) {
>          my_struct = new Gst.Structure.empty("partial_result");
> 
>         my_struct.set_value("hyp", text);
>         my_struct.set_value("uttid", uttid);
> 
>         asr.post_message(new Gst.Message.application(asr, my_struct));
>  }
> 
> 
> private void asrResult(Gst.Element asr, GLib.Value text, GLib.Value uttid) {
> 
> stdout.printf("%s", "inside asrResult");
>          my_struct = new Gst.Structure.empty("result");
> 
>         my_struct.set_value("hyp", text);
>         my_struct.set_value("uttid", uttid);
> 
>         asr.post_message(new Gst.Message.application(asr, my_struct));
>  }
> 
> 
> private void app_message(Gst.Bus bus, Gst.Message p_msg) {
> 
>  //stdout.printf("%s", "inside app_message");
> msg = p_msg.get_structure();
>  string msgType = msg.get_name();
> 
> if (msgType == "partial_result") {
>  partialResult(msg["hyp"], msg["uttid"]);
> }else if (msgType == "result") {
>  finalResult(msg["hyp"], msg["uttid"]);
> pipeline.set_state(Gst.State.PAUSED);
>  }
>   }
> 
> private void partialResult(GLib.Value hyp, GLib.Value uttid) {
> 
> stdout.printf("%s", (string)hyp);
> }
> 
>  private void finalResult(GLib.Value hyp, GLib.Value uttid) {
> stdout.printf("%s", (string)hyp);
>  }
> 
> 
> }
> 
> 
> int main (string[] args) {
> 
> Clutter.init(ref args);
>  Gst.init(ref args);
> 
> //ClutterGst.init(ref args);
> 
>  var sphinx = new Sphinx();
> 
> Clutter.main();
> 
> return 0;
> }
> [/code]
> -- 
> Duff
> 
> 
> 
> _______________________________________________
> vala-list mailing list
> [email protected]
> http://mail.gnome.org/mailman/listinfo/vala-list


_______________________________________________
vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to