Google(FreeSWITCHエディション)のおかげでボイスメールと質の高いサービスが飛躍します

最新の電話プラットフォームの使用により、ボイスメールサービスは非常に親しみやすくなり、「ソフト」交換の開発者がボイスメールモジュールを作成し、「鉄」交換のメーカーがボイスメールカード全体を作成し、通信事業者がそれをサービスとして提供するようになりました。 彼らが言うように、すべてがシンプルで明確です。 サブスクライバーに連絡しませんでした。システムはボイスメールにリダイレクトし、メッセージを残すことを提案します。 さらに、いくつかのオプションがあります-音声メッセージが残されたという通知がサブスクライバー(通常、このレター)に送信されます-彼らは言う-システムに入り、聞いてください。 より高度なバージョンでは、レコードを含むファイルがすぐにメールで届きます。これにより、システムインターフェースにアクセスする時間を無駄にすることなく、手紙からすぐにファイルを聞くことができます。 しかし、サービスをさらに便利で優れたものにすることができます。



FreeSWITH + Google =ボイスメール2.0








私の意見では、サービスの品質を向上させるために、音声メール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インターフェースのメッセージで議論された内容がどれだけ早く表示されるか(そして、最初の手紙なしでも)を評価します。



画像







All Articles