En esta página se explica cómo transcribir archivos de audio a texto mediante la API Speech-to-Text en el dispositivo con espacio de aire de Google Distributed Cloud (GDC).
El servicio Speech-to-Text de Vertex AI en el dispositivo aislado de GDC reconoce la voz de los archivos de audio. Speech-to-Text convierte el audio detectado en transcripciones de texto mediante su API preentrenada.
Antes de empezar
Antes de empezar a usar la API Speech-to-Text, debes tener un proyecto con la API Speech-to-Text habilitada y las credenciales adecuadas. También puedes instalar bibliotecas de cliente para ayudarte a hacer llamadas a la API. Para obtener más información, consulta el artículo Configurar un proyecto de reconocimiento de voz.
Transcribir audio con el modelo predeterminado
Speech-to-Text realiza el reconocimiento de voz. Envías el archivo de audio del que quieres reconocer la voz 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
al hacer una solicitud de reconocimiento de voz. Este objeto indica a la API cómo debe procesar los datos de audio y qué tipo de salida se espera. Si no se especifica un modelo de forma explícita en este objeto de configuración, Speech-to-Text selecciona un modelo predeterminado.
La función de transcripción de voz en el dispositivo aislado de GDC solo admite el modelo predeterminado.
Sigue estos pasos para usar el servicio Speech-to-Text desde una secuencia de comandos de Python para transcribir la voz de un archivo de audio:
Instala la versión más reciente de la biblioteca de cliente Speech-to-Text.
Define las variables de entorno necesarias en una secuencia de comandos de Python.
Añade el siguiente código a la secuencia de comandos de Python que has creado:
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)
Haz los cambios siguientes:
ENDPOINT
: el endpoint de Speech-to-Text que utiliza tu organización. Para obtener más información, consulta el estado del servicio y los endpoints.PROJECT_ID
: tu ID de proyecto.BASE64_ENCODED_AUDIO
: los bytes de datos de audio codificados en una representación en Base64. Esta cadena empieza por caracteres que se parecen aZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv
.ENCODING
: la codificación de los datos de audio enviados en la solicitud, comoLINEAR16
.RATE_HERTZ
: frecuencia de muestreo en hercios de los datos de audio enviados en la solicitud, como16000
.LANGUAGE_CODE
: el idioma del audio proporcionado como etiqueta de idioma BCP-47. Consulta la lista de idiomas admitidos y sus códigos correspondientes.CHANNEL_COUNT
: el número de canales de los datos de audio de entrada, como1
.
Guarda la secuencia de comandos de Python.
Ejecuta la secuencia de comandos de Python para transcribir el audio:
python SCRIPT_NAME
Sustituye
SCRIPT_NAME
por el nombre que le hayas dado a tu secuencia de comandos de Python (por ejemplo,speech.py
).