En esta sección, se muestra cómo transcribir audio de transmisión, como la entrada de de un micrófono, a texto.
El reconocimiento de voz de transmisión permite transmitir audio a Cloud Speech-to-Text y recibir resultados de reconocimiento de voz de transmisión en tiempo real a medida que se procesa el audio. También puedes consultar los límites de audio para solicitudes de reconocimiento de voz de transmisión. El reconocimiento de voz de transmisión solo está disponible a través de gRPC.
Antes de empezar
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Speech-to-Text APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Make sure that you have the following role or roles on the project: Cloud Speech Administrator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Ir a IAM - Selecciona el proyecto.
- Haz clic en Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Este suele ser el identificador de un usuario que pertenece a un grupo de identidades de personal. Para obtener más información, consulta Representa a los usuarios del grupo de personal en políticas de IAM o comunícate con el administrador.
- En la lista Seleccionar un rol, elige uno.
- Para otorgar roles adicionales, haz clic en Agregar otro rol y agrega uno más.
- Haz clic en Guardar.
Install the Google Cloud CLI.
Configura gcloud CLI para usar tu identidad federada.
Para obtener más información, consulta Accede a la gcloud CLI con tu identidad federada.
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud initLas bibliotecas cliente pueden usar credenciales predeterminadas de la aplicación para autenticarse de manera sencilla con las APIs de Google y enviarles solicitudes. Con las credenciales predeterminadas de la aplicación, puedes probar tu aplicación de forma local y, luego, implementarla sin cambiar el código subyacente. Para obtener más información, consulta Autentícate para usar las bibliotecas cliente.
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
También, asegúrate de tener instalada la biblioteca cliente.
Realiza el reconocimiento de voz de transmisión en un archivo local
El siguiente bloque de código contiene un ejemplo para realizar un reconocimiento de voz de transmisión en un archivo de audio local. El audio que se envía en las solicitudes de una transmisión tiene un límite de 25 KB. Este límite se aplica a la solicitud
StreamingRecognizeinicial y al tamaño de cada mensaje individual de la transmisión. Si se supera este límite, se generará un error.Python
import os from google.cloud.speech_v2 import SpeechClient from google.cloud.speech_v2.types import cloud_speech as cloud_speech_types PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT") def transcribe_streaming_v2( stream_file: str, ) -> cloud_speech_types.StreamingRecognizeResponse: """Transcribes audio from an audio file stream using Google Cloud Speech-to-Text API. Args: stream_file (str): Path to the local audio file to be transcribed. Example: "resources/audio.wav" Returns: list[cloud_speech_types.StreamingRecognizeResponse]: A list of objects. Each response includes the transcription results for the corresponding audio segment. """ # Instantiates a client client = SpeechClient() # Reads a file as bytes with open(stream_file, "rb") as f: audio_content = f.read() # In practice, stream should be a generator yielding chunks of audio data chunk_length = len(audio_content) // 5 stream = [ audio_content[start : start + chunk_length] for start in range(0, len(audio_content), chunk_length) ] audio_requests = ( cloud_speech_types.StreamingRecognizeRequest(audio=audio) for audio in stream ) recognition_config = cloud_speech_types.RecognitionConfig( auto_decoding_config=cloud_speech_types.AutoDetectDecodingConfig(), language_codes=["en-US"], model="chirp_3", ) streaming_config = cloud_speech_types.StreamingRecognitionConfig( config=recognition_config ) config_request = cloud_speech_types.StreamingRecognizeRequest( recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_", streaming_config=streaming_config, ) def requests(config: cloud_speech_types.RecognitionConfig, audio: list) -> list: yield config yield from audio # Transcribes the audio into text responses_iterator = client.streaming_recognize( requests=requests(config_request, audio_requests) ) responses = [] for response in responses_iterator: responses.append(response) for result in response.results: print(f"Transcript: {result.alternatives[0].transcript}") return responsesSi bien puedes transmitir un archivo de audio local a la API de Speech-to-Text, se recomienda que realices un reconocimiento de audio síncrono.
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
-
Optional: Revoke the authentication credentials that you created, and delete the local credential file.
gcloud auth application-default revoke
-
Optional: Revoke credentials from the gcloud CLI.
gcloud auth revoke
Consola
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
¿Qué sigue?
- Consulta la documentación de referencia para el reconocimiento de transmisión.
- Obtén información para transcribir archivos de audio cortos.
- Obtén información para transcribir archivos de audio largos.
- Para mejorar el rendimiento y la exactitud, además de obtener otras sugerencias, consulta la documentación de las prácticas recomendadas.
-