私の意見では、サービスの品質を向上させるために、音声メールTEXT、別名Speech-to-Textを送信できます。 背景のビット。 FreeSWITCHフォーラムでは、音声認識用のGoogle Speech APIを使用して、 FreeSWITCH用にスクリプトを変更するよう要求するとともに、Asteriskのスクリプトが投稿されました。 私は、bashで書かれたスクリプトを基本として取りました。 残念ながら、筆者は知らないので、最初にスクリプトを変更せずに提供します。
#!/bin/sh echo "1 SoX Sound Exchange - Convert WAV to FLAC with 16000" sox $1 message.flac pad .1 0 rate 16k echo "2 Submit to Google Voice Recognition" wget -q -U "Mozilla/5.0" --post-file message.flac --header="Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=en-us&client=chromium" > message.ret echo "3 SED Extract recognized text" cat message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' > message.txt echo "4 Remove Temporary Files" rm message.flac # rm message.ret echo "5 Show Text " cat message.txt
必要に応じてこのスクリプトを少し再作成し、/ usr / local / freeswitch / scripts /フォルダーに配置すると、次のようになります。
#!/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 - "http://www.google.com/speech-api/v1/recognize?lang=ru-RU&client=chromium" > message.ret cat message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' >> messages.log cat message.ret | sed 's/.*utterance":"//' | sed 's/","confidence.*//' | iconv -f UTF8 -t KOI8-U | mutt -x -s "new voice mail" -- moya_pochta@domen.ru rm message.flac rm tmp.wav rm message.ret
簡単に言えば、スクリプトでtmp.wavというエントリを取得し、FLACに変換してGoogleに送信します。 また、ロシア語の音声を認識したいことをGoogleに通知します(ただし、通常の発音で英語を話す場合、テキストは英語になります)。 応答として、{"status":0、 "id": "4ee1ad1a44f3cfbb58341972dd008e9c-1"、 "hypotheses":[{"発言": "後で電話します"、 "confidence":0.43928865}]}の形式のメッセージを受け取ります。
sedを使用して、メッセージのテキストを取り出し、ログに保存してメールに送信します。
スクリプトをさらに改善するには、自信(Googleの認識品質における信頼係数)に注意を払い、メールでも送信できます。 また、信頼性が低いか、いずれにせよ、添付ファイル(レターに記録ファイル)を添付します。 これはmuttの「-a」オプションを使用して実行できますが、最初にファイルをmp3に変換することをお勧めします。
呼び出し元からのtmp.wavメッセージを記録してからスクリプトを実行するには、次のxmlコード行をFreeSWITCHダイヤルプランの目的のコンテキストに挿入しました。
<extension name="s2t"> <condition field="destination_number" expression="^11111$"> <action application="export" data="api_hangup_hook=system /usr/local/freeswitch/scripts/s2t.sh"/> <action application="answer"/> <action application="playback" data="/usr/local/freeswitch/sounds/ru/RU/elena/voicemail/8000/vm-hello.wav"/> <action application="record" data="/usr/local/freeswitch/scripts/tmp.wav"/> <action application="hangup"/> </condition> </extension>
FreeSWITCHダイヤリングプランの特定の部分に関するいくつかのコメント。 api_hangup_hookを使用して、呼び出しが終了した後に実行するスクリプトをFreeSITCHに伝えます。 次に、呼び出しに応答してグリーティングを再生し、その後、ファイル/usr/local/freeswitch/scripts/tmp.wavの記録をアクティブにします
FreeSWITCHがメッセージをtmp.wavファイルに書き込んで電話接続を終了した後、スクリプト/usr/local/freeswitch/scripts/s2t.shが呼び出されます。
このような簡単な方法では、第一に、あなたの生活を楽にし、第二に、音声メッセージの処理時間を大幅に短縮できます。 mail.ruインターフェースのメッセージで議論された内容がどれだけ早く表示されるか(そして、最初の手紙なしでも)を評価します。