Transcrire l'audio

Le service Speech-to-Text de Vertex AI sur Google Distributed Cloud (GDC) air-gapped reconnaît la parole à partir de fichiers audio. Speech-to-Text convertit le contenu audio détecté en transcriptions textuelles à l'aide de son API pré-entraînée.

Speech-to-Text inclut Chirp, un modèle avancé pour la reconnaissance vocale entraîné sur des millions d'heures de données audio et des milliards de phrases. Ce modèle contraste avec les techniques de reconnaissance vocale classiques, qui se concentrent sur de grandes quantités de données supervisées spécifiques à une langue. Ces techniques permettent aux utilisateurs d'améliorer la reconnaissance et la transcription des langues parlées et des accents.

Cette page explique comment transcrire des fichiers audio en texte à l'aide de l'API Speech-to-Text sur Distributed Cloud.

Avant de commencer

Pour pouvoir utiliser l'API Speech-to-Text, vous devez disposer d'un projet pour lequel cette API est activée, ainsi que des identifiants appropriés. Vous pouvez également installer des bibliothèques clientes pour faciliter les appels à l'API. Pour en savoir plus, consultez Configurer un projet de reconnaissance vocale.

Transcrire des fichiers audio avec le modèle par défaut

Speech-to-Text effectue la reconnaissance vocale. Vous envoyez le fichier audio à partir duquel vous souhaitez reconnaître la parole directement en tant que contenu dans la requête API. Le système renvoie le texte transcrit dans la réponse de l'API.

Vous devez fournir un objet de configuration RecognitionConfig lorsque vous effectuez une requête de reconnaissance vocale. Cet objet indique à l'API comment traiter vos données audio et le type de résultat attendu. Si aucun modèle n'est explicitement spécifié dans cet objet de configuration, Speech-to-Text en sélectionne un par défaut.

Pour en savoir plus, consultez la documentation de l'API Speech.

L'exemple suivant transcrit la parole d'un fichier audio à l'aide du modèle Speech-to-Text par défaut :

Python

Pour utiliser le service Speech-to-Text à partir d'un script Python afin de transcrire la parole d'un fichier audio, procédez comme suit :

  1. Installez la dernière version de la bibliothèque cliente Speech-to-Text.

  2. Définissez les variables d'environnement requises dans un script Python.

  3. Authentifiez votre requête API.

  4. Ajoutez le code suivant au script Python que vous avez créé :

    import base64
    
    from google.cloud import speech_v1p1beta1
    import google.auth
    from google.auth.transport import requests
    from google.api_core.client_options import ClientOptions
    
    audience="https://ENDPOINT:443"
    api_endpoint="ENDPOINT:443"
    
    def get_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return speech_v1p1beta1.SpeechClient(credentials=creds, client_options=opts)
    
    def main():
      creds = None
      try:
        creds, project_id = google.auth.default()
        creds = creds.with_gdch_audience(audience)
        req = requests.Request()
        creds.refresh(req)
        print("Got token: ")
        print(creds.token)
      except Exception as e:
        print("Caught exception" + str(e))
        raise e
      return creds
    
    def speech_func(creds):
      tc = get_client(creds)
    
      content="BASE64_ENCODED_AUDIO"
    
      audio = speech_v1p1beta1.RecognitionAudio()
      audio.content = base64.standard_b64decode(content)
      config = speech_v1p1beta1.RecognitionConfig()
      config.encoding= speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING
      config.sample_rate_hertz=RATE_HERTZ
      config.language_code="LANGUAGE_CODE"
      config.audio_channel_count=CHANNEL_COUNT
    
      metadata = [("x-goog-user-project", "projects/PROJECT_ID")]
      resp = tc.recognize(config=config, audio=audio, metadata=metadata)
      print(resp)
    
    if __name__=="__main__":
      creds = main()
      speech_func(creds)
    

    Remplacez les éléments suivants :

    • ENDPOINT : point de terminaison Speech-to-Text que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison des services.
    • PROJECT_ID : ID de votre projet.
    • BASE64_ENCODED_AUDIO : octets de données audio encodés dans une représentation Base64. Cette chaîne commence par des caractères qui ressemblent à ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Pour en savoir plus, consultez la section consacrée à RecognitionAudio.
    • ENCODING : encodage des données audio envoyées dans la requête (par exemple, LINEAR16). Pour en savoir plus, consultez la section consacrée à AudioEncoding.
    • RATE_HERTZ : taux d'échantillonnage en hertz des données audio envoyées dans la requête, par exemple 16000. Pour en savoir plus, consultez la section consacrée à RecognitionConfig.
    • LANGUAGE_CODE : langue de l'audio fourni en tant que tag de langue BCP-47. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.
    • CHANNEL_COUNT : nombre de canaux dans les données audio d'entrée, par exemple 1. Pour en savoir plus, consultez la section consacrée à RecognitionConfig.
  5. Enregistrez le script Python.

  6. Exécutez le script Python pour transcrire l'audio :

    python SCRIPT_NAME
    

    Remplacez SCRIPT_NAME par le nom que vous avez donné à votre script Python, par exemple speech.py.

