Reconhecedores

A API Speech-to-Text V2 suporta um Google Cloud recurso denominado reconhecedores. Os reconhecedores representam uma configuração de reconhecimento armazenada e reutilizável. Pode usá-los para agrupar logicamente as transcrições ou o tráfego da sua aplicação.

Antes de começar

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Speech-to-Text APIs.

    Enable the APIs

  5. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

    4. 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

    1. In the Google Cloud console, go to the IAM page.

      Aceder ao IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.

    5. Na lista Selecionar uma função, selecione uma função.
    6. Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
    7. Clique em Guardar.
  6. Install the Google Cloud CLI.

  7. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  8. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the Speech-to-Text APIs.

    Enable the APIs

  12. Make sure that you have the following role or roles on the project: Cloud Speech Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

    4. 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

    1. In the Google Cloud console, go to the IAM page.

      Aceder ao IAM
    2. Selecione o projeto.
    3. Clique em Conceder acesso.
    4. No campo Novos responsáveis, introduza o identificador do utilizador. Normalmente, este é o endereço de email de uma Conta Google.

    5. Na lista Selecionar uma função, selecione uma função.
    6. Para conceder funções adicionais, clique em Adicionar outra função e adicione cada função adicional.
    7. Clique em Guardar.
  13. Install the Google Cloud CLI.

  14. Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro, tem de iniciar sessão na CLI gcloud com a sua identidade federada.

  15. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  16. As bibliotecas cliente podem usar as Credenciais padrão da aplicação para fazer a autenticação facilmente com as APIs Google e enviar pedidos para essas APIs. Com as credenciais predefinidas da aplicação, pode testar a sua aplicação localmente e implementá-la sem alterar o código subjacente. Para mais informações, consulte o artigo Autentique-se para usar bibliotecas de cliente.

  17. 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.

  18. Certifique-se também de que instalou a biblioteca de cliente.

    Compreenda os reconhecedores

    Os reconhecedores são configurações de reconhecimento configuráveis e reutilizáveis. A criação de reconhecedores com a configuração de reconhecimento usada com frequência ajuda a simplificar e a reduzir o tamanho dos pedidos de reconhecimento.

    O elemento principal de um reconhecedor é a sua configuração predefinida. Esta é a configuração para cada pedido de reconhecimento que este reconhecedor realiza. Pode substituir esta predefinição por pedido. Mantenha a configuração predefinida para as funcionalidades de que precisa em todos os pedidos de um determinado reconhecedor, enquanto substitui funcionalidades específicas para pedidos específicos.

    Reutilize os reconhecedores com a maior frequência possível. A criação de um para cada pedido aumenta drasticamente a latência da sua aplicação e consome as suas quotas de recursos. Crie-os com pouca frequência durante a integração e a configuração e, em seguida, reutilize-os para pedidos de reconhecimento.

    Crie reconhecedores

    Segue-se um exemplo de criação de um reconhecedor que pode ser usado para enviar pedidos de reconhecimento:

    Python

    import os
    
    from google.cloud.speech_v2 import SpeechClient
    from google.cloud.speech_v2.types import cloud_speech
    
    PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
    
    
    def create_recognizer(recognizer_id: str) -> cloud_speech.Recognizer:
        """Сreates a recognizer with an unique ID and default recognition configuration.
        Args:
            recognizer_id (str): The unique identifier for the recognizer to be created.
        Returns:
            cloud_speech.Recognizer: The created recognizer object with configuration.
        """
        # Instantiates a client
        client = SpeechClient()
    
        request = cloud_speech.CreateRecognizerRequest(
            parent=f"projects/{PROJECT_ID}/locations/global",
            recognizer_id=recognizer_id,
            recognizer=cloud_speech.Recognizer(
                default_recognition_config=cloud_speech.RecognitionConfig(
                    language_codes=["en-US"], model="long"
                ),
            ),
        )
        # Sends the request to create a recognizer and waits for the operation to complete
        operation = client.create_recognizer(request=request)
        recognizer = operation.result()
    
        print("Created Recognizer:", recognizer.name)
        return recognizer
    
    

    Use um reconhecedor existente para enviar pedidos

    Segue-se um exemplo de envio de vários pedidos de reconhecimento com o mesmo reconhecedor:

    Python

    import os
    
    from google.cloud.speech_v2 import SpeechClient
    from google.cloud.speech_v2.types import cloud_speech
    
    PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
    
    
    def transcribe_reuse_recognizer(
        audio_file: str,
        recognizer_id: str,
    ) -> cloud_speech.RecognizeResponse:
        """Transcribe an audio file using an existing recognizer.
        Args:
            audio_file (str): Path to the local audio file to be transcribed.
                Example: "resources/audio.wav"
            recognizer_id (str): The ID of the existing recognizer to be used for transcription.
        Returns:
            cloud_speech.RecognizeResponse: The response containing the transcription results.
        """
        # Instantiates a client
        client = SpeechClient()
    
        # Reads a file as bytes
        with open(audio_file, "rb") as f:
            audio_content = f.read()
    
        request = cloud_speech.RecognizeRequest(
            recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/{recognizer_id}",
            content=audio_content,
        )
    
        # Transcribes the audio into text
        response = client.recognize(request=request)
    
        for result in response.results:
            print(f"Transcript: {result.alternatives[0].transcript}")
    
        return response
    
    

    Ative funcionalidades num reconhecedor

    Os reconhecedores podem ser usados para ativar várias funcionalidades no reconhecimento, como a pontuação automática ou a filtragem de obscenidades.

    Segue-se um exemplo de ativação da pontuação automática num reconhecedor, que ativa a pontuação automática no pedido de reconhecimento através deste reconhecedor:

    Python

    
    from google.cloud.speech_v2 import SpeechClient
    from google.cloud.speech_v2.types import cloud_speech
    
    from google.api_core.exceptions import NotFound
    
    # Instantiates a client
    client = SpeechClient()
    
    # TODO(developer): Update and un-comment below line
    # PROJECT_ID = "your-project-id"
    # recognizer_id = "id-recognizer"
    recognizer_name = (
        f"projects/{PROJECT_ID}/locations/global/recognizers/{recognizer_id}"
    )
    try:
        # Use an existing recognizer
        recognizer = client.get_recognizer(name=recognizer_name)
        print("Using existing Recognizer:", recognizer.name)
    except NotFound:
        # Create a new recognizer
        request = cloud_speech.CreateRecognizerRequest(
            parent=f"projects/{PROJECT_ID}/locations/global",
            recognizer_id=recognizer_id,
            recognizer=cloud_speech.Recognizer(
                default_recognition_config=cloud_speech.RecognitionConfig(
                    auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
                    language_codes=["en-US"],
                    model="latest_long",
                    features=cloud_speech.RecognitionFeatures(
                        enable_automatic_punctuation=True,
                    ),
                ),
            ),
        )
        operation = client.create_recognizer(request=request)
        recognizer = operation.result()
        print("Created Recognizer:", recognizer.name)
    
    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        audio_content = f.read()
    
    request = cloud_speech.RecognizeRequest(
        recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/{recognizer_id}",
        content=audio_content,
    )
    
    # Transcribes the audio into text
    response = client.recognize(request=request)
    
    for result in response.results:
        print(f"Transcript: {result.alternatives[0].transcript}")
    

    Substitua as funcionalidades do reconhecedor em pedidos de reconhecimento

    Segue-se um exemplo de como ativar várias funcionalidades num reconhecedor, mas desativar a pontuação automática para este pedido de reconhecimento:

    Python

    import os
    
    from google.cloud.speech_v2 import SpeechClient
    from google.cloud.speech_v2.types import cloud_speech
    from google.protobuf.field_mask_pb2 import FieldMask
    
    PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
    
    
    def transcribe_override_recognizer(
        audio_file: str,
        recognizer_id: str,
    ) -> cloud_speech.RecognizeResponse:
        """Transcribe an audio file using an existing recognizer with overridden settings for the recognition request.
        Args:
            audio_file (str): Path to the local audio file to be transcribed.
                Example: "resources/audio.wav"
            recognizer_id (str): The unique ID of the recognizer to be used for transcription.
        Returns:
            cloud_speech.RecognizeResponse: The response containing the transcription results.
        """
        # Instantiates a client
        client = SpeechClient()
    
        request = cloud_speech.CreateRecognizerRequest(
            parent=f"projects/{PROJECT_ID}/locations/global",
            recognizer_id=recognizer_id,
            recognizer=cloud_speech.Recognizer(
                default_recognition_config=cloud_speech.RecognitionConfig(
                    auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
                    language_codes=["en-US"],
                    model="latest_long",
                    features=cloud_speech.RecognitionFeatures(
                        enable_automatic_punctuation=True,
                        enable_word_time_offsets=True,
                    ),
                ),
            ),
        )
    
        operation = client.create_recognizer(request=request)
        recognizer = operation.result()
    
        print("Created Recognizer:", recognizer.name)
    
        # Reads a file as bytes
        with open(audio_file, "rb") as f:
            audio_content = f.read()
    
        request = cloud_speech.RecognizeRequest(
            recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/{recognizer_id}",
            config=cloud_speech.RecognitionConfig(
                features=cloud_speech.RecognitionFeatures(
                    enable_word_time_offsets=False,
                ),
            ),
            config_mask=FieldMask(paths=["features.enable_word_time_offsets"]),
            content=audio_content,
        )
    
        # Transcribes the audio into text
        response = client.recognize(request=request)
    
        for result in response.results:
            print(f"Transcript: {result.alternatives[0].transcript}")
    
        return response
    
    

    Envie pedidos sem reconhecedores

    Os reconhecedores são opcionais em pedidos de reconhecimento. Para fazer um pedido sem um reconhecedor, basta usar o ID do recurso do reconhecedor _ na localização onde está a fazer um pedido. Vejamos um exemplo:

    Python

    import os
    
    from google.cloud.speech_v2 import SpeechClient
    from google.cloud.speech_v2.types import cloud_speech
    
    PROJECT_ID = os.getenv("GOOGLE_CLOUD_PROJECT")
    
    
    def quickstart_v2(audio_file: str) -> cloud_speech.RecognizeResponse:
        """Transcribe an audio file.
        Args:
            audio_file (str): Path to the local audio file to be transcribed.
        Returns:
            cloud_speech.RecognizeResponse: The response from the recognize request, containing
            the transcription results
        """
        # Reads a file as bytes
        with open(audio_file, "rb") as f:
            audio_content = f.read()
    
        # Instantiates a client
        client = SpeechClient()
    
        config = cloud_speech.RecognitionConfig(
            auto_decoding_config=cloud_speech.AutoDetectDecodingConfig(),
            language_codes=["en-US"],
            model="long",
        )
    
        request = cloud_speech.RecognizeRequest(
            recognizer=f"projects/{PROJECT_ID}/locations/global/recognizers/_",
            config=config,
            content=audio_content,
        )
    
        # Transcribes the audio into text
        response = client.recognize(request=request)
    
        for result in response.results:
            print(f"Transcript: {result.alternatives[0].transcript}")
    
        return response
    
    

    Limpar

    Para evitar incorrer em cobranças na sua Google Cloud conta pelos recursos usados nesta página, siga estes passos.

    1. Optional: Revoke the authentication credentials that you created, and delete the local credential file.

      gcloud auth application-default revoke
    2. Optional: Revoke credentials from the gcloud CLI.

      gcloud auth revoke

    Consola

  19. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  20. In the project list, select the project that you want to delete, and then click Delete.
  21. In the dialog, type the project ID, and then click Shut down to delete the project.
  22. gcloud

  23. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  24. In the project list, select the project that you want to delete, and then click Delete.
  25. In the dialog, type the project ID, and then click Shut down to delete the project.
  26. O que se segue?