自動音声適応

インテント検出リクエストを実行するとき、必要に応じて音声コンテキストを指定すると、音声認識装置にヒントを提供できます。これらのヒントは、特定の会話状態での認識を支援します。

自動音声適応機能では、すべてのインテント検出リクエスト用の音声コンテキスト ヒントとしてエージェント エンティティ、トレーニング フレーズ、会話の状態を自動的に使用することで、エージェントの音声認識精度が向上します。この機能はデフォルトで有効になっています。

自動音声適応を有効または無効にする

自動音声適応を有効または無効にするには、次の手順を実行します。

  1. Dialogflow ES コンソールに移動します。
  2. 左側のサイドバー メニューの上部付近でエージェントを選択します。
  3. エージェント名の横にある設定 ボタンをクリックします。
  4. [Speech] タブを選択します。
  5. [Improve Speech Recognition Quality] セクションまでスクロールします。
  6. [Enable Auto Speech Adaptation] をオンまたはオフに切り替えます。

音声認識の改善例

自動音声適応を有効にした後、それを有効活用するようにエージェントを構築できます。次の例は、エージェントに一定の変更を加えると音声認識がどのように改善されるかを示しています。

  1. @sys.number システム エンティティを使用するトレーニング フレーズを定義した場合、エンドユーザーが「two」と発声すると、それが「to」、「too」、「2」、「two」と認識される可能性があります。自動音声適応を有効にすると、Dialogflow は音声認識時に @sys.number エンティティをヒントとして使用し、このパラメータが「two」または「2」として認識されます。

  2. 「stuffy nose」のようなフレーズを使ってトレーニング フレーズを定義した場合、ユーザーの発声は、よく似た発音の「stuff he knows」ではなく確実に「stuffy nose」と認識されます。

  3. 企業が提供するプロダクト名やサービス名のエンティティを定義し、エンドユーザーがそれら用語を発声した場合は、認識される可能性は高くなります。

  4. ユーザーが、連続して異なる数のエンティティを発話すると、あいまいになる可能性があります。たとえば、「I want two sixteen packs」は、16 パックの 2 つ分、または 216 パックを意味する可能性があります。音声適応は、スペルアウトされた値のエンティティを設定する場合に、これらの曖昧さを取り除くのに役立ちます。

    • 以下のエントリを使用して quantity エンティティを定義します
      zero
      one
      ...
      twenty
    • 以下のエントリを使用して product または size エンティティを定義します
      sixteen pack
      two ounce
      ...
      five liter
    • 音声適応ではエンティティの類義語のみが使用されるため、参照値 1 と単一の類義語 one を使用してエンティティを定義し、フルフィルメント ロジックを簡素化できます。
  5. 自動音声適応を Regexp エンティティと一緒に使用できます。これらの機能を組み合わせて、英数字や数字のシーケンスを取得できます。

    • ` ~ ! @ # $ % ^ & * ( ) - _ = + , . < > / ? ; ' : " [ ] { } \ | などの特殊文字と句読点はサポートされていません。
    • \s*\s? は使用できますが、\s は使用できません。
    • この仕様に準拠していない正規表現エンティティのエントリを追加できます。少なくとも 1 つのエントリを遵守すれば、自動音声適応を利用できます。

    たとえば、次のような正規表現を使用して英数字シーケンスを取得できます。

    ^[A-Za-z0-9]{1,10}$
    ^WAC\d+$
    215[2-8]{3}[A-Z]+$
    [a-zA-Z]\s?[a-zA-Z]\s?[0-9]\s?[0-9]\s?[0-9]\s?[a-zA-Z]\s?[a-zA-Z]
    

    次の正規表現は、数字シーケンスに適用されます。

    \d{2,8}
    ^[0-9]+$
    2[0-9]{7}
    [2-9]\d{2}[0-8]{3}\d{4}
    

    また、任意の数字シーケンスを受け入れる場合は、@sys.number-sequence を使用し、ローカライズされた電話番号認識ツールを使用する場合は @sys.phone-number を使用することも検討してください。

制限事項

次の制限が適用されます。

  1. 自動音声認識は Dialogflow へのデータ送信前に Actions on Google で実行されるので、自動音声適応は Actions on Google(Google アシスタント)では機能しません。

  2. 自動音声適応のシステムおよび正規表現エンティティに対する組み込みサポートは、言語によって異なります。サポートされている言語については、Speech クラストークン$OOV_CLASS_ALPHANUMERIC_SEQUENCE$OOV_CLASS_DIGIT_SEQUENCE を確認してください。使用している言語がリストにない場合でも、この制限を回避できます。たとえば、3 文字の後に 3 桁の数字が続く従業員 ID を正確に認識させる場合、次のエンティティとパラメータを使用してエージェントを構築できます。

    • 10 個のエンティティ エントリを含む digit エンティティを定義します(同義語を含む)。
      0, 0
      1, 1
      ...
      9, 9
    • 26 個のエンティティ エントリを含む letter エンティティを定義します(同義語を含む)。
      A, A
      B, B
      ...
      Z, Z
    • 単一のエンティティ エントリを含む employee-id エンティティを定義します(同義語なし)。
      @letter @letter @letter @digit @digit @digit
    • トレーニング フレーズのパラメータとして @employee-id を使用します。