Grabación y transcripción de llamadas
Visión general
Voice API de Vonage ofrece la posibilidad de grabar el audio de las llamadas de varias maneras. Puedes:
- Graba una llamada entre dos personas de forma pasiva "monitorizando".
- 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 (utilizar la acción de conversación).
Por defecto, todas las grabaciones son en formato mono, con todas las partes de la conversación en un solo 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 botón 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 Vonage enviará un webhook a la aplicación eventUrl que especificó 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 se completará cuando endOnSilence o se ha alcanzado el endOnKey o se envía la tecla timeout . En este punto, la grabación finalizará y se enviará un evento de grabación a su 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 al atributo true en su conversation acción en la OCNC.
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 con un canal con el audio enviado desde el interlocutor y otro canal con el audio escuchado por el interlocutor.
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 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 ha añadido otro connect acción a esta OCN, los dos primeros participantes aparecerían en sus propios canales, mientras que los participantes tres y cuatro aparecerían en el canal 3 juntos. En este caso, tendrás que aumentar el número de canales a 4 para que cada participante tenga su propio canal. Puedes 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 velocidad 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 no se especifica, el webhook se enviará a la carpeta 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
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
}
]
}