Sprache zu Text

Automatische Spracherkennung (ASR) ermöglicht es Anwendungen, Spracheingabe für Anwendungsfälle wie IVR, Identifizierung und verschiedene Arten von Sprachbots/-assistenten zu unterstützen. Mit dieser Funktion erhält die App die transkribierte Sprache des Benutzers (in Textform), sobald sie erwartet, dass der Benutzer eine Frage durch Sprechen und nicht durch die Eingabe von Ziffern (DTMF) beantwortet, und kann dann den Anruffluss gemäß ihrer Geschäftslogik auf der Grundlage der Aussagen des Benutzers fortsetzen.

Hinweis: Dies ist eine kostenpflichtige Funktion. Genaue Preise finden Sie auf der Seite Voice API-Preise Seite unter 'Programmierbare Funktionen'.

Wie es funktioniert

AppVonageUserAppVonageUsertalk/stream\ninputnext action(s)phone callanswer callbackNCCOaudio messagespeechtextNCCOnext action(s)

In der Regel wird ASR in Verbindung mit einer Audionachricht verwendet, die dem Benutzer vorgespielt wird. Bei der Nachricht kann es sich um eine Audiodatei oder Text-to-Speechoder eine Kombination aus beiden, die nacheinander abgespielt werden. Um die ASR zu aktivieren, sollte NCCO ein input Aktion mit angegebenen Sprachparametern.

NCCO-Beispiel

[
  {
    "action": "talk",
    "text": "Hello!"
  },
  {
    "action": "talk",
    "text": "Please tell us, how can we help you today?",
    "bargeIn": true
  },
  {
    "eventUrl": ["https://api.example.com/callbacks/events"],
    "eventMethod": "POST",
    "action": "input",
    "type": ["speech"],
    "speech": {
      "provider": "google",
      "providerOptions": {
        "language_code": "en-US",
        "speech_contexts": [
          {
            "phrases": ["hello", "world", "speech recognition"],
            "boost": 10.0
          }
        ]
      }
    }
  }
]

Die NCCO-Referenzhandbuch enthält Informationen über alle möglichen Parameter, die in Verbindung mit dem ASR verwendet werden können input NCCO-Aktion.

Eingabe Typ

Satz type als speech nur für Spracheingabe, oder [ "dtmf", "speech" ] sowohl die Rede als auch die DTMF.

Anbieter und Anbieteroptionen

Wenn Sie die Spracheingabe verwenden, können Sie explizit auswählen, welchen Speech-to-Text-Anbieter Vonage verwendet, indem Sie provider. Der einzige unterstützte Wert ist google. Wenn Sie nicht providerVonage verwendet das Standardverhalten.

Beispiel speech Objekt mit providerOptions:

{
  "speech": {
    "provider": "google",
    "providerOptions": {
      "language_code": "en-US",
      "speech_contexts": [
        {
          "phrases": ["hello", "world", "speech recognition"],
          "boost": 10.0
        }
      ]
    }
  }
}

Verwenden Sie providerOptions um die anbieterspezifische Speech-to-Text-Konfiguration zu übergeben. Bei Verwendung von providerOptionsdie Schlüssel und Werte in providerOptions werden durch den gewählten Anbieter bestimmt. Einzelheiten finden Sie in der Dokumentation für Google wie man sie innerhalb von providerOptions.

Wenn Sie auslassen providerkönnen Sie weglassen providerOptions auch. Wenn Sie die providerumfassen providerOptions (es kann ein leeres Objekt sein {} oder null).

Das ist wichtig: Vonage erlegt einige Einschränkungen auf providerOptions. Zurzeit können Sie nur bestimmte model Werte in providerOptionsVonage verwendet jedoch ein Standardmodell, wenn Sie kein Modell angeben.

Modell-Unterstützung

Vonage unterstützt Folgendes model Werte in providerOptions:

Anbieter Unterstützt model Werte Standard model
Google latest_long, latest_short, command_and_search, phone_call, default, medical_conversation, medical_dictation, telephony, telephony_short default

Sprache (Legacy)

Die erwartete Sprache der Benutzersprache sollte als language Parameter (en-US standardmäßig).

Bei der Verwendung von provider und providerOptionsDie unterstützten Sprachen und Sprachformate werden durch den gewählten Anbieter bestimmt. Einzelheiten finden Sie in der Dokumentation für Google (language_code) wie man sie innerhalb von providerOptions.

Unterstützte Sprachen

