Enviar uma solicitação de reconhecimento com a adaptação de fala

Melhore a precisão dos resultados de transcrição que recebe da Speech-to-Text usando a adaptação de fala. O recurso de adaptação de fala permite especificar palavras e/ou frases que o STT precisa reconhecer com mais frequência nos dados de áudio do que outras alternativas que, de outra forma, poderiam ser sugeridas. A adaptação de modelos é especialmente útil para melhorar a precisão da transcrição nos seguintes casos de uso:

  1. Seu áudio contém palavras/frases que podem ocorrer com muita frequência.
  2. É provável que seu áudio contenha palavras raras (como nomes próprios) ou palavras que não existem para uso geral.
  3. Seu áudio contém ruído ou não é muito claro.

Consulte a página de conceitos de adaptação de modelos para mais informações sobre o uso desse recurso. Consulte a página de cotas e limites para informações sobre limites de frases e caracteres por solicitação de adaptação de modelo.

A amostra de código a seguir demonstra como melhorar a precisão da transcrição usando um recurso SpeechAdaptation: PhraseSet, CustomClass e otimização de adaptação de modelos. Consulte a página tokens de classe para ver uma lista das classes pré-criadas disponíveis para seu idioma.

Python


from google.cloud import speech_v1p1beta1 as speech

def transcribe_with_model_adaptation(
    project_id, location, storage_uri, custom_class_id, phrase_set_id
):

    """
    Create`PhraseSet` and `CustomClasses` to create custom lists of similar
    items that are likely to occur in your input data.
    """

    # 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("Transcript: {}".format(result.alternatives[0].transcript))