De voz a texto

El reconocimiento automático del habla (ASR) permite a las aplicaciones admitir la entrada de voz para casos de uso como los sistemas de respuesta interactiva (IVR), la identificación y diferentes tipos de bots o asistentes de voz. Al utilizar esta función, la aplicación obtiene una transcripción del discurso del usuario (en formato de texto) cuando espera que este responda a una pregunta verbalmente en lugar de introducir dígitos (DTMF); a continuación, puede continuar el flujo de la llamada según su lógica de negocio, basándose en lo que haya dicho el usuario.

Nota: Este servicio es de pago. Encontrará las tarifas exactas en Precios de Voice API en "Funciones programables".

Cómo funciona

Normalmente, la ASR se utiliza junto con un mensaje de audio que se reproduce para el usuario. El mensaje puede ser un archivo de audio o Texto a vozo una combinación de ambos reproducidos secuencialmente. Para activar el ASR, NCCO debe contener un input con los parámetros de voz especificados.

Ejemplo de OCN

[
  {
    "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
          }
        ]
      }
    }
  }
]

El Guía de referencia de la NCCO contiene información sobre todos los parámetros posibles que pueden utilizarse junto con el ASR input Acción de la OCNC.

Tipo de entrada

Conjunto type como speech sólo para entrada de voz, o [ "dtmf", "speech" ] aceptar tanto el discurso como DTMF.

Proveedor y opciones de proveedor

Cuando utilices la entrada de voz, puedes elegir explícitamente qué proveedor de conversión de voz a texto utiliza Vonage configurando provider. El único valor admitido es google. Si no configura provider, Vonage utiliza el comportamiento predeterminado.

Ejemplo speech objeto con providerOptions:

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

Uso providerOptions para pasar la configuración de voz a texto específica del proveedor. Si utiliza providerOptions, las claves y los valores de providerOptions vienen determinados por el proveedor elegido. Para más detalles, consulte la documentación de Google sobre cómo especificarlos dentro de providerOptions.

Si omites provider, puedes omitir providerOptions también. Si fija providerincluyen providerOptions (puede ser un objeto vacío {} o null).

Importante: Vonage impone algunas limitaciones en providerOptions. Por ahora, solo se pueden configurar determinados model valores en providerOptions, aunque Vonage utiliza un modelo predeterminado cuando no se especifica ninguno.

Compatibilidad con modelos

Vonage admite lo siguiente model valores en providerOptions:

Proveedor Compatible model valores Por defecto model
Google latest_long, latest_short, command_and_search, phone_call, default, medical_conversation, medical_dictation, telephony, telephony_short default

Lengua (Legado)