Bei der Verwendung von provider und providerOptionsDie unterstützten Sprachen und Sprachformate werden durch den gewählten Anbieter bestimmt. Einzelheiten finden Sie in der Dokumentation für Google (language_code) wie man sie innerhalb von providerOptions.

Sprache Code
Afrikaans (Südafrika) af-ZA
Albanisch (Albanien) sq-AL
Amharisch (Äthiopien) am-ET
Arabisch (Algerien) ar-DZ
Arabisch (Bahrain) ar-BH
Arabisch (Ägypten) ar-EG
Arabisch (Irak) ar-IQ
Arabisch (Israel) ar-IL
Arabisch (Jordanien) ar-JO
Arabisch (Kuwait) ar-KW
Arabisch (Libanon) ar-LB
Arabisch (Marokko) ar-MA
Arabisch (Oman) ar-OM
Arabisch (Katar) ar-QA
Arabisch (Saudi-Arabien) ar-SA
Arabisch (Staat Palästina) ar-PS
Arabisch (Tunesien) ar-TN
Arabisch (Vereinigte Arabische Emirate) ar-AE
Armenisch (Armenien) hy-AM
Aserbaidschanisch (Aserbaidschan) az-AZ
Baskisch (Spanien) eu-ES
Bengalisch (Bangladesch) bn-BD
Bengalisch (Indien) bn-IN
Bulgarisch (Bulgarien) bg-BG
Birmanisch (Myanmar) my-MM
Katalanisch (Spanien) ca-ES
Chinesisch, Kantonesisch (traditionell, Hongkong) yue-hant-HK
Chinesisch, Mandarin (vereinfacht, China) zh (cmn-hans-cn)
Chinesisch, Mandarin (traditionell, Taiwan) zh-TW (cmn-hant-TW)
Kroatisch (Kroatien) hr-HR
Tschechisch (Tschechische Republik) cs-CZ
Dänisch (Dänemark) da-DK
Niederländisch (Belgien) nl-BE
Niederländisch (Niederlande) nl-NL
Englisch (Australien) en-AU
Englisch (Kanada) en-CA
Englisch (Ghana) en-GH
Englisch (Indien) en-IN
Englisch (Irland) en-IE
Englisch (Kenia) en-KE
Englisch (Neuseeland) en-NZ
Englisch (Nigeria) en-NG
Englisch (Philippinen) en-PH
Englisch (Singapur) en-SG
Englisch (Südafrika) en-ZA
Englisch (Tansania) en-TZ
Englisch (Vereinigtes Königreich) en-GB
Englisch (Vereinigte Staaten) en-US
Estnisch (Estland) et-EE
Filipino fil-PH
Finnisch (Finnland) fi-FI
Französisch (Kanada) fr-CA
Französisch (Frankreich) fr-FR
Galicisch (Spanien) gl-ES
Georgisch (Georgien) ka-GE
Deutsch (Deutschland) de-DE
Griechisch (Griechenland) el-GR
Gujarati (Indien) gu-IN
Hebräisch (Israel) he-IL
Hindi (Indien) hi-IN
Ungarisch (Ungarn) hu-HU
Isländisch (Island) is-IS
Indonesisch (Indonesien) id-ID
Italienisch (Italien) it-IT
Japanisch (Japan) ja-JP
Javanisch (Indonesien) jv-ID
Kannada (Indien) kn-IN
Khmer (Kambodscha) km-KH
Koreanisch (Südkorea) ko-KR
Lao (Laos) lo-LA
Lettisch (Lettland) lv-LV
Litauisch (Litauen) lt-LT
Mazedonisch (Nordmazedonien) mk-MK
Malaiisch (Malaysia) ms-MY
Malayalam (Indien) ml-IN
Marathi (Indien) mr-IN
Mongolisch (Mongolei) mn-MN
Nepali (Nepal) ne-NP
Norwegisch Bokmål (Norwegen) nb-NO
Persisch (Iran) fa-IR
Polnisch (Polen) pl-PL
Portugiesisch (Brasilien) pt-BR
Portugiesisch (Portugal) pt-PT
Punjabi (Gurmukhi, Indien) pa-guru-IN
Rumänisch (Rumänien) ro-RO
Russisch (Russland) ru-RU
Serbisch (Serbien) sr-RS
Singhalesisch (Sri Lanka) si-LK
Slowakisch (Slowakei) sk-SK
Slowenisch (Slowenien) sl-SI
Spanisch (Argentinien) es-AR
Spanisch (Bolivien) es-BO
Spanisch (Chile) es-CL
Spanisch (Kolumbien) es-CO
Spanisch (Costa Rica) es-CR
Spanisch (Dominikanische Republik) es-DO
Spanisch (Ecuador) es-EC
Spanisch (El Salvador) es-SV
Spanisch (Guatemala) es-GT
Spanisch (Honduras) es-HN
Spanisch (Mexiko) es-MX
Spanisch (Nicaragua) es-NI
Spanisch (Panama) es-PA
Spanisch (Paraguay) es-PY
Spanisch (Peru) es-PE
Spanisch (Puerto Rico) es-PR
Spanisch (Spanien) es-ES
Spanisch (Vereinigte Staaten) es-US
Spanisch (Uruguay) es-UY
Spanisch (Venezuela) es-VE
Sundanisch (Indonesien) su-ID
Suaheli (Kenia) sw-KE
Suaheli (Tansania) sw-TZ
Schwedisch (Schweden) sv-SE
Tamilisch (Indien) ta-IN
Tamilisch (Malaysia) ta-MY
Tamilisch (Singapur) ta-SG
Tamilisch (Sri Lanka) ta-LK
Telugu (Indien) te-IN
Thailändisch (Thailand) th-TH
Türkisch (Türkei) tr-TR
Ukrainisch (Ukraine) uk-UA
Urdu (Indien) ur-IN
Urdu (Pakistan) ur-PK
Usbekisch (Usbekistan) uz-UZ
Vietnamesisch (Vietnam) vi-VN
Zulu (Südafrika) zu-ZA

