El servicio de Speech-to-Text de Vertex AI en Google Distributed Cloud (GDC) aislado reconoce el habla de los archivos de audio. Speech-to-Text convierte el audio detectado en transcripciones de texto con su API previamente entrenada.
Speech-to-Text incluye Chirp, un modelo avanzado para la voz entrenado con millones de horas de datos de audio y miles de millones de oraciones de texto. Este modelo contrasta con las técnicas convencionales de reconocimiento de voz, ya que se enfoca en grandes cantidades de datos supervisados específicos de un idioma. Estas técnicas permiten a los usuarios mejorar el reconocimiento y la transcripción de los idiomas y acentos hablados.
En esta página, se muestra cómo transcribir archivos de audio a texto con la API de Speech-to-Text en Distributed Cloud.
Antes de comenzar
Antes de comenzar a usar la API de Speech-to-Text, debes tener un proyecto con la API de Speech-to-Text habilitada y las credenciales adecuadas. También puedes instalar bibliotecas cliente para ayudarte a realizar llamadas a la API. Para obtener más información, consulta Cómo configurar un proyecto de reconocimiento de voz.
Transcribe audio con el modelo predeterminado
Speech-to-Text realiza el reconocimiento de voz. Envías el archivo de audio del que deseas reconocer el habla directamente como contenido en la solicitud de la API. El sistema devuelve el texto transcrito resultante en la respuesta de la API.
Debes proporcionar un objeto de configuración RecognitionConfig
cuando realices una solicitud de reconocimiento de voz. Este objeto le indica a la API cómo procesar tus datos de audio y qué tipo de resultado esperas. Si no se especifica un modelo de forma explícita en este objeto de configuración, Speech-to-Text selecciona un modelo predeterminado.
Para obtener más información, consulta la documentación de la API de Speech
.
En el siguiente ejemplo, se transcribe el discurso de un archivo de audio con el modelo predeterminado de Speech-to-Text:
Python
Sigue estos pasos para usar el servicio de Speech-to-Text desde una secuencia de comandos de Python para transcribir voz de un archivo de audio:
Instala la versión más reciente de la biblioteca cliente de Speech-to-Text.
Configura las variables de entorno necesarias en una secuencia de comandos de Python.
Agrega el siguiente código a la secuencia de comandos de Python que creaste:
import base64 from google.cloud import speech_v1p1beta1 import google.auth from google.auth.transport import requests from google.api_core.client_options import ClientOptions audience="https://ENDPOINT:443" api_endpoint="ENDPOINT:443" def get_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return speech_v1p1beta1.SpeechClient(credentials=creds, client_options=opts) def main(): creds = None try: creds, project_id = google.auth.default() creds = creds.with_gdch_audience(audience) req = requests.Request() creds.refresh(req) print("Got token: ") print(creds.token) except Exception as e: print("Caught exception" + str(e)) raise e return creds def speech_func(creds): tc = get_client(creds) content="BASE64_ENCODED_AUDIO" audio = speech_v1p1beta1.RecognitionAudio() audio.content = base64.standard_b64decode(content) config = speech_v1p1beta1.RecognitionConfig() config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING config.sample_rate_hertz=RATE_HERTZ config.language_code="LANGUAGE_CODE" config.audio_channel_count=CHANNEL_COUNT metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = tc.recognize(config=config, audio=audio, metadata=metadata) print(resp) if __name__=="__main__": creds = main() speech_func(creds)
Reemplaza lo siguiente:
ENDPOINT
: Es el extremo de Speech-to-Text que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.PROJECT_ID
: el ID de tu proyectoBASE64_ENCODED_AUDIO
: Son los bytes de datos de audio codificados en una representación Base64. Esta cadena comienza con caracteres que se parecen aZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
. Para obtener más información, consultaRecognitionAudio
:ENCODING
: Es la codificación de los datos de audio enviados en la solicitud, comoLINEAR16
. Para obtener más información, consultaAudioEncoding
:RATE_HERTZ
: Es la tasa de muestreo en hercios de los datos de audio que se envían en la solicitud, como16000
. Para obtener más información, consultaRecognitionConfig
:LANGUAGE_CODE
: Es el idioma del audio proporcionado como una etiqueta de idioma BCP-47. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.CHANNEL_COUNT
: Es la cantidad de canales en los datos de audio de entrada, como1
. Para obtener más información, consultaRecognitionConfig
:
Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para transcribir el audio:
python SCRIPT_NAME
Reemplaza
SCRIPT_NAME
por el nombre que le diste a tu secuencia de comandos de Python, por ejemplo,speech.py
.
Transcribe audio con Chirp
Al igual que con el modelo predeterminado de Speech-to-Text, debes proporcionar un objeto de configuración RecognitionConfig
cuando realices una solicitud de reconocimiento de voz. Para usar Chirp, debes especificar explícitamente este modelo en este objeto de configuración estableciendo el valor chirp
en el campo model
.
En el siguiente ejemplo, se transcribe el habla de un archivo de audio con el modelo de Chirp:
Python
Sigue estos pasos para usar Chirp desde una secuencia de comandos de Python y transcribir el discurso de un archivo de audio:
Instala la versión más reciente de la biblioteca cliente de Speech-to-Text.
Configura las variables de entorno necesarias en una secuencia de comandos de Python.
Agrega el siguiente código a la secuencia de comandos de Python que creaste:
import base64 # Import the client library. from google.cloud import speech_v1p1beta1 from google.cloud.speech_v1p1beta1.services.speech import client from google.api_core.client_options import ClientOptions api_endpoint="ENDPOINT:443" def get_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return client.SpeechClient(credentials=creds, client_options=opts) # Specify the audio to transcribe. tc = get_client(creds) content = "BASE64_ENCODED_AUDIO" audio = speech_v1p1beta1.RecognitionAudio() audio.content = base64.standard_b64decode(content) config = speech_v1p1beta1.RecognitionConfig( encoding=speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING, sample_rate_hertz=RATE_HERTZ, audio_channel_count=CHANNEL_COUNT, language_code="LANGUAGE_CODE", model="chirp" ) # Detect speech in the audio file. metadata = (("x-goog-user-project", "projects/PROJECT_ID"),) response = tc.recognize(config=config, audio=audio, metadata=metadata) for result in response.results: print("Transcript: {}".format(result.alternatives[0].transcript))
Reemplaza lo siguiente:
ENDPOINT
: Es el extremo de Speech-to-Text que usas para tu organización. Para obtener más información, consulta el estado y los extremos del servicio.BASE64_ENCODED_AUDIO
: Son los bytes de datos de audio codificados en una representación Base64. Esta cadena comienza con caracteres que se parecen aZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
. Para obtener más información, consultaRecognitionAudio
:ENCODING
: Es la codificación de los datos de audio enviados en la solicitud, comoLINEAR16
. Para obtener más información, consultaAudioEncoding
:RATE_HERTZ
: Es la tasa de muestreo en hercios de los datos de audio que se envían en la solicitud, como16000
. Para obtener más información, consultaRecognitionConfig
:CHANNEL_COUNT
: Es la cantidad de canales en los datos de audio de entrada, como1
. Para obtener más información, consultaRecognitionConfig
:LANGUAGE_CODE
: Es el idioma del audio proporcionado como una etiqueta de idioma BCP-47. Consulta la lista de idiomas admitidos y sus respectivos códigos de idioma.PROJECT_ID
: el ID de tu proyecto
Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para transcribir el audio:
python SCRIPT_NAME
Reemplaza
SCRIPT_NAME
por el nombre que le diste a tu secuencia de comandos de Python, por ejemplo,speech.py
.