Trascrivi audio

Il servizio Speech-to-Text di Vertex AI su Google Distributed Cloud (GDC) air-gapped riconosce la voce dai file audio. Speech-to-Text converte l'audio rilevato in trascrizioni di testo utilizzando la sua API preaddestrata.

Speech-to-Text include Chirp, un modello avanzato per la sintesi vocale addestrato con milioni di ore di dati audio e miliardi di frasi di testo. Questo modello è in contrasto con le tecniche convenzionali di riconoscimento vocale in quanto si concentra su grandi quantità di dati supervisionati specifici per lingua. Queste tecniche migliorano il riconoscimento e la trascrizione di lingue parlate e accenti.

Questa pagina mostra come trascrivere file audio in testo utilizzando l'API Speech-to-Text su Distributed Cloud.

Prima di iniziare

Prima di poter iniziare a utilizzare l'API Speech-to-Text, devi disporre di un progetto con l'API Speech-to-Text abilitata e delle credenziali appropriate. Puoi anche installare librerie client per facilitare le chiamate all'API. Per saperne di più, consulta Configurare un progetto di riconoscimento vocale.

Trascrivere l'audio con il modello predefinito

Speech-to-Text esegue il riconoscimento vocale. Invii il file audio da cui vuoi riconoscere il parlato direttamente come contenuti nella richiesta API. Il sistema restituisce il testo trascritto risultante nella risposta dell'API.

Quando effettui una richiesta di riconoscimento vocale, devi fornire un oggetto di configurazione RecognitionConfig. Questo oggetto indica all'API come elaborare i dati audio e che tipo di output ti aspetti. Se un modello non è specificato esplicitamente in questo oggetto di configurazione, Speech-to-Text ne seleziona uno predefinito.

Per saperne di più, consulta la documentazione dell'API Speech.

L'esempio seguente trascrive il parlato da un file audio utilizzando il modello Speech-to-Text predefinito:

Python

Segui questi passaggi per utilizzare il servizio Speech-to-Text da uno script Python per trascrivere il parlato da un file audio:

  1. Installa l'ultima versione della libreria client Speech-to-Text.

  2. Imposta le variabili di ambiente richieste in uno script Python.

  3. Autentica la richiesta API.

  4. Aggiungi il seguente codice allo script Python che hai creato:

    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)
    

    Sostituisci quanto segue:

    • ENDPOINT: l'endpoint Speech-to-Text che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.
    • PROJECT_ID: il tuo ID progetto.
    • BASE64_ENCODED_AUDIO: i byte dei dati audio codificati in una rappresentazione Base64. Questa stringa inizia con caratteri simili a ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Per ulteriori informazioni, vedi RecognitionAudio.
    • ENCODING: la codifica dei dati audio inviati nella richiesta, ad esempio LINEAR16. Per ulteriori informazioni, vedi AudioEncoding.
    • RATE_HERTZ: frequenza di campionamento in hertz dei dati audio inviati nella richiesta, ad esempio 16000. Per ulteriori informazioni, vedi RecognitionConfig.
    • LANGUAGE_CODE: la lingua dell'audio fornito come tag di lingua BCP-47. Consulta l'elenco delle lingue supportate e i relativi codici lingua.
    • CHANNEL_COUNT: il numero di canali nei dati audio di input, ad esempio 1. Per ulteriori informazioni, vedi RecognitionConfig.
  5. Salva lo script Python.

  6. Esegui lo script Python per trascrivere l'audio:

    python SCRIPT_NAME
    

    Sostituisci SCRIPT_NAME con il nome che hai assegnato allo script Python, ad esempio speech.py.

Trascrivere audio con Chirp

Analogamente al modello predefinito Speech-to-Text, devi fornire un oggetto di configurazione RecognitionConfig quando effettui una richiesta di riconoscimento vocale. Per utilizzare Chirp, devi specificare esplicitamente questo modello nell'oggetto di configurazione impostando il valore chirp nel campo model.

Il seguente esempio trascrive il parlato da un file audio utilizzando il modello Chirp:

Python

Segui questi passaggi per utilizzare Chirp da uno script Python per trascrivere il parlato da un file audio:

  1. Installa l'ultima versione della libreria client Speech-to-Text.

  2. Imposta le variabili di ambiente richieste in uno script Python.

  3. Autentica la richiesta API.

  4. Aggiungi il seguente codice allo script Python che hai creato:

    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))
    

    Sostituisci quanto segue:

    • ENDPOINT: l'endpoint Speech-to-Text che utilizzi per la tua organizzazione. Per saperne di più, visualizza lo stato del servizio e gli endpoint.
    • BASE64_ENCODED_AUDIO: i byte dei dati audio codificati in una rappresentazione Base64. Questa stringa inizia con caratteri simili a ZkxhQwAAACIQABAAAAUJABtAA+gA8AB+W8FZndQvQAyjv. Per ulteriori informazioni, vedi RecognitionAudio.
    • ENCODING: la codifica dei dati audio inviati nella richiesta, ad esempio LINEAR16. Per ulteriori informazioni, vedi AudioEncoding.
    • RATE_HERTZ: frequenza di campionamento in hertz dei dati audio inviati nella richiesta, ad esempio 16000. Per ulteriori informazioni, vedi RecognitionConfig.
    • CHANNEL_COUNT: il numero di canali nei dati audio di input, ad esempio 1. Per ulteriori informazioni, vedi RecognitionConfig.
    • LANGUAGE_CODE: la lingua dell'audio fornito come tag di lingua BCP-47. Consulta l'elenco delle lingue supportate e i relativi codici lingua.
    • PROJECT_ID: il tuo ID progetto.
  5. Salva lo script Python.

  6. Esegui lo script Python per trascrivere l'audio:

    python SCRIPT_NAME
    

    Sostituisci SCRIPT_NAME con il nome che hai assegnato allo script Python, ad esempio speech.py.