1. Descripción general
La API de Google Cloud Text-to-Speech (beta) permite que los desarrolladores incluyan voz sintética humana y de sonido natural como audio reproducible en sus aplicaciones. La API de Text-to-Speech convierte las entradas de texto o de lenguaje de marcación de síntesis de voz (SSML) en datos de audio, como MP3 o LINEAR16 (la codificación que se usa en los archivos WAV).
En este codelab, te enfocarás en el uso de la API de Text‐to‐Speech con C#. Aprenderás a generar una lista de las voces disponibles y, además, sintetizar audio a partir de texto.
Qué aprenderás
- Cómo usar Cloud Shell
- Cómo habilitar la API de Text‐to‐Speech
- Cómo autenticar solicitudes a la API
- Cómo instalar la biblioteca cliente de Google Cloud para C#
- Cómo obtener una lista de las voces disponibles
- Cómo sintetizar audio a partir de texto
Requisitos
Encuesta
¿Cómo usarás este instructivo?
¿Cómo calificarías tu experiencia con C#?
¿Cómo calificarías tu experiencia en el uso de los servicios de Google Cloud Platform?
2. Configuración y requisitos
Configuración del entorno de autoaprendizaje
- Accede a Google Cloud Console y crea un proyecto nuevo o reutiliza uno existente. Si aún no tienes una cuenta de Gmail o de Google Workspace, debes crear una.
- El Nombre del proyecto es el nombre visible de los participantes de este proyecto. Es una cadena de caracteres que no se utiliza en las APIs de Google. Puedes actualizarla cuando quieras.
- El ID del proyecto es único en todos los proyectos de Google Cloud y es inmutable (no se puede cambiar después de configurarlo). La consola de Cloud genera automáticamente una cadena única. Por lo general, no importa cuál sea. En la mayoría de los codelabs, deberás hacer referencia al ID de tu proyecto (suele identificarse como
PROJECT_ID
). Si no te gusta el ID que se generó, podrías generar otro aleatorio. También puedes probar uno propio y ver si está disponible. No se puede cambiar después de este paso y se usa el mismo durante todo el proyecto. - Recuerda que hay un tercer valor, un número de proyecto, que usan algunas APIs. Obtén más información sobre estos tres valores en la documentación.
- A continuación, deberás habilitar la facturación en la consola de Cloud para usar las APIs o los recursos de Cloud. Ejecutar este codelab no costará mucho, tal vez nada. Para cerrar recursos y evitar que se generen cobros más allá de este instructivo, puedes borrar los recursos que creaste o borrar el proyecto. Los usuarios nuevos de Google Cloud son aptos para participar en el programa Prueba gratuita de $300.
Inicia Cloud Shell
Si bien Google Cloud y Spanner se pueden operar de manera remota desde tu laptop, en este codelab usarás Google Cloud Shell, un entorno de línea de comandos que se ejecuta en la nube.
Activar Cloud Shell
- En la consola de Cloud, haz clic en Activar Cloud Shell.
Si es la primera vez que inicias Cloud Shell, verás una pantalla intermedia que describe en qué consiste. Si apareció una pantalla intermedia, haz clic en Continuar.
El aprovisionamiento y la conexión a Cloud Shell solo tomará unos minutos.
Esta máquina virtual está cargada con todas las herramientas de desarrollo necesarias. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud, lo que mejora considerablemente el rendimiento de la red y la autenticación. Gran parte de tu trabajo en este codelab, si no todo, se puede hacer con un navegador.
Una vez que te conectes a Cloud Shell, deberías ver que estás autenticado y que el proyecto está configurado con tu ID del proyecto.
- En Cloud Shell, ejecuta el siguiente comando para confirmar que tienes la autenticación:
gcloud auth list
Resultado del comando
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Ejecuta el siguiente comando en Cloud Shell para confirmar que el comando de gcloud conoce tu proyecto:
gcloud config list project
Resultado del comando
[core] project = <PROJECT_ID>
De lo contrario, puedes configurarlo con el siguiente comando:
gcloud config set project <PROJECT_ID>
Resultado del comando
Updated property [core/project].
3. Habilita la API de Text‑to‑Speech
Antes de comenzar a usar la API de Text‐to‐Speech, debes habilitarla. Puedes habilitar la API con el siguiente comando en Cloud Shell:
gcloud services enable texttospeech.googleapis.com
4. Instala la biblioteca cliente de la API de Google Cloud Text-to-Speech para C#
Primero, crea una aplicación de consola de C# simple que utilizarás para ejecutar muestras de la API de Text-to-Speech:
dotnet new console -n TextToSpeechApiDemo
Deberías ver que se creó la aplicación y que se resolvieron las dependencias:
The template "Console Application" was created successfully.
Processing post-creation actions...
...
Restore succeeded.
Luego, navega a la carpeta TextToSpeechApiDemo
:
cd TextToSpeechApiDemo/
Además, agrega el paquete NuGet Google.Cloud.TextToSpeech.V1
al proyecto:
dotnet add package Google.Cloud.TextToSpeech.V1
info : Adding PackageReference for package 'Google.Cloud.TextToSpeech.V1' into project '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
log : Restoring packages for /home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj...
...
info : PackageReference for package 'Google.Cloud.TextToSpeech.V1' version '1.0.0-beta01' added to file '/home/atameldev/TextToSpeechDemo/TextToSpeechDemo.csproj'.
Ya está todo listo para que uses la API de Text‐to‐Speech.
5. Enumerar voces disponibles
En esta sección, primero enumerarás todas las voces disponibles en inglés para la síntesis de audio.
Primero, abre el editor de código desde la parte superior derecha de Cloud Shell:
Navega al archivo Program.cs
dentro de la carpeta TextToSpeechApiDemo
y reemplaza el código por lo siguiente:
using Google.Cloud.TextToSpeech.V1;
using System;
namespace TextToSpeechApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = TextToSpeechClient.Create();
var response = client.ListVoices("en");
foreach (var voice in response.Voices)
{
Console.WriteLine($"{voice.Name} ({voice.SsmlGender}); Language codes: {string.Join(", ", voice.LanguageCodes)}");
}
}
}
}
Tómate uno o dos minutos para estudiar el código.** En Cloud Shell, ejecuta la app:
dotnet run
Deberías ver el siguiente resultado:
en-US-Wavenet-D (Male); Language codes: en-US
en-AU-Wavenet-A (Female); Language codes: en-AU
en-AU-Wavenet-B (Male); Language codes: en-AU
en-AU-Wavenet-C (Female); Language codes: en-AU
en-AU-Wavenet-D (Male); Language codes: en-AU
en-GB-Wavenet-A (Female); Language codes: en-GB
en-GB-Wavenet-B (Male); Language codes: en-GB
en-GB-Wavenet-C (Female); Language codes: en-GB
...
en-GB-Standard-A (Female); Language codes: en-GB
en-GB-Standard-B (Male); Language codes: en-GB
en-AU-Standard-D (Male); Language codes: en-AU
Resumen
En este paso, pudiste enumerar todas las voces disponibles en inglés para síntesis de audio. También puedes encontrar la lista completa de voces disponibles en la página Voces compatibles.
6. Sintetiza audio a partir de texto
Puedes usar la API de Text-to-Speech para convertir una cadena en datos de audio. Puedes configurar el resultado de la síntesis de voz de varias maneras, como seleccionar una voz única o modular el resultado en tono, volumen, velocidad de habla y tasa de muestreo.
Para sintetizar un archivo de audio a partir de texto, navega al archivo Program.cs
dentro de la carpeta TextToSpeechApiDemo
y reemplaza el código por lo siguiente:
using Google.Cloud.TextToSpeech.V1;
using System;
using System.IO;
namespace TextToSpeechApiDemo
{
class Program
{
static void Main(string[] args)
{
var client = TextToSpeechClient.Create();
// The input to be synthesized, can be provided as text or SSML.
var input = new SynthesisInput
{
Text = "This is a demonstration of the Google Cloud Text-to-Speech API"
};
// Build the voice request.
var voiceSelection = new VoiceSelectionParams
{
LanguageCode = "en-US",
SsmlGender = SsmlVoiceGender.Female
};
// Specify the type of audio file.
var audioConfig = new AudioConfig
{
AudioEncoding = AudioEncoding.Mp3
};
// Perform the text-to-speech request.
var response = client.SynthesizeSpeech(input, voiceSelection, audioConfig);
// Write the response to the output file.
using (var output = File.Create("output.mp3"))
{
response.AudioContent.WriteTo(output);
}
Console.WriteLine("Audio content written to file \"output.mp3\"");
}
}
}
Tómate uno o dos minutos para estudiar el código y ver cómo se usa para crear un archivo de audio a partir de texto*.*
En Cloud Shell, ejecuta la app:
dotnet run
Deberías ver el siguiente resultado:
Audio content written to file "output.mp3"
En el editor de código, puedes descargar el archivo MP3 y reproducirlo de forma local en tu máquina.
Resumen
En este paso, pudiste usar la API de Text‐to‐Speech para convertir una cadena en un archivo de audio mp3. Obtén más información para crear archivos de audio de voz.
7. ¡Felicitaciones!
Aprendiste a usar la API de Text‐to‐Speech con C# para realizar diferentes tipos de transcripciones en archivos de audio.
Limpia
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos de esta guía de inicio rápido:
- Ve a la consola de Google Cloud.
- Selecciona el proyecto que deseas cerrar y haz clic en “Borrar”. en la parte superior: esta opción programa la eliminación del proyecto.
Más información
- API de Google Cloud Text-to-Speech: https://cloud.google.com/text-to-speech/docs
- C#/.NET en Google Cloud Platform: https://cloud.google.com/dotnet/
- Cliente de .NET de Google Cloud: https://googlecloudplatform.github.io/google-cloud-dotnet/
Licencia
Este trabajo cuenta con una licencia Atribución 2.0 Genérica de Creative Commons.