
この記事は
、Asterisk向けのGoogleの統合と音声認識に基づいて書かれており、大きな変更はあり
ません 。 音声認識には、Yandex SpeechKit HTTP APIプラットフォームが使用されます。
ダイヤルプランではすべてが変更されていません(私のAELのextensions.aelの例は、extensions.confより便利です):
s => { Answer(); Wait(1); Record(/tmp/${UNIQUEID}.wav,3,20); AGI(yandex_voice.php,/tmp/${UNIQUEID}); NoOp(${TEXT}); Hangup(); };
この例は非常に原始的です。呼び出しに応答し、1秒間待機します。音声を録音し、発言を認識し、認識されたテキストをアスタリスクコンソールに表示しますが、操作の原理は明確です。
次に、スクリプト自体について説明します。
最初に、使用される変数について少し説明します。
$ key = 'my_secret_key'-これはAPIキーです; speechkit@yandex-team.ruに手紙を書くことで取得できます。
$ topic = 'maps'-認識のためのトピック。次のオプションが可能です。
•フリーフォーム-フリーテキスト、メモなど。 アプリケーションのバリエーション:ボイスメールメッセージをテキストに変換し、電子メールまたはSMSで送信します。
•一般-Web検索クエリ。このコンテキストでこれを何に適用できるか考えられません。
•マップ-住所、GEOポイント(バー、ガソリンスタンド、ホテルなどの名前)など。
•音楽-曲の名前、音楽グループなど
$ lang = 'ru-RU'-認識が行われる言語。現在ロシア語の 'ru-RU'およびトルコ語の 'tr-TR'がサポートされており、トルコ語はこれらの「一般」および「マップ」でのみサポートされています。
$ uuid = '12345678123456781234567812345678' -32桁の文字列。リクエストごとに一意である必要があります。
APIは、キーとともに送信されるYandex_SpeechKit_HTTP_API_May [5] .pdfファイルで詳細に説明されていますが、短いAPIマニュアルを読むことはできませんでしたが、これは良い方法です。
私のバージョンのアスタリスク構成では、スクリプトファイルは次のフォルダーにあります:/ usr / share / asterisk / agi-bin /
そして実際にはyandex_voice.phpコード自体:
はい、コードは完璧ではありません。改善できるし、改善すべきです。 オプションとして、ほとんどの変数に引数を渡すことで汎用性を高めるか、別のAGIまたはARIスクリプトで関数として使用します。 現在使用しているように、加入者がいる都市を認識するために。