Transcrire des fichiers audio avec Chirp

Comme pour le modèle Speech-to-Text par défaut, vous devez fournir un objet de configuration RecognitionConfig lorsque vous effectuez une requête de reconnaissance vocale. Pour utiliser Chirp, vous devez spécifier explicitement ce modèle dans cet objet de configuration en définissant la valeur chirp dans le champ model.

L'exemple suivant transcrit la parole d'un fichier audio à l'aide du modèle Chirp :

Python

Pour utiliser Chirp à partir d'un script Python afin de transcrire la parole d'un fichier audio, procédez comme suit :

  1. Installez la dernière version de la bibliothèque cliente Speech-to-Text.

  2. Définissez les variables d'environnement requises dans un script Python.

  3. Authentifiez votre requête API.

  4. Ajoutez le code suivant au script Python que vous avez créé :

    import base64
    
    # Import the client library.
    from google.cloud import speech_v1p1beta1
    from google.cloud.speech_v1p1beta1.services.speech import client
    from google.api_core.client_options import ClientOptions
    
    api_endpoint="ENDPOINT:443"
    
    def get_client(creds):
      opts = ClientOptions(api_endpoint=api_endpoint)
      return client.SpeechClient(credentials=creds, client_options=opts)
    
    # Specify the audio to transcribe.
    tc = get_client(creds)
    content = "BASE64_ENCODED_AUDIO"
    
    audio = speech_v1p1beta1.RecognitionAudio()
    audio.content = base64.standard_b64decode(content)
    
    config = speech_v1p1beta1.RecognitionConfig(
        encoding=speech_v1p1beta1.RecognitionConfig.AudioEncoding.ENCODING,
        sample_rate_hertz=RATE_HERTZ,
        audio_channel_count=CHANNEL_COUNT,
        language_code="LANGUAGE_CODE",
        model="chirp"
    )
    
    # Detect speech in the audio file.
    metadata = (("x-goog-user-project", "projects/PROJECT_ID"),)
    response = tc.recognize(config=config, audio=audio, metadata=metadata)
    
    for result in response.results:
        print("Transcript: {}".format(result.alternatives[0].transcript))
    

    Remplacez les éléments suivants :

    • ENDPOINT : point de terminaison Speech-to-Text que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison des services.
    • BASE64_ENCODED_AUDIO : octets de données audio encodés dans une représentation Base64. Cette chaîne commence par des caractères qui ressemblent à ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Pour en savoir plus, consultez la section consacrée à RecognitionAudio.
    • ENCODING : encodage des données audio envoyées dans la requête (par exemple, LINEAR16). Pour en savoir plus, consultez la section consacrée à AudioEncoding.
    • RATE_HERTZ : taux d'échantillonnage en hertz des données audio envoyées dans la requête, par exemple 16000. Pour en savoir plus, consultez la section consacrée à RecognitionConfig.
    • CHANNEL_COUNT : nombre de canaux dans les données audio d'entrée, par exemple 1. Pour en savoir plus, consultez la section consacrée à RecognitionConfig.
    • LANGUAGE_CODE : langue de l'audio fourni en tant que tag de langue BCP-47. Consultez la liste des langues acceptées et de leurs codes de langue respectifs.
    • PROJECT_ID : ID de votre projet.
  5. Enregistrez le script Python.

  6. Exécutez le script Python pour transcrire l'audio :

    python SCRIPT_NAME
    

    Remplacez SCRIPT_NAME par le nom que vous avez donné à votre script Python, par exemple speech.py.