Información general
Puedes usar la función adaptación de modelos para ayudar a Speech-to-Text a reconocer palabras o frases concretas con más frecuencia que otras opciones que, de otro modo, se habrían sugerido. Por ejemplo, supongamos que tus datos de audio suelen incluir la palabra "tiempo". Cuando Speech-to-Text detecte la palabra "tiempo", quieres que la transcriba como "tiempo" más a menudo que como "cuándo". En este caso, puedes usar la adaptación de modelos para que Speech-to-Text reconozca "tiempo".
La adaptación de modelos es especialmente útil en los siguientes casos prácticos:
Mejorar la precisión de las palabras y frases que aparecen con frecuencia en tus datos de audio. Por ejemplo, puedes alertar al modelo de reconocimiento sobre los comandos de voz que suelen usar tus usuarios.
Se amplía el vocabulario de palabras reconocidas por la API Speech-to-Text. Speech-to-Text incluye un vocabulario muy amplio. Sin embargo, si tus datos de audio suelen contener palabras que no se usan con frecuencia en el lenguaje general (como nombres propios o palabras específicas de un dominio), puedes añadirlas mediante la adaptación del modelo.
Mejorar la precisión de la transcripción de voz cuando el audio proporcionado contiene ruido o no es muy nítido.
Si quieres, puedes ajustar la desviación del modelo de reconocimiento con la función de refuerzo de la adaptación de modelos.
Mejorar el reconocimiento de palabras y frases
Para aumentar la probabilidad de que Speech-to-Text reconozca la palabra "tiempo" al transcribir tus datos de audio, puedes enviar la palabra "tiempo" en el objeto PhraseSet de un recurso SpeechAdaptation.
Si proporcionas una frase de varias palabras, es más probable que Speech-to-Text reconozca esas palabras en secuencia. Si proporcionas una frase, también aumentará la probabilidad de reconocer partes de la frase, incluidas palabras concretas. Consulta la página Límites de contenido para ver los límites del número y el tamaño de estas frases.
Mejorar el reconocimiento con clases
Las clases representan conceptos comunes que aparecen en el lenguaje natural, como las unidades monetarias y las fechas del calendario. Las clases te ayudan a mejorar la precisión de la transcripción de grupos grandes de palabras que se corresponden con un concepto común, pero que no siempre incluyen palabras o frases idénticas.
Por ejemplo, supongamos que tus datos de audio incluyen grabaciones de personas que dicen su dirección postal. Puede que tengas una grabación de audio de alguien diciendo "Mi casa está en la calle Principal, 123, es la cuarta casa de la izquierda". En este caso, quieres que Speech-to-Text reconozca la primera secuencia de números ("123") como una dirección en lugar de como un ordinal ("ciento veintitrés"). Sin embargo, no todas las personas viven en "123 Main Street". No es práctico enumerar todas las direcciones postales posibles en un recurso PhraseSet. En su lugar, puedes usar una clase para indicar que se debe reconocer un número de calle independientemente de cuál sea. En este ejemplo, Speech-to-Text podría transcribir con mayor precisión frases como "123 Main Street" y "987 Grand Boulevard" porque ambas se reconocen como números de dirección.
Tokens de clase
Para usar una clase en la adaptación de modelos, incluye un token de clase en el campo phrases
de un recurso PhraseSet. Consulta la lista de tokens de clase admitidos para ver qué tokens están disponibles en tu idioma. Por ejemplo, para mejorar la transcripción de los números de las direcciones del audio de origen, proporciona el valor $ADDRESSNUM dentro de una frase en un PhraseSet.
Puedes usar clases como elementos independientes en la matriz phrases o insertar uno o varios tokens de clase en frases de varias palabras más largas. Por ejemplo, puedes indicar un número de dirección en una frase más larga incluyendo el token de clase en una cadena:
["my address is $ADDRESSNUM"]. Sin embargo, esta frase no será útil en los casos en los que el audio contenga una frase similar, pero no idéntica, como "Estoy en la calle Principal, número 123". Para facilitar el reconocimiento de frases similares, es importante incluir también el token de clase por sí solo: ["my address is $ADDRESSNUM",
"$ADDRESSNUM"]. Si usas un token de clase no válido o mal formado, Speech-to-Text lo ignora sin activar un error, pero sigue usando el resto de la frase para el contexto.
Clases personalizadas
También puedes crear tu propio CustomClass, una clase compuesta por tu lista personalizada de elementos o valores relacionados. Por ejemplo, quieres transcribir datos de audio que probablemente incluyan el nombre de uno de los cientos de restaurantes de una zona. Los nombres de restaurantes son relativamente raros en el habla general y, por lo tanto, es menos probable que el modelo de reconocimiento los elija como respuesta "correcta". Puedes sesgar el modelo de reconocimiento para que identifique correctamente estos nombres cuando aparezcan en tu audio mediante una clase personalizada.
Para usar una clase personalizada, cree un recurso CustomClass
que incluya el nombre de cada restaurante como ClassItem. Las clases personalizadas funcionan de la misma forma que los tokens de clase predefinidos.
Un phrase puede incluir tanto tokens de clase precompilados como clases personalizadas.
Afinar los resultados de las transcripciones con la función Aumento
De forma predeterminada, la adaptación del modelo tiene un efecto relativamente pequeño, sobre todo en el caso de las frases de una palabra. La función Potenciar de la adaptación de modelos te permite aumentar el sesgo del modelo de reconocimiento asignando más peso a algunas frases que a otras. Te recomendamos que implementes la función de impulso si se cumplen todas las condiciones siguientes:
- Ya has implementado la adaptación de modelos.
- Quieres ajustar aún más la intensidad de los efectos de adaptación del modelo en los resultados de la transcripción. Para saber si la función de impulso está disponible en tu idioma, consulta la página de idiomas disponibles.
Por ejemplo, tienes muchas grabaciones de personas que preguntan por la "tarifa para entrar en la feria del condado", donde la palabra "feria" aparece con más frecuencia que "tarifa". En este caso, puedes usar la adaptación del modelo para aumentar la probabilidad de que el modelo reconozca tanto "fair" como "fare" añadiéndolos como phrases en un recurso PhraseSet. De esta forma, Speech-to-Text reconocerá "fair" y "fare" con más frecuencia que, por ejemplo, "hare" o "lair".
Sin embargo, "fair" debería reconocerse con más frecuencia que "fare" debido a que aparece con más frecuencia en el audio. Es posible que ya hayas transcrito el audio con la API Speech-to-Text y hayas detectado un gran número de errores al reconocer la palabra correcta ("fair"). En este caso, puede usar la función Impulso para asignar un valor de impulso más alto a "fair" que a "fare". El valor ponderado más alto asignado a "fair" sesga la API Speech-to-Text hacia la elección de "fair" con más frecuencia que "fare". Sin valores de refuerzo, el modelo de reconocimiento reconocerá "fair" y "fare" con la misma probabilidad.
Aspectos básicos de las promociones
Cuando usas la función de aumentar, asignas un valor ponderado a los elementos phrase de un recurso PhraseSet. Transcripción de voz hace referencia a este valor ponderado al seleccionar una posible transcripción de las palabras de tus datos de audio. Cuanto mayor sea el valor, mayor será la probabilidad de que la función de conversión de voz a texto elija esa palabra o frase entre las alternativas posibles.
Si asigna un valor de refuerzo a una frase de varias palabras, el refuerzo se aplica a toda la frase y solo a ella. Por ejemplo, quieres asignar un valor de impulso a la frase "Mi exposición favorita del Museo Americano de Historia Natural es la ballena azul". Si añades esa frase a un objeto phrase y le asignas un valor de refuerzo, el modelo de reconocimiento tendrá más probabilidades de reconocer esa frase en su totalidad, palabra por palabra.
Si no obtienes los resultados que buscas al potenciar una frase de varias palabras, te recomendamos que añadas todos los bigramas (2 palabras en orden) que componen la frase como elementos phrase adicionales y que asignes valores de potenciación a cada uno. Siguiendo con el ejemplo anterior, podría investigar si le interesa añadir bigramas y endgramas adicionales (más de dos palabras), como "mi favorito", "mi pieza favorita", "pieza favorita", "mi pieza favorita del Museo Americano de Historia Natural", "Museo Americano de Historia Natural" y "ballena azul". De esta forma, es más probable que el modelo de reconocimiento de STT reconozca frases relacionadas en tu audio que contengan partes de la frase original potenciada, pero que no coincidan palabra por palabra.
Definir valores de impulso
Los valores de impulso deben ser un valor float mayor que 0. El límite máximo práctico de los valores de impulso es 20. Para obtener los mejores resultados, experimenta con tus resultados de transcripción ajustando los valores de refuerzo hasta que obtengas resultados de transcripción precisos.
Si los valores de refuerzo son más altos, se pueden producir menos falsos negativos, que son los casos en los que la palabra o la frase se han pronunciado en el audio, pero Speech-to-Text no las ha reconocido correctamente. Sin embargo, la función de refuerzo también puede aumentar la probabilidad de que se produzcan falsos positivos, es decir, casos en los que la palabra o la frase aparecen en la transcripción aunque no se hayan pronunciado en el audio.
Caso práctico de ejemplo con adaptación de modelos
En el siguiente ejemplo se explica el proceso de uso de la adaptación de modelos para transcribir una grabación de audio de una persona que dice "The word is fare" (La palabra es tarifa). En este caso, sin adaptación de voz, Speech-to-Text identifica la palabra "fair". Con la adaptación de voz, Transcripción de voz puede identificar la palabra "tarifa".
Antes de empezar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
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 Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
Install the Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
-
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 Conceder acceso.
-
En el campo Nuevos principales, introduce tu identificador de usuario. Normalmente, se trata de la dirección de correo de una cuenta de Google.
- En la lista Selecciona un rol, elige un rol.
- Para conceder más roles, haz clic en Añadir otro rol y añade cada rol adicional.
- Haz clic en Guardar.
Install the Google Cloud CLI.
Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
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.
- En el siguiente ejemplo se crea un
PhraseSetcon la frase "fare" y se añade comoinline_phrase_seten una solicitud de reconocimiento: - En este ejemplo se crea un recurso
PhraseSetcon la misma frase y, a continuación, se hace referencia a él en una solicitud de reconocimiento: - En el siguiente ejemplo se crea un
CustomClasscon un elemento "fare" y el nombre "fare". A continuación, hace referencia alCustomClassen uninline_phrase_seten una solicitud de reconocimiento: - En este ejemplo se crea un recurso
CustomClasscon el mismo elemento. A continuación, crea un recursoPhraseSetcon una frase que hace referencia al nombre de recursoCustomClass. A continuación, hace referencia al recursoPhraseSeten una solicitud de reconocimiento: -
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
- 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.
- 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.
- Consulta la lista de tokens de clase admitidos.
- Consulta cómo transcribir archivos de audio cortos.
- Consulta cómo transcribir audio de streaming.
- Consulta cómo transcribir archivos de audio largos.
Las bibliotecas de cliente pueden usar las credenciales predeterminadas de la aplicación para autenticarse fácilmente en las APIs de Google y enviar solicitudes a esas APIs. Con las credenciales predeterminadas de la aplicación, puedes probar tu aplicación de forma local e implementarla sin cambiar el código subyacente. Para obtener más información, consulta el artículo Autenticarse para usar bibliotecas de cliente.
También debes instalar la biblioteca de cliente.
Mejorar la transcripción con una PhraseSet
Python
Python
Mejorar los resultados de las transcripciones con un CustomClass
Python
Python
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.
Consola
gcloud