Descripción general
En Speech-to-Text, puedes usar la función de adaptación de modelos para que se reconozcan palabras o frases específicas con más frecuencia que otras opciones que podrían sugerirse. Por ejemplo, supongamos que tus datos de audio suelen incluir la palabra "hola". Cuando Speech-to-Text detecta esta palabra, querrás que la transcriba como "hola" con más frecuencia que "ola". En este caso, puedes usar la adaptación de modelos para orientar a Speech-to-Text con el objetivo de que reconozca "hola".
La adaptación de modelos resulta útil en los casos de uso que se indican a continuación:
Mejorar la exactitud de las palabras y frases que aparecen con frecuencia en los datos de audio. Por ejemplo, puedes alertar al modelo de reconocimiento sobre los comandos por voz que suelen pronunciar los usuarios
Ampliar el vocabulario de palabras que reconoce Speech-to-Text. El vocabulario de Speech-to-Text es muy amplio. Sin embargo, si tus datos de audio suelen incluir palabras poco comunes en el lenguaje general (como nombres propios o palabras específicas de un dominio), puedes agregarlas con la adaptación de modelos
Mejorar la exactitud de la transcripción de voz cuando el audio proporcionado contiene ruido o no es muy claro
De manera opcional, puedes ajustar la orientación del modelo de reconocimiento con la función de mejora de la adaptación de modelos.
Mejora el reconocimiento de palabras y frases
Para aumentar la probabilidad de que Speech-To-Text reconozca la palabra
"hola" cuando transcriba tus datos de audio, puedes pasar esta palabra única
por el objeto PhraseSet en un
recurso de SpeechAdaptation.
Cuando proporcionas una frase de varias palabras, es más probable que Speech-to-Text las reconozca en secuencia. Con esta frase, también aumenta la probabilidad de reconocer partes de ella, incluidas las palabras individuales. Consulta la página límites de contenido para conocer los límites de la cantidad y el tamaño de estas frases.
Mejora el reconocimiento con clases
Las clases representan conceptos comunes que aparecen en el lenguaje natural, como unidades monetarias y fechas del calendario. Con una clase, puedes mejorar la exactitud de la transcripción de grupos grandes de palabras que se asignan a 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 mencionan su dirección. Podrías tener una grabación de audio de alguien que dice "Mi
casa está en Calle Principal 123, la cuarta casa a la izquierda". En este caso, querrás
que Speech-to-Text reconozca la secuencia de números ("123") como una dirección,
en vez de un número ordinal ("centésimo vigésimo tercero"). Sin embargo, no todas
las personas viven en "Calle Principal 123". No es práctico crear una lista de todas las direcciones posibles en un recurso PhraseSet. En su lugar, puedes usar una clase para indicar
que un número de calle debe reconocerse sin importar cuál sea el número. En este ejemplo,
Speech-to-Text podría transcribir con mayor exactitud frases
como "Calle Principal 123" y "Gran Boulevard 987" porque ambas se reconocen como números
de direcciones.
Tokens de clases
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 clases admitidos para ver cuáles están disponibles para tu idioma. Por ejemplo,
para mejorar la transcripción de los números de direcciones de un audio de origen,
proporciona el valor $ADDRESSNUM en una frase de un PhraseSet.
Puedes usar clases como elementos independientes en el array phrases o incorporar
uno o más tokens de clases 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 incluya una frase similar, pero no idéntica, como: "Estoy en
Calle Principal 123". Para facilitar el reconocimiento de frases similares, es importante
incluir, además, el token de clase por separado: ["my address is $ADDRESSNUM",
"$ADDRESSNUM"]. En Speech-to-Text, si usas un token de clase no válido
o con errores de formato, este se ignorará sin activar un error, pero aún
usará el resto de la frase para el contexto.
Clases personalizadas
También puedes crear tu propia CustomClass, una clase compuesta por tu lista personalizada
de elementos o valores relacionados. Por ejemplo, puedes transcribir datos de audio que es
probable que incluyan el nombre de cualquiera de cientos de restaurantes
regionales. Los nombres de restaurantes no aparecen con frecuencia en
el lenguaje general y, por lo tanto, es menos probable que el modelo de reconocimiento los elija como respuesta
"correcta". Puedes orientar al modelo de reconocimiento para que identifique correctamente estos
nombres cuando aparezcan en un audio con una clase personalizada.
Para usar una clase personalizada, crea un recurso
CustomClass que incluya cada nombre de restaurante como ClassItem. Las clases personalizadas
funcionan de la misma manera que los tokens de clases precompilados.
Una phrase puede incluir tokens de clases precompilados y clases personalizadas.
Ajusta los resultados de transcripción con una mejora
De forma predeterminada, la adaptación de modelos genera un efecto bastante menor, en especial para las frases de una palabra. La función de mejora de la adaptación de modelos permite orientar mejor al modelo de reconocimiento asignando más ponderaciones a algunas frases que a otras. Te recomendamos que implementes la mejora si se cumplen todas las condiciones que se indican a continuación:
- Ya implementaste la adaptación de modelos.
- Quieres ajustar aún más la intensidad de los efectos de la adaptación de modelos en los resultados de la transcripción. Para ver si la función de mejora está disponible para tu idioma, consulta la página de idiomas compatibles.
Por ejemplo, tienes muchas grabaciones de personas que preguntan si "se normalizaron
los vuelos hacia Asia", en las que la palabra "Asia" aparece con más frecuencia que
"hacia". En este caso, puedes usar la adaptación de modelos para aumentar la probabilidad
de que el modelo reconozca “Asia” y “hacia” agregándolas como phrases a un
recurso PhraseSet. Esto le indicará a Speech-to-Text que reconozca
“Asia” y “hacia” con más frecuencia que, por ejemplo, “lacia” o “fascia”.
Sin embargo, "Asia" debe reconocerse más a menudo que "hacia", ya que aparece con más frecuencia en el audio. Es posible que ya hayas transcrito el audio con la API de Speech-to-Text y hayas encontrado una gran cantidad de errores relacionados con el reconocimiento de la palabra correcta ("Asia"). En este caso, te recomendamos usar la función de mejora para asignar un valor de mejora más alto a "Asia" que a "hacia". El valor ponderado asignado a “Asia”, que es más alto, orienta a la API de Speech-to-Text para que elija “Asia” con más frecuencia que “hacia”. Sin los valores de mejora, el modelo de reconocimiento reconocerá "Asia" y "hacia" con la misma probabilidad.
Conceptos básicos de la mejora
Cuando se usa la mejora, se asigna un valor ponderado a los elementos de una phrase
de un recurso PhraseSet. Speech-to-Text hace referencia a este valor ponderado
cuando elige una transcripción posible de palabras incluidas en los datos de audio. Cuanto más alto sea el valor,
mayor será la probabilidad de que elija esa palabra o frase entre las alternativas posibles.
Si asignas un valor de mejora a una frase de varias palabras, la mejora se aplica solo a
la frase completa. Por ejemplo, supongamos que quieres asignar un
valor de mejora a la frase "Mi exposición favorita del Museo Estadounidense de Historia Natural
es la ballena azul". Si agregas esa frase a un objeto phrase y
asignas un valor de mejora, es más probable que el modelo de reconocimiento reconozca
esa frase en su totalidad palabra por palabra.
Si no obtienes los resultados que buscas mejorando una frase de varias palabras,
te sugerimos que agregues todos los bigramas (2 palabras, en orden) que compongan la frase
como elementos phrase adicionales y asignes los valores de mejora a cada uno. Siguiendo
con el ejemplo anterior, podrías investigar cómo agregar bigramas y n-gramas adicionales
(más de dos palabras), como "mi favorita", "mi exposición favorita", "exposición
favorita", "mi exposición favorita del Museo Estadounidense de Historia
Natural", "Museo Estadounidense de Historia Natural" y "ballena azul". Es más probable que el
modelo de reconocimiento STT reconozca frases relacionadas en el audio que
incluyan partes de la frase original mejorada, pero no coincidan palabra por palabra.
Establece valores de mejora
Los valores de mejora deben ser un número de punto flotante mayor que 0. El límite máximo práctico para los valores de mejora es de 20. Para mejorar la calidad, experimenta con los resultados de la transcripción aumentando o disminuyendo los valores de mejora hasta que obtengas resultados precisos.
Los valores de mejora más altos pueden generar menos falsos negativos, que son casos en los que la palabra o la frase apareció en el audio, pero Speech-to-Text no la reconoció correctamente. Sin embargo, la mejora también puede aumentar la probabilidad de falsos positivos. Es decir, casos en los que la palabra o la frase aparece en la transcripción aunque no se haya mencionado en el audio.
Caso de uso de ejemplo sobre la adaptación de modelos
En el ejemplo siguiente, se explica el proceso de adaptación de modelos para transcribir una grabación de audio de una persona que dice "La palabra es hacia". En este caso, sin la adaptación de voz, Speech-to-Text identifica la palabra "Asia". En cambio, con la adaptación de voz, Speech-to-Text puede identificar la palabra "hacia".
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 Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- 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.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI 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 Otorgar acceso.
-
En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.
- 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.
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI 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 ejemplo siguiente, se crea un
PhraseSetcon la frase "hacia" y se agrega como uninline_phrase_seten una solicitud de reconocimiento: - En esta muestra, se crea un recurso
PhraseSetcon la misma frase y, luego, se hace referencia a él en una solicitud de reconocimiento: - En el ejemplo siguiente, se crea una
CustomClasscon un elemento "hacia" y un nombre "hacia". Luego, hace referencia aCustomClassen uninline_phrase_setde una solicitud de reconocimiento: - En este ejemplo, se crea un recurso
CustomClasscon el mismo elemento. Luego, crea un recursoPhraseSetcon una frase que hace referencia al nombre del recursoCustomClass. Luego, hace referencia al recursoPhraseSetde 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.
- Revisa la lista de tokens de clases compatibles.
- Obtén más información para transcribir archivos de audio cortos.
- Obtén más información para transcribir audio con transmisión.
- Obtén información para transcribir archivos de audio largos.
Las 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.
También, asegúrate de tener instalada la biblioteca cliente.
Mejora la transcripción con un PhraseSet
Python
Python
Mejora los resultados de la transcripción con una CustomClass
Python
Python
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.
Consola
gcloud