Kontext (Erbe)

Einige Hinweise können mit der Funktion context Array-Parameter, um die Erkennungsqualität zu verbessern. Die eingestellten Werte können z. B. die vom Benutzer erwarteten Wörter oder Sätze sein, ['one', 'two', 'three'] oder ['support', 'order starship'].

Bei der Verwendung von provider und providerOptionsDie Konfiguration dieses Parameters wird durch den gewählten Anbieter bestimmt. Einzelheiten finden Sie in der Dokumentation für Google (speech_contexts[]) wie man sie innerhalb von providerOptions.

Hereinspaziert

Wenn der Benutzer nicht zum ersten Mal anruft, kennt er vielleicht schon die Frage, die gestellt werden soll, so dass er schon zu sprechen beginnt, bevor die Audionachricht beendet ist. Um dies zu unterstützen, bargeIn Parameter des TTS (oder stream - welche Aktion auch immer für die Nachricht verwendet wird) sollte aktiviert werden.

Es wird empfohlen, die erste TTS-/Audio-Nachricht als kurze Begrüßung ohne Aktivierung der bargeIn Option zur Verbesserung der Benutzerfreundlichkeit. Wenn bargeIn für die erste Begrüßung eingeschaltet ist, kann der Benutzer sie versehentlich unterbrechen, ohne die Aufforderung überhaupt zu hören, da Hintergrundgeräusche von der Anwendung in diesen ersten Momenten als aktive Interaktion interpretiert werden können.

Audio speichern

Der Sprachton kann optional gespeichert werden. Um die Aufzeichnung zu erhalten, muss die saveAudio gesetzt sein sollte, dann wird der Parameter recording_url wird in die Nutzlast der Rückrufanforderung aufgenommen. Dies kann nützlich sein, um die Transkription mit dem Originalton zu vergleichen. Verwenden Sie die Eine Aufnahme herunterladen Codefragment zum Herunterladen der Audiodaten.

Beispiel für Ereignis-Payloads

Sobald der NCCO input Aktion abgeschlossen ist, wird der Eingabe-Callback gesendet:

{
  "speech": {
    "recording_url": "https://api-us.nexmo.com/v1/files/ee94a327-ab6b-4bef-86bf-cadca33343e9",
    "timeout_reason": "end_on_silence_timeout",
    "results": [
      {
        "confidence": "1.0",
        "text": "one two three four five six seven eight nine ten"
      }
    ]
  },
  "dtmf": {
    "digits": null,
    "timed_out": false
  },
  "uuid": "529aa8f0-0ad8-42b0-ad61-b76dca18bb52",
  "conversation_uuid": "CON-7347b08d-5f51-478f-bfb2-e8c3fd39509f",
  "timestamp": "2020-02-07T11:42:40.933Z"
}

Im Antwortkörper wird ein neuer NCCO erwartet, der die nächsten Aktionen des Anrufablaufs auf der Grundlage der Anwendungslogik und der Benutzereingaben enthält (speech.results.text). Siehe auch Webhook-Referenz für Einzelheiten.