FreeSWITCH + Google API Speech Recognize

Получите ключ для 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:

Таким образом, надиктованное абонентом сообщение, будет выслано на емайл в виде текста.

  • freeswitch/fs_google_asr.txt
  • Последние изменения: 2018/10/23