Grabación y transcripción de llamadas
Visión general
La Voice API de Vonage permite grabar el audio de las llamadas de varias formas. Puedes:
- Grabar una llamada entre dos personas de forma pasiva, a modo de «escucha».
- Graba el audio de una sola persona que llama cuando se le solicite. Por ejemplo, en un sistema de buzón de voz.
- Activar la grabación de una conversación con nombre (utilizando la acción «conversación»).
Por defecto, todas las grabaciones están en formato mono, con todas las partes de la conversación en un único canal.
Vonage también ofrece un grabación dividida donde el audio se guardará como un archivo estéreo. En este caso, el audio hablado por el interlocutor inicial estará en el canal izquierdo, y el audio escuchado por el interlocutor inicial estará en el canal derecho. Esto suele ser útil para pasar a sistemas de transcripción en los que se desea identificar quién dijo qué.
Para grabar una conversación, puedes utilizar el record en una OCNC. La grabación se comportará de forma diferente dependiendo de cómo configure la acción. Para obtener más información sobre cómo configurar una grabación, consulte la sección registrar referencia NCCO
Una vez que el record Cuando finalice la acción, Vonage enviará un webhook al eventUrl que especificaste al configurar el record acción. Este webhook contiene una URL desde la que se puede descargar el archivo de grabación. Deberá autenticarse con un JWT firmado por la misma clave de aplicación que creó la grabación para poder descargar el archivo de grabación.
Transcripción de llamadas también está disponible; Vonage enviará un webhook a un eventUrl una vez finalizada la transcripción. Este webhook contiene una URL donde se puede acceder a la transcripción. Al igual que para la grabación, deberá autenticarse. Tenga en cuenta que esta función es de pago; las tarifas exactas pueden consultarse en la página Precios de Voice API en "Funciones programables".
NOTA: Una vez finalizada la grabación, Vonage la almacenará durante 30 días antes de eliminarla automáticamente.
Grabación sincrónica
A record La acción finalizará cuando: endOnSilence o se ha alcanzado el endOnKey se envía la clave o el timeout se alcance dicho valor. En ese momento, la grabación finalizará y se enviará un evento de grabación a tu event_url antes de que se ejecute la siguiente acción. Esto se utiliza para escenarios similares al buzón de voz.
Grabación asíncrona
Si ninguno de endOnSilence, endOnKey o timeout la grabación funcionará de forma asíncrona y pasará instantáneamente a la siguiente acción sin dejar de grabar la llamada. La grabación sólo finalizará y enviará el evento correspondiente cuando finalice la llamada. Esto se utiliza para escenarios similares a la monitorización de llamadas.
Cuando se graba una conversación con nombre, la grabación es siempre asíncrona y está ligada al ciclo de vida de la conferencia. Para grabar una conferencia, debe añadir la opción record atribuir a true en su conversation acción en la NCCO.
Grabación dividida
Al grabar una llamada, puedes activar la grabación dividida, lo que hará que la grabación sea un archivo estéreo en el que un canal contenga el audio enviado por la persona que llama y el otro canal, el audio que oye dicha persona.
Grabación multicanal
Al grabar una llamada, puede activar la grabación multicanal, que permite grabar por separado hasta 32 tramos de llamada. Se devolverá un archivo con el número de canales establecido.
En este ejemplo, iniciamos una grabación multicanal que espera tres participantes (channels: 3) y, a continuación, conecta dos números adicionales a la conversación. Cada participante aparecerá en su propio canal en la grabación.
Para obtener más información sobre el record acción, véase el Referencia OCNC
[
{
"action": "record",
"eventUrl": ["https://example.com/recordings"],
"split": "conversation",
"channels": 3
},
{
"action": "connect",
"eventUrl": ["https://example.com/events"],
"from":"447700900000",
"endpoint": [
{
"type": "phone",
"number": "447700900001"
}
]
},
{
"action": "connect",
"eventUrl": ["https://example.com/events"],
"from":"447700900000",
"endpoint": [
{
"type": "phone",
"number": "447700900002"
}
]
}
]
Si has añadido otro connect En esta configuración de NCCO, los dos primeros participantes aparecerían en sus propios canales, mientras que los participantes tres y cuatro aparecerían juntos en el canal 3. En este caso, habría que aumentar el número de canales a 4 para que cada participante disponga de su propio canal. Se puede tener hasta 32 participantes en una misma conversación.
Formatos de archivo
- Vonage admite la grabación en formato MP3, OGG o WAV, el predeterminado es MP3 (o WAV para grabar más de 2 canales).
- Los archivos MP3 se graban con una profundidad de 16 bits y una frecuencia de muestreo de 16 kHz. Se codifican con una tasa de bits constante de 32 Kbps.
- Los archivos WAV se graban con una profundidad de 16 bits y una frecuencia de muestreo de 16 kHz.
Todos los formatos son mono por defecto. Si se activa la grabación dividida, se crea un archivo estéreo con cada canal utilizando la profundidad de bits y las frecuencias de muestreo mencionadas anteriormente.
Transcripción
Si el transcription la grabación se transcribirá utilizando el valor predeterminado de languagees-US:
[
{
"action": "record",
"eventUrl":["https://example.com/recording"],
"transcription": {}
}
]
Nota: hay un límite máximo de 2 horas para transcribir llamadas de voz.
Además, esta función es de pago; las tarifas exactas pueden consultarse en la página Precios de Voice API en "Funciones programables".
Mediante los ajustes de transcripción puede especificar un eventUrl y language para sus transcripciones. Encontrará más información en Referencia OCNC. También puede optar por realizar análisis de sentimiento en cada segmento de grabación de llamadas.
[
{
"action": "record",
"eventUrl":["https://example.com/recording"],
"transcription":
{
"eventMethod": "POST",
"eventUrl":["https://example.com/transcription"],
"language": "en-US",
"sentimentAnalysis": "true"
}
}
]
Una vez finalizada la transcripción, se enviará una devolución de llamada a su grabación eventUrl. Si una grabación eventUrl Si no se especifica, el webhook se enviará a la aplicación eventUrl:
{
"conversation_uuid": "CON-aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"recording_uuid": "aaaaaaaa-bbbb-cccc-dddd-0123456789ab",
"status": "transcribed",
"transcription_url": "https://api.nexmo.com/v1/files/bbbbbbbb-aaaa-cccc-dddd-0123456789ab",
"type": "record"
}
Utilización de la transcription_url puede realizar una solicitud GET para recuperar la transcripción. Deberá autenticarse con un JWT firmado por la misma clave de aplicación que creó la grabación. La respuesta del transcription_url contendrá las frases y un desglose palabra por palabra con sus respectivas puntuaciones de confianza y de análisis de sentimiento:
{
"ver": "1.0.19",
"request_id": "6226182254ce513117079b58",
"channels": [
{
"transcript": [
{
"sentence": "Transcription example test.",
"timestamp": 9630,
"duration": 2642,
"action_items": [],
"questions": [],
"answers": [],
"raw_sentence": "transcription example test",
"words": [
{
"word": "transcription",
"start_time": 9630,
"end_time": 10887,
"confidence": 1
},
{
"word": "example",
"start_time": 10952,
"end_time": 11726,
"confidence": 0.990055
},
{
"word": "test",
"start_time": 11728,
"end_time": 12272,
"confidence": 0.486845
}
],
"sentiments": [
{
"text_part": "transcription example test",
"score": 0.1213
}
]
}
],
"duration": 16.2
}
]
}