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 se encuentre con la palabra "tiempo", quieres que la transcriba como "tiempo" con más frecuencia que "si". En este caso, puedes usar la adaptación del modelo 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 se repiten con frecuencia en los 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 Speech-to-Text. Speech-to-Text incluye un vocabulario muy amplio. Sin embargo, si tus datos de audio suelen contener palabras que son poco frecuentes en el lenguaje general (como nombres propios o palabras específicas de un dominio), puedes añadirlas mediante la adaptación de modelos.
Mejora 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
del 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 que se reconozcan partes de la frase, incluidas palabras concretas. Consulta la página de 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. Es posible que tengas una grabación de audio de alguien diciendo "Mi casa está en la calle Principal, 123, la cuarta casa de la izquierda". En este caso, quieres que la función de voz a texto reconozca la primera secuencia de números ("123") como una dirección en lugar de como un ordinal ("ciento veintitrés"). Sin embargo, no todos los usuarios 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 del número real. 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 más largas de varias palabras. 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 igual que los tokens de clase predefinidos. Un phrase
puede incluir tokens de clase predefinidos y clases personalizadas.
Afinar los resultados de las transcripciones con la función Aumento
De forma predeterminada, la adaptación de modelos tiene un efecto relativamente pequeño, sobre todo en el caso de las frases de una sola palabra. La función aumento 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 la adaptación del modelo en los resultados de la transcripción. Para saber si la función de refuerzo 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", con la palabra "feria" que 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, la función de conversión de voz a texto 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 de ponderación más alto asignado a "fair" sesga la API Speech-to-Text para que elija "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 a texto 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, más probable será que Speech-to-Text 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, será más probable que el modelo de reconocimiento reconozca 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 (dos 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 conviene 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, el modelo de reconocimiento de STT tendrá más probabilidades de reconocer frases relacionadas en tu audio que contengan partes de la frase potenciada original, pero que no coincidan palabra por palabra.
Definir valores de aumento
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 las transcripciones ajustando los valores de refuerzo hasta que obtengas transcripciones precisas.
Si los valores de refuerzo son más altos, se pueden producir menos falsos negativos, que son casos en los que la palabra o la frase se ha pronunciado en el audio, pero Speech-to-Text no la 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 alguien 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, Speech-to-Text 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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.enable
permission. 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
PhraseSet
con la frase "fare" y se añade comoinline_phrase_set
en una solicitud de reconocimiento: - En este ejemplo se crea un recurso
PhraseSet
con la misma frase y, a continuación, se hace referencia a él en una solicitud de reconocimiento: - En el siguiente ejemplo se crea un
CustomClass
con un elemento "fare" y el nombre "fare". A continuación, hace referencia aCustomClass
en uninline_phrase_set
en una solicitud de reconocimiento: - En este ejemplo se crea un recurso
CustomClass
con el mismo elemento. A continuación, crea un recursoPhraseSet
con una frase que hace referencia al nombre de recursoCustomClass
. A continuación, hace referencia al recursoPhraseSet
en 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.
- Practica la transcripción de 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