
Compartir:
Steve se autoproclama matemático y rey de la sátira. También le gustan los galgos, los rompecabezas enrevesados y los juegos de mesa europeos. Cuando no está hablando de matemáticas con gente que no es matemática o de Java con gente que no es de Java, se le puede encontrar tomando café y hackeando código.
Hacer llamadas de texto a voz con Java
Tiempo de lectura: 6 minutos
Introducción
En un tutorial anterior, le mostramos cómo Recibir una llamada telefónica con Java y responder usando Texto a voz. Además de recibir una llamada telefónica, también puede realizar llamadas salientes.
En este tutorial, crearás una aplicación que puede realizar llamadas telefónicas salientes de texto a voz utilizando Java y la Voice API de Vonage.
Requisitos previos
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.
Utilizará Gradle para gestionar tus dependencias y ejecutar tu aplicación. Adicionalmente, necesitarás asegurarte de que tienes una copia del JDK instalada. En este tutorial usaré el JDK 11, que es el LTS actual.
Por último, necesitarás la CLI de Vonage instalada. La usarás para configurar tu cuenta de Vonage para que apunte a tu nueva aplicación.
Hacer llamadas de texto a voz con Java
Este tutorial le guiará a través de los siguientes pasos:
Regístrate para obtener una cuenta de Vonage, un número de teléfono y una solicitud.
Uso de Gradle para inicializar una nueva aplicación Java.
Uso de la biblioteca de clientes Java de Vonage para iniciar una llamada telefónica y ejecutar la conversión de texto a voz.
Configura tu cuenta de Vonage
Si no tienes una aplicación, puedes usar la CLI de Vonage para crear una. Deberás definir el nombre de la aplicación y una URL de respuesta y evento que la Voice API usará de manera predeterminada:
Voice API de Vonage realizará una solicitud a tu URL de respuesta cuando un número de teléfono vinculado a tu aplicación reciba una llamada telefónica.
Voice API de Vonage realizará solicitudes a tu URL de eventos cuando se produzcan varios cambios de estado.
Para obtener más información sobre las aplicaciones, consulte nuestra Guía de Concepts de Vonage.
Utiliza el siguiente comando para crear una aplicación mediante la CLI de Vonage:
Este comando también creará un archivo llamado private.key que necesitarás para autenticarte con Voice API de Vonage para realizar llamadas. Este archivo se guardará en el directorio dentro del cual ejecutes el comando. También toma nota del ID de la aplicación que se devuelve, ya que lo necesitarás más adelante.

Uso de Gradle para configurar un nuevo proyecto Java
Utilizarás Gradle para gestionar tus dependencias y crear y ejecutar tu aplicación Java.
El comando gradle init --type=java-application creará todas las carpetas que necesites, así como una clase de ejemplo en la que escribirás tu código.
Desde la línea de comandos, cree un nuevo proyecto Java con el siguiente comando y acepte los valores por defecto en las indicaciones interactivas:
Gradle creará la clase App clase en la carpeta src/main/java/make/tts/call carpeta. Dentro de esta clase hay un getGreeting y main método. No necesitarás el método getGreeting así que siéntete libre de eliminarlo.
Su clase App debe tener este aspecto:
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package make.tts.call;
public class App {
public static void main(String[] args) {
// Future Code Goes Here
}
} Añadir las dependencias
Utilizarás la biblioteca Java de Vonage para comunicarte con la Voice API de Vonage. Agrega lo siguiente al bloque dependencies de tu archivo build.gradle archivo:
// Nexmo Java Client
implementation 'com.nexmo:client:4.2.0' Inicializar el Cliente Nexmo
La biblioteca Java de Vonage contiene una clase NexmoClient que te da acceso a las diversas API de Vonage. Utilizarás tu ID de aplicación y la ruta a tu archivo private.key de un paso anterior. El sitio NexmoClient utilizará esta información para autenticarse en la Voice API de Vonage.
Añade lo siguiente al método main de la clase App resolviendo cualquier importación:
NexmoClient nexmoClient = NexmoClient.builder()
.applicationId(APPLICATION_ID)
.privateKeyPath(PRIVATE_KEY_PATH)
.build();
VoiceClient voiceClient = nexmoClient.getVoiceClient();La página NexmoClient lanza un error Exception si no se puede cargar el archivo de clave privada. Para mayor comodidad, modifique la firma del método main para lanzar cualquier excepción. Su método main debería tener este aspecto:
public static void main(String[] args) throws Exception {
NexmoClient nexmoClient = NexmoClient.builder()`
.applicationId(APPLICATION_ID)
.privateKeyPath(PRIVATE_KEY_PATH)
.build();
VoiceClient voiceClient = nexmoClient.getVoiceClient();
} Construir el objeto de control de llamadas Nexmo
Voice API de Vonage se controla mediante Objeto de control de llamadas Nexmo (NCCO). Un NCCO es una matriz JSON que contiene un conjunto de acciones que Voice API ejecutará.
La siguiente OCN le indicará a Voice API de Vonage que hable con el destinatario cuando responda la llamada:
[
{
"action": "talk",
"text": "This is a text-to-speech call from Vonage"
}
]La biblioteca de clientes Java de Vonage proporciona clases que te permiten construir una OCNC. Utilizarás las clases Ncco y TalkAction para construir la OCNC.
Añade lo siguiente al método main resolviendo cualquier importación:
TalkAction intro = TalkAction.builder("This is a text-to-speech call from Vonage").build();
Ncco ncco = new Ncco(intro); Llame por teléfono
La página VoiceClient contiene un método llamado createCall que espera un archivo com.nexmo.client.voice.Call. El objeto Call se utiliza para definir el número desde el que se llama, el destinatario al que se desea llamar y la OCN para controlar la llamada.
Crear un nuevo Call en el método main e invoca el método createCall con el objeto creado, resolviendo cualquier importación:
Call call = new Call(TO_NUMBER, NEXMO_NUMBER, ncco);
voiceClient.createCall(call); Pruebe su aplicación
Inicie su aplicación con el comando gradle run dentro de su directorio make-tts-call directorio. Deberías recibir una llamada telefónica desde tu número de Vonage.

Una vez que respondas esta llamada, Voice API de Vonage dirá el mensaje: "Esta es una llamada de texto a voz de Vonage".
Conclusión
En unas pocas líneas de código, has creado una aplicación que puede llamar a un destinatario y decirle un mensaje.
Consulta nuestra documentación en Vonage Developer donde podrás obtener más información sobre flujo de llamadas o Objetos de control de llamadas Nexmo. Vea nuestros Fragmentos de código Nexmo para Java para ejemplos de código completos sobre este tutorial y mucho más.
Compartir:
Steve se autoproclama matemático y rey de la sátira. También le gustan los galgos, los rompecabezas enrevesados y los juegos de mesa europeos. Cuando no está hablando de matemáticas con gente que no es matemática o de Java con gente que no es de Java, se le puede encontrar tomando café y hackeando código.
