none
Replacing TTS ("Say.as") with prerecorded prompts RRS feed

  • Question

  •  

    Hello,

     

    In BlindTransfer demo app, application will correctly (digit by digit) read transfer extenesion (5 0 0 0) using TTS, but for some reason wont use prerecorded prompts.

     

    Why?

     

    Thanks

     

     

     

    Code Snippet

                PleaseHold.MainPrompt.AppendTextWithHint((this.TransferDestination as PhoneNumberTelephonyAddress).PhoneNumber, SayAs.Telephone);

     

     

    Thursday, July 24, 2008 9:20 AM

All replies

  • Say.As is a TTS directive so your'e probably passing in 5000 (five thousand) and using Say to have the engine pronounce each digit individually.

     

    To have a recorded prompt used, you're going to have to format the input so there's a space between each digit and you have to have extractions from each digit in your prompt db.

     

    Thursday, July 24, 2008 2:22 PM
  • Extractions are set in promptdb, like so:

    [5]

    [0]

     

    Thanks

    Friday, July 25, 2008 7:08 AM
  • Have you tested the utterance you're supplying with the prompt DB to verify that it can find extractions that match?

    Friday, July 25, 2008 7:38 PM
  • If I add full extension to prompt db, ie [5000] it works (this way I have to record all extensions...).

     

    Saturday, July 26, 2008 12:51 PM
  •  

    If you don't want to have each extension to the prompt DB, you could just add all the digits then separate the extension to individual digits when you're constructing your prompt. i.e. if the extension is "1234", write code to add spaces to is so it is "1 2 3 4"

     

    What exactly is not working withthe sample? If I understand you correctly, it using prerecorded utterances to say each digit of the extension. How do you think it's supposed to work?

     

    Saturday, July 26, 2008 7:40 PM
  • Hello Ahmed,

     

     Ahmed Stewart [MSFT] wrote:

    If you don't want to have each extension to the prompt DB, you could just add all the digits then separate the extension to individual digits when you're constructing your prompt. i.e. if the extension is "1234", write code to add spaces to is so it is "1 2 3 4"

     

    Whats the point? In theory (according to SDK and provided sample) it should interprete whole extension number correctly. And it does exactly that (reads five zero zero zero (not five thousand). The problem is that it still uses TTS for those digits, not provided prompts ([5] [0]) 

     

     Ahmed Stewart [MSFT] wrote:

     

    What exactly is not working with the sample? If I understand you correctly, it using prerecorded utterances to say each digit of the extension. How do you think it's supposed to work?

     

     

    It should work this way. But the problem is that in both in my development pc and standalone speech server it uses TTS for those damn digits.

     

     

    Thanks again.

    Saturday, July 26, 2008 8:10 PM
  • Ah, I read your previous post to mean that it WAS using pre-recorded prompts for that audio.

    I'll look into it when I get a chance.
    Sunday, July 27, 2008 11:13 PM
  • Hello Ahmed,

     

    I've played a little more with debugger and you were right.

    It still passes extension as a whole 5000 (five thousand) when it uses TTS SayAs. Thats why my prerecorded prompts wont work.

    I guess I need some kind of script to separate those digits in promptdb, I suppose I could use peml:rule

    http://msdn.microsoft.com/en-us/library/bb857147.aspx

    So I've added supplied vbscript to promptdb (using add>new item), but for some reason it wont attach to my app

    Compiling - C:\Speech_Projects\BlindTransfer\BlindTransfer\BlindTransferPrompts\VBScript.vbs

    ERROR: Failed to save database: C:\Speech_Projects\BlindTransfer\BlindTransfer\Prompts\BlindTransferPrompts.prompts. Please try again later.

     

    Code Snippet
    <peml:prompt_output>
    <peml:rule name="phone_number">5-0-0-0</peml:rule>
    </peml:prompt_output>

     

     

     

    Thanks

    Monday, July 28, 2008 7:12 AM