Envía una solicitud de reconocimiento con adaptación de voz

Puedes mejorar la exactitud de los resultados de la transcripción que obtienes de Speech-to-Text mediante la adaptación de modelo. La función de adaptación del modelo te permite especificar palabras o frases que Speech-to-Text debe reconocer con mayor frecuencia en los datos de audio que otras alternativas que, de otro modo, se podrían sugerir de otra manera. La adaptación de modelo es particularmente útil para mejorar la exactitud de la transcripción en los siguientes casos de uso:

  1. Tu audio contiene palabras o frases que suelen aparecer con frecuencia.
  2. Es probable que tu audio contenga palabras poco comunes, como nombres propios, o palabras que no existen en general.
  3. Tu audio contiene ruido o no está muy claro.

Para obtener más información sobre el uso de esta función, consulta Mejora los resultados de la transcripción con la adaptación del modelo. Para obtener más información sobre los límites de frases y caracteres por solicitud de adaptación del modelo, consulta Cuotas y límites. No todos los modelos admiten la adaptación de voz. Consulta Idiomas admitidos para ver qué modelos admiten la adaptación.

Muestra de código

La adaptación de voz es una configuración opcional de Speech-to-Text que puedes usar para personalizar los resultados de tu transcripción según tus necesidades. Consulta la documentación de RecognitionConfig para obtener más información sobre la configuración del cuerpo de la solicitud de reconocimiento.

En la siguiente muestra de código, se indica cómo mejorar la exactitud de la transcripción mediante un recurso de SpeechAdaptation: PhraseSet, CustomClass y mejora de la adaptación del modelo. Para usar un PhraseSet o CustomClass en solicitudes futuras, toma nota del recurso name, que se muestra en la respuesta cuando creas el recurso.

Si deseas obtener una lista de las clases compiladas con anterioridad disponibles para tu idioma, consulta Tokens de clase admitidos.

Python

Para obtener información sobre cómo instalar y usar la biblioteca cliente de Speech-to-Text, consulta las bibliotecas cliente de Speech-to-Text. Para obtener más información, consulta la documentación de referencia de la API de Speech-to-Text Python.

Para autenticar en Speech-to-Text, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


from google.cloud import speech_v1p1beta1 as speech

def transcribe_with_model_adaptation(
    project_id: str,
    location: str,
    storage_uri: str,
    custom_class_id: str,
    phrase_set_id: str,
) -> str:
    """Create`PhraseSet` and `CustomClasses` to create custom lists of similar
    items that are likely to occur in your input data.

    Args:
        project_id: The GCP project ID.
        location: The GCS location of the input audio.
        storage_uri: The Cloud Storage URI of the input audio.
        custom_class_id: The ID of the custom class to create

    Returns:
        The transcript of the input audio.
    """

    # Create the adaptation client
    adaptation_client = speech.AdaptationClient()

    # The parent resource where the custom class and phrase set will be created.
    parent = f"projects/{project_id}/locations/{location}"

    # Create the custom class resource
    adaptation_client.create_custom_class(
        {
            "parent": parent,
            "custom_class_id": custom_class_id,
            "custom_class": {
                "items": [
                    {"value": "sushido"},
                    {"value": "altura"},
                    {"value": "taneda"},
                ]
            },
        }
    )
    custom_class_name = (
        f"projects/{project_id}/locations/{location}/customClasses/{custom_class_id}"
    )
    # Create the phrase set resource
    phrase_set_response = adaptation_client.create_phrase_set(
        {
            "parent": parent,
            "phrase_set_id": phrase_set_id,
            "phrase_set": {
                "boost": 10,
                "phrases": [
                    {"value": f"Visit restaurants like ${{{custom_class_name}}}"}
                ],
            },
        }
    )
    phrase_set_name = phrase_set_response.name
    # The next section shows how to use the newly created custom
    # class and phrase set to send a transcription request with speech adaptation

    # Speech adaptation configuration
    speech_adaptation = speech.SpeechAdaptation(phrase_set_references=[phrase_set_name])

    # speech configuration object
    config = speech.RecognitionConfig(
        encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
        sample_rate_hertz=24000,
        language_code="en-US",
        adaptation=speech_adaptation,
    )

    # The name of the audio file to transcribe
    # storage_uri URI for audio file in Cloud Storage, e.g. gs://[BUCKET]/[FILE]

    audio = speech.RecognitionAudio(uri=storage_uri)

    # Create the speech client
    speech_client = speech.SpeechClient()

    response = speech_client.recognize(config=config, audio=audio)

    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")