none
How to create a PhraseList in a VCD file that includes every word (wildcard)?

    Question

  • Hello! First I'd like to say that I originally posted this on StackOverflow, so if I've broken some rule by cross-posting it here please tell me and I'll remove this.

    Basically, I'm messing around with the new features in WP8 and trying to create an app that includes a voice command. The voice command would go something along the lines of "What are the top songs by [artist]", and so I need to use some kind of wildcard for "[artist]" that will allow the user to say any artist. How might I do this without listing out every artist in the world in a PhraseList?

    I tried <ListenFor> what are the top songs by {*} </ListenFor> but then my app gets "What are the top songs by ..." when I try to use the voice command (as in, it literally returns three dots instead of the artist name). Is there any way to do this, or do I have to use the voice command to launch my app, and then let my app recognize the rest of the command?

    Saturday, November 10, 2012 8:49 PM

Answers

  • Hi Matthew,

    That's a great question. I'll try and answer briefly here, and then point you to an example in my msdn blog that demonstrates a technique for dealing with this type .

    First if all, when using voice commands, you, as the author of the vcd, have to specify the "constraints" (or grammar) for the recognizer. That means you'll list out what the user needs to say, using things like the <listenfor> element, and PhraseLists. We also added the wildcard {*} to let you deal with the cases that the user said something you hadn't listed.

    The wildcard isn't the same as a large model vocabulary constraint, like our web search or dictation predefined grammars. It doesn't "hear the words the user spoke" it just "hears that the user spoke something".

    One approach for dealing with this is to list the top artists, albums, or songs in a phrase list, in a new command and, and then have a separate command that captures the cases when the user speaks the name of an artist you haven't listed in the phraselist.

    Then, when that happens, launch your app, and prompt the user for the artist at that time.

    I'm building an example app, step by step, on my blog that does just that. Check it out here: http://blogs.msdn.com/robch.

    I've also put an app in the store that deals with this in a "real app", called Tivo Command.

    Good luck!


    Rob Chambers [MSFT] http://blogs.msdn.com/b/robch/ ------------------------------ This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked as answer by Matthew_Thepc Sunday, November 11, 2012 7:00 PM
    Sunday, November 11, 2012 5:29 PM

All replies

  • The Building Windows Store apps with C# or VB  is for developers to discuss writing Windows Store apps to run on Windows 8 and Windows RT. Please post questions about writing Windows Phone 8 apps in the appropriate Windows Phone development forums. I'll move this over for you.

    --Rob

    Saturday, November 10, 2012 9:29 PM
    Moderator
  • The Building Windows Store apps with C# or VB  is for developers to discuss writing Windows Store apps to run on Windows 8 and Windows RT. Please post questions about writing Windows Phone 8 apps in the appropriate Windows Phone development forums. I'll move this over for you.

    --Rob

    Of course, sorry, I'm just too used to working on Windows 8 apps :)

    thanks for moving it


    Saturday, November 10, 2012 9:47 PM
  • Hi Matthew,

    That's a great question. I'll try and answer briefly here, and then point you to an example in my msdn blog that demonstrates a technique for dealing with this type .

    First if all, when using voice commands, you, as the author of the vcd, have to specify the "constraints" (or grammar) for the recognizer. That means you'll list out what the user needs to say, using things like the <listenfor> element, and PhraseLists. We also added the wildcard {*} to let you deal with the cases that the user said something you hadn't listed.

    The wildcard isn't the same as a large model vocabulary constraint, like our web search or dictation predefined grammars. It doesn't "hear the words the user spoke" it just "hears that the user spoke something".

    One approach for dealing with this is to list the top artists, albums, or songs in a phrase list, in a new command and, and then have a separate command that captures the cases when the user speaks the name of an artist you haven't listed in the phraselist.

    Then, when that happens, launch your app, and prompt the user for the artist at that time.

    I'm building an example app, step by step, on my blog that does just that. Check it out here: http://blogs.msdn.com/robch.

    I've also put an app in the store that deals with this in a "real app", called Tivo Command.

    Good luck!


    Rob Chambers [MSFT] http://blogs.msdn.com/b/robch/ ------------------------------ This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked as answer by Matthew_Thepc Sunday, November 11, 2012 7:00 PM
    Sunday, November 11, 2012 5:29 PM
  • Why did they build it this way, especially when you can say "Note {*}" and it passes that * onto OneNote to be transcribed? That means it is obviously possible to do, just not for anyone other than Microsoft. This unnecessary limitation totally kills an app idea I had by making what should be a 1 sentence command take 2-4 separate commands.

    That's not very intuitive for the developer OR the end user.

    Monday, December 03, 2012 1:38 AM
  • That's actually a great question - how does OneNote do it, and is that method available to 3rd party developers?
    Wednesday, December 26, 2012 9:17 PM