El idioma esperado del habla del usuario debe especificarse como el language parámetro (en-US (por defecto).

Al utilizar provider y providerOptionslos idiomas y formatos de idioma admitidos vienen determinados por el proveedor elegido. Para más detalles, consulte la documentación de Google (language_code) sobre cómo especificarlos dentro de providerOptions.

Idiomas admitidos

Al utilizar provider y providerOptionslos idiomas y formatos de idioma admitidos vienen determinados por el proveedor elegido. Para más detalles, consulte la documentación de Google (language_code) sobre cómo especificarlos dentro de providerOptions.

Idioma {filter} Código
afrikáans (Sudáfrica) af-ZA
Albanés (Albania) sq-AL
Amárico (Etiopía) am-ET
Árabe (Argelia) ar-DZ
Árabe (Bahrein) ar-BH
Árabe (Egipto) ar-EG
Árabe (Irak) ar-IQ
Árabe (Israel) ar-IL
Árabe (Jordania) ar-JO
Árabe (Kuwait) ar-KW
Árabe (Líbano) ar-LB
Árabe (Marruecos) ar-MA
Árabe (Omán) ar-OM
Árabe (Qatar) ar-QA
Árabe (Arabia Saudí) ar-SA
Árabe (Estado de Palestina) ar-PS
Árabe (Túnez) ar-TN
Árabe (Emiratos Árabes Unidos) ar-AE
Armenio (Armenia) hy-AM
Azerbaiyano (Azerbaiyán) az-AZ
Euskera (España) eu-ES
Bengalí (Bangladesh) bn-BD
Bengalí (India) bn-IN
Búlgaro (Bulgaria) bg-BG
Birmanos (Myanmar) my-MM
Catalán (España) ca-ES
Chino, cantonés (tradicional, Hong Kong) yue-hant-HK
Chino, mandarín (simplificado, China) zh (cmn-hans-cn)
Chino mandarín (tradicional, Taiwán) zh-TW (cmn-hant-TW)
Croata (Croacia) hr-HR
Checa (República Checa) cs-CZ
Danés (Dinamarca) da-DK
Neerlandés (Bélgica) nl-BE
Neerlandés (Países Bajos) nl-NL
Inglés (Australia) en-AU
Inglés (Canadá) en-CA
Inglés (Ghana) en-GH
Inglés (India) en-IN
Inglés (Irlanda) en-IE
Inglés (Kenia) en-KE
Inglés (Nueva Zelanda) en-NZ
Inglés (Nigeria) en-NG
Inglés (Filipinas) en-PH
Inglés (Singapur) en-SG
Inglés (Sudáfrica) en-ZA
Inglés (Tanzania) en-TZ
Inglés (Reino Unido) en-GB
Inglés (Estados Unidos) en-US
Estonio (Estonia) et-EE
Filipino fil-PH
Finlandés (Finlandia) fi-FI
Francés (Canadá) fr-CA
Francés (Francia) fr-FR
Gallego (España) gl-ES
Georgiano (Georgia) ka-GE
Alemán (Alemania) de-DE
Griego (Grecia) el-GR
Gujarati (India) gu-IN
Hebreo (Israel) he-IL
Hindi (India) hi-IN
Húngaro (Hungría) hu-HU
Islandés (Islandia) is-IS
Indonesio (Indonesia) id-ID
Italiano (Italia) it-IT
Japonés (Japón) ja-JP
Javanés (Indonesia) jv-ID
Kannada (India) kn-IN
Jemer (Camboya) km-KH
Coreano (Corea del Sur) ko-KR
Lao (Laos) lo-LA
Letón (Letonia) lv-LV
Lituano (Lituania) lt-LT
Macedonio (Macedonia del Norte) mk-MK
Malayo (Malasia) ms-MY
Malayalam (India) ml-IN
Marathi (India) mr-IN
Mongol (Mongolia) mn-MN
Nepalí (Nepal) ne-NP
Bokmål noruego (Noruega) nb-NO
Persa (Irán) fa-IR
Polaco (Polonia) pl-PL
Portugués (Brasil) pt-BR
Portugués (Portugal) pt-PT
Punjabí (Gurmukhi, India) pa-guru-IN
Rumanía (Rumanía) ro-RO
Ruso (Rusia) ru-RU
Serbio (Serbia) sr-RS
Cingalés (Sri Lanka) si-LK
Eslovaco (Eslovaquia) sk-SK
Esloveno (Eslovenia) sl-SI
Español (Argentina) es-AR
Español (Bolivia) es-BO
Español (Chile) es-CL
Español (Colombia) es-CO
Español (Costa Rica) es-CR
Español (República Dominicana) es-DO
Español (Ecuador) es-EC
Español (El Salvador) es-SV
Español (Guatemala) es-GT
Español (Honduras) es-HN
Español (México) es-MX
Español (Nicaragua) es-NI
Español (Panamá) es-PA
Español (Paraguay) es-PY
Español (Perú) es-PE
Español (Puerto Rico) es-PR
Español (España) es-ES
Español (Estados Unidos) es-US
Español (Uruguay) es-UY
Español (Venezuela) es-VE
sundanés (Indonesia) su-ID
Suajili (Kenia) sw-KE
Suajili (Tanzania) sw-TZ
Sueco (Suecia) sv-SE
Tamil (India) ta-IN
Tamil (Malasia) ta-MY
Tamil (Singapur) ta-SG
Tamil (Sri Lanka) ta-LK
Telugu (India) te-IN
Tailandés (Tailandia) th-TH
Turco (Turquía) tr-TR
Ucraniano (Ucrania) uk-UA
Urdu (India) ur-IN
Urdu (Pakistán) ur-PK
Uzbeko (Uzbekistán) uz-UZ
Vietnamita (Vietnam) vi-VN
Zulú (Sudáfrica) zu-ZA

Contexto (antiguo)

Se podrían dar algunas pistas utilizando el context para mejorar la calidad del reconocimiento. Los valores establecidos podrían ser las palabras o frases esperadas del usuario, por ejemplo, ['one', 'two', 'three'] o ['support', 'order starship'].

Al utilizar provider y providerOptions, la configuración de este parámetro viene determinada por el proveedor elegido. Para obtener más información, consulta la documentación de Google (speech_contexts[]) sobre cómo especificarlo dentro de providerOptions.

Entrar sin avisar

Si no es la primera vez que el usuario llama, es posible que ya sepa qué pregunta va a hacer, por lo que podría empezar a hablar incluso antes de que termine el mensaje de audio. Para facilitar esto, bargeIn del TTS (o stream - cualquiera que sea la acción utilizada para el mensaje) debe activarse.

Se recomienda que el mensaje TTS/audio inicial sea un breve saludo inicial sin activar el bargeIn opción para mejorar la experiencia del usuario. Si bargeIn Si se activa para el saludo inicial, es posible que el usuario lo interrumpa sin darse cuenta, sin haber oído siquiera la indicación, ya que la aplicación podría interpretar el ruido de fondo como una interacción activa en esos primeros instantes.

Guardar audio

El audio del discurso se puede guardar si se desea. Para obtener la grabación, el saveAudio debe estar activado, entonces el parámetro recording_url se incluirá en la carga útil de la solicitud de devolución de llamada. Esto puede ser útil para comparar la transcripción con el audio original. Utilice la función Descargar una grabación Fragmento de código para descargar el audio.

Ejemplo de carga útil de un evento

Una vez que la OCNC input Una vez completada la acción, se enviará la llamada de retorno de entrada:

{
  "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"
}

En el cuerpo de la respuesta, se espera una nueva OCNC que contenga las siguientes acciones del flujo de llamada basadas en la lógica de la aplicación y la entrada del usuario (speech.results.text). Véase también Referencia de Webhook Para más información.