FreeSWITCH + Google API Speech Recognize
Распознавание речи при помощи Гугль Api
Получите ключ для API
- Зайти в проект или создать новый: https://code.google.com/apis/console
- В проекте зайти «APIs & auth» , «Credentials»
- Найти надпись «Public API access» и найти кнопку «Create New Key»
https://developers.google.com/api-client-library/python/guide/aaa_apikeys
Создайте файл speech_recognition.sh в директории /usr/local/freeswitch/scripts/
Содержание файла, где:
KEY-FROM-GOOGLE - ключ
info@asterisk-pbx.ru - емайл, на который пересылается текст сообщения.
#!/bin/sh cd /usr/local/freeswitch/scripts/ sox tmp.wav message.flac pad .1 0 rate 16k > /dev/null 2>&1 wget -q -U "Mozilla/5.0" --post-file message.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "https://www.google.com/speech-api/v2/recognize?lang=ru-RU&key=KEY-FROM-GOOGLE cat message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' >> messages.log cat message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' | mutt -x -s "new message" -- info@asterisk-pbx.ru rm message.flac rm tmp.wav rm message.ret
Настройте входящий диалплан.
Где «7777777» - DID входящего вызова.
<extension name="7777777" > <condition field="context" expression="public" /> <condition field="destination_number" expression="^7777777$" > <action application="set" data="call_direction=inbound"/> <action application="export" data="api_hangup_hook=system /usr/local/freeswitch/scripts/speech_recognition.sh" /> <action application="answer" /> <action application="playback" data="/usr/local/freeswitch/sounds/ru/RU/elena/users/8000/to_leave_a_voice_message.wav" /> <action application="record" data="/usr/local/freeswitch/scripts/tmp.wav" /> <action application="hangup" /> </condition> </extension>
Тоже самое в FusionPBX:
Таким образом, надиктованное абонентом сообщение, будет выслано на емайл в виде текста.