Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Speech recognition script for Asterisk that uses google's speech engine.
| Date | Stars |
|---|---|
| 2026-07-31 | 253 |
| 2026-08-01 | 253 |
| 2026-08-06 | 253 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
==============================================
Speech recognition script for Asterisk
==============================================
This script makes use of Google's Cloud Speech API in order to render speech
to text and return it back to the dialplan as an asterisk channel variable.
------------
Requirements
------------
Perl The Perl Programming Language
perl-libwww The World-Wide Web library for Perl
perl-libjson Module for manipulating JSON-formatted data
IO-Socket-SSL Perl module that implements an interface to SSL sockets.
flac Free Lossless Audio Codec
Cloud Speech API key from Google (https://cloud.google.com/speech).
Internet access in order to contact Google and get the speech data.
------------
Installation
------------
To install copy speech-recog.agi to your agi-bin directory.
Usually this is /var/lib/asterisk/agi-bin/
To make sure check your /etc/asterisk/asterisk.conf file
-----
Usage
-----
agi(speech-recog.agi,[lang],[timeout],[intkey],[NOBEEP],[rtimeout],[speechContexts])
Records from the current channel until 2 seconds of silence are detected
(this can be set by the user by the 'timeout' argument, -1 for no timeout) or the
interrupt key (# by default) is pressed. If NOBEEP is set, no beep sound is played
back to the user to indicate the start of the recording. If 'rtimeout' is set,
overwrite to the absolute recording timeout. 'SpeechContext' provides hints to
favor specific words and phrases in the results. Usage: [Agamemnon,Midas]
The recorded sound is send over to Google speech recognition service and the
returned text string is assigned as the value of the channel variable 'utterance'.
The scripts sets the following channel variables:
utterance : The generated text string.
confidence : A value between 0 and 1 indicating the probability of a correct recognition.
Values bigger than 0.95 usually mean that the resulted text is correct.
In case of an unexpected error both these variables are set to '-1'.
--------
Examples
--------
sample dialplan code for your extensions.conf
;Simple speech recognition
exten => 1234,1,Answer()
exten => 1234,n,agi(speech-recog.agi,en-US)
exten => 1234,n,Verbose(1,The text you just said is: ${utterance})
exten => 1234,n,Verbose(1,The probability to be right is: ${confidence})
exten => 1234,n,Hangup()
;Speech recognition demo also using googletts.agi for text to speech synthesis:
exten => 1235,1,Answer()
exten => 1235,n,agi(googletts.agi,"Say something in English, when done press the pound key.",en)
exten => 1235,n(record),agi(speech-recog.agi,en-US)
exten => 1235,n,Verbose(1,Script returned: ${confidence} , ${utterance})
;Check the probability of a successful recognition:
exten => 1235,n,GotoIf($["${confidence}" > "0.8"]?playback:retry)
;Playback the text
exten => 1235,n(playback),agi(googletts.agi,"The text you just said was...",en)
exten => 1235,n,agi(googletts.agi,"${utterance}",en)
exten => 1235,n,goto(end)
;Retry in case speech recognition wasn't successful:
exten => 1235,n(retry),agi(googletts.agi,"Can you please repeat more clearly?",en)
exten => 1235,n,goto(record)
exten => 1235,n(fail),agi(googletts.agi,"Failed to get speech data.",en)
exten => 1235,n(end),Hangup()
;Voice dialing example
exten => 1236,1,Answer()
exten => 1236,n,agi(googletts.agi,"PLease say the number you want to dial.",en)
exten => 1236,n(record),agi(speech-recog.agi,en-US)
exten => 1236,n,GotoIf($["${confidence}" > "0.8"]?success:retry)
exten => 1236,n(success),goto(${utterance},1)
exten => 1236,n(retry),agi(googletts.agi,"Can you please repeat?",en)
exten => 1236,n,goto(record)
-------------------
Supported Languages
-------------------
"af-ZA" Afrikaans (Suid-Afrika)
"id-ID" Bahasa Indonesia (Indonesia)
"ms-MY" Bahasa Melayu (Malaysia)
"ca-ES" Català (Espanya)
"cs-CZ" Čeština (Česká republika)
"da-DK" Dansk (Danmark)
"de-DE" Deutsch (Deutschland)
"en-AU" English (Australia)
"en-CA" English (Canada)
"en-GB" English (Great Britain)
"en-IN" EngExcerpt of 7,102 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:9924eb9a20da432a, desc:speech recognition