[asterisk-speech-rec] New ASR

Renato Cassaca renato.cassaca at voiceinteraction.pt
Sat Jan 24 11:42:58 CST 2009


I started to test the integration of my speech recognizer but not 
everything is going as expected....

- Is ast_speech_engine->start supposed to be a synchronous function?
        exten => 1000,1,Answer()
        exten => 1000,n,SpeechCreate(Audimus)
        exten => 1000,n,SpeechActivateGrammar(digitos-unidades)
        exten => 1000,n,SpeechStart()
        exten => 1000,n,Background(hello-world)
        exten => 1000,n,SpeechDeactivateGrammar(digitos-unidades)
        exten => 1000,n,Goto(internal-${SPEECH_TEXT(0)})

 I have the above dialpan (copied from docs) and what is happening is:
    -- Executing [1000 at phones:1] Answer("SIP/1000-0334ea70", "") in new 
stack
    -- Executing [1000 at phones:2] SpeechCreate("SIP/1000-0334ea70", 
"Audimus") in new stack
    -- Executing [1000 at phones:3] 
SpeechActivateGrammar("SIP/1000-0334ea70", "digitos-unidades") in new stack
    -- Executing [1000 at phones:4] SpeechStart("SIP/1000-0334ea70", "") in 
new stack
    -- Executing [1000 at phones:5] BackGround("SIP/1000-0334ea70", 
"hello-world") in new stack
    -- <SIP/1000-0334ea70> Playing 'hello-world' (language 'en')
    -- Executing [1000 at phones:6] 
*SpeechDeactivateGrammar*("SIP/1000-0334ea70", "digitos-unidades") in 
new stack

 There is no wait explicit wait for engine results and there's no call 
to ast_speech_engine->write (no audio is being sent to the ASR).

 From the functions in ast_speech_engine which of them should be 
synchronous?
 How is ast_speech->state affecting the Asterisk behavior? (if you 
indicate me the source file, I can check it myself)
 What else should be done do to have audio streamed to my engine?

Renato


Joshua Colp wrote:
> ----- "Renato Cassaca" wrote:
>
>   
>> I'm finishing the ASR integration and I have a few more questions
>> (hopefully, the last ones):
>> - ast_speech_engine->get(...): returns the next available result or
>> all pending available results?
>>     
>
> It returns a linked list of results sorted by score.
>  
>   
>> - ast_speech_engine->dtmf(...): what is the expected engine behavior?
>> - stop the recognition, ignoring the results that are being processed
>> (but not finalized yet)
>> - stop the recognition but produce all results that are being
>> processed (and can be finalized with the received audio)
>>     
>
> This callback is purely informational. You do not need to implement it.
>  
>   
>> - ast_speech_engine->list: it's managed by Asterisk, I don't have to
>> do nothing with it. Right?
>>     
>
> Right.
>  
>   
>> - ast_speech_engine->activate(...grammar...): the activated grammar is
>> exclusive or incremental?
>> That means, if the ASR has already an activated grammar, should the
>> new one be added to them or should all current ASR grammars be
>> replaced by the new one? The interpretation of this will influence the
>> implementation of deactivate...
>>     
>
> This depends on the engine itself... you can implement it whichever way you want. I would say have it so that you can have multiple grammars at once though. This is what people would probably expect. 
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-speech-rec/attachments/20090124/c579c124/attachment.htm 


More information about the asterisk-speech-rec mailing list