https://d226lax1qjow5r.cloudfront.net/blog/blogposts/how-to-make-an-outbound-text-to-speech-phone-call-with-node-js/text-to-speech_node-js.png

Cómo realizar una llamada telefónica saliente de texto a voz con Node.js

Publicado el February 23, 2023

Tiempo de lectura: 6 minutos

Introducción

La Voice API de Vonage es la manera más fácil de crear aplicaciones de voz de alta calidad en la nube. Con Voice API, puedes..:

  • Cree aplicaciones escalables con las tecnologías web que ya utiliza.

  • Controle el flujo de llamadas entrantes y salientes en JSON con Objetos de control de llamadas Nexmo (NCCO) (Nota: Nexmo es ahora Vonage).

  • Grabar y almacenar llamadas entrantes o salientes

  • Crear conferencias telefónicas

  • Envía mensajes de texto a voz en 40 idiomas con distintos géneros y acentos.

  • Y mucho más.

En este tutorial, aprenderás a usar de forma segura las Voice API de Vonage para crear una llamada saliente de texto a voz usando Node.js.

El código fuente de la aplicación puede encontrarse aquí.

Requisitos previos

Antes de empezar, asegúrate de tener lo siguiente:

  • Node.js instalado. Node.js es un entorno de ejecución JavaScript multiplataforma de código abierto.

  • OPCIONAL - CLI de Vonage Una vez instalado Node.js, instala la CLI escribiendo npm install -g @vonage/cli. Esta herramienta te permite crear y administrar tus aplicaciones de Vonage desde una interfaz de línea de comandos frente al portal para desarrolladores de Vonage.

Crear una aplicación de Vonage habilitada para voz

Para utilizar la Voice API de Vonagetendrás que crear una aplicación de Vonage desde el portal para desarrolladores.

Necesitas una aplicación de Vonage porque contiene la información de seguridad y configuración que necesitas para interactuar con las Voice API de Vonage. Todas las solicitudes a la Voice API de Vonage requieren autenticación. Debes generar una clave privada con la API de aplicaciones, que te permite crear tokens web JSON (JWT) para realizar las solicitudes.

Las claves públicas y privadas asociadas a la aplicación se pueden crear a través del Portal para desarrolladores de Vonage o la CLI de Vonage. Para el propósito de este tutorial, usaremos el Vonage Developer Dashboard.

Panel de control para desarrolladores de Vonage

Después de crear una Account, inicie sesión en Vonage Developer Dashboard, busque la Sección de aplicacionesy desde aquí, crea una nueva aplicación. Dale un nombre a tu aplicación, por ejemplo Llamada salientey presiona Generar clave pública y privada. Se le pedirá que descargue su clave privada y que rellene la clave pública. ¡Por favor, mantenga esta información segura, ya que cualquiera con acceso a ella puede utilizar su Account!

Creating a Voice enabled applicationOutboundCall.png

Desplácese hacia abajo por la página y asegúrese de que la opción Voice está activada, y puede dejar la opción Respuesta, Eventoy URL de respuesta en blanco.

Turning on the Voice CapabilityVoiceCapability.png

Pulse Generar nueva aplicación para continuar. También puede vincular un número si lo desea, pero no será necesario para este tutorial.

Configuración del proyecto Node.js

Ahora que hemos creado nuestra aplicación Voice de Vonage dentro del panel de desarrollador y generado nuestro par de claves pública/privada, veamos cómo debemos configurar nuestra aplicación Node.js.

Comience por ir a un símbolo del sistema / terminal, la creación de un directorio de trabajo, y luego inicializar un proyecto Node.js.

npm init -y

También debemos instalar el SDK del servidor de Vonage Node.

npm install @vonage/server-sdk

Crea un index.js e inicializa el SDK de Vonage y las credenciales con el siguiente código:

const {
    Vonage
} = require('@vonage/server-sdk');
const credentials = {
    applicationId: 'VONAGE_APPLICATION_ID',
    privateKey: "./private.key",
};
const options = {};
const vonage = new Vonage(credentials);

Sustituya el campo VONAGE_APPLICATION_ID por el ID de aplicación proporcionado para la aplicación de Vonage que creaste en el panel del desarrollador. Asegúrate de que el campo privateKey tenga la ruta de la clave privada descargada anteriormente. Nota: copié mi archivo private.key en la raíz de mi aplicación y puedo acceder a él especificando que privateKey es igual a ./private.key.

Para llamar a un número con la Voice API, utilizaremos el método vonage.voice.createOutboundCall de la librería Vonage Node.js. Este método acepta objetos como parámetros, con información sobre el destinatario, el remitente y el texto que se hablará.

Para la Voice API, tendremos que especificar un destinatario, un remitente y el código NCCO que queremos enviar.

Por último, el objeto de contenido acepta un tipo de texto y un mensaje de texto. La devolución de llamada devuelve un objeto de error y respuesta, y registraremos mensajes sobre el éxito o el fracaso de la operación.

vonage.voice.createOutboundCall({
		to: [{
			type: 'phone',
			number: YOUR_NUMBER
		}],
		from: {
			type: 'phone',
			number: VONAGE_VIRTUAL_NUMBER
		},
		ncco: [{
			"action": "talk",
			"text": "You are listening to a test text-to-speech call made with the Vonage Voice API",
		}]
	})
	.then(resp => console.log(resp))
	.catch(err => console.error(err));

Sustituya SU_NÚMERO por un teléfono al que puedas responder inmediatamente. El VONAGE_NÚMERO_VIRTUAL debe ser tu número virtual, que puedes encontrar en tu panel de control. Puede personalizar el objeto NCCO con parámetros opcionales con varias voces por idioma, género e incluso acento.

Tenga en cuenta que podríamos alojar el objeto NCCO en GitHub, por ejemplo, declarando un archivo ANSWER_URL con lo siguiente y eliminando el ncco con un answer_url como se muestra a continuación:

const ANSWER_URL = 'https://raw.githubusercontent.com/nexmo-community/ncco-examples/gh-pages/text-to-speech.json'

...

answer_url: [ANSWER_URL]

Ejecutar la aplicación

Escriba lo siguiente en el símbolo del sistema/terminal para ejecutar la aplicación:

node index.js

Tu teléfono debería sonar, oirás una voz que lee el texto que hemos especificado y la llamada se dará por finalizada. Ten en cuenta que puedes observar cierta latencia dependiendo del operador telefónico al que te conectes.

Resumen

Ahora que has aprendido a crear una llamada saliente con la Voice API de Vonage y Node.js, puedes escuchar el audio en diferentes idiomas o acentos o personalizar el texto hablado aún más para encontrar el adecuado para su empresa.

Si tienes preguntas o comentarios, únete a nosotros en el Slack para desarrolladores de Vonage o envíame un Tweet a Twittery te responderé. Gracias de nuevo por leer, ¡y te espero en el próximo!

Compartir:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael CrumpDirector de Experiencias de los Desarrolladores

Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.