Trascrizione di audio dall'input in streaming

Questa sezione mostra come trascrivere in testo l'audio in streaming, ad esempio l'input di un microfono.

Il riconoscimento vocale in streaming ti consente di trasmettere audio in streaming a Speech-to-Text e di ricevere i risultati del riconoscimento vocale in streaming in tempo reale durante l'elaborazione dell'audio. Vedi anche i limiti audio per lo streaming delle richieste di riconoscimento vocale. Il riconoscimento vocale in streaming è disponibile soltanto tramite gRPC.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Abilita le API Speech-to-Text.

    Abilita le API

  5. Assicurati di disporre dei seguenti ruoli nel progetto: Cloud Speech Administrator

    Verifica i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Nella colonna Entità, individua la riga contenente il tuo indirizzo email.

      Se il tuo indirizzo email non è in questa colonna, significa che non disponi di alcun ruolo.

    4. Nella colonna Ruolo per la riga contenente il tuo indirizzo email, controlla se l'elenco dei ruoli include quelli richiesti.

    Concedi i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo indirizzo email.
    5. Nell'elenco Seleziona un ruolo, scegli un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ciascun ruolo aggiuntivo.
    7. Fai clic su Salva.
  6. Installa Google Cloud CLI.
  7. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  8. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  9. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  10. Abilita le API Speech-to-Text.

    Abilita le API

  11. Assicurati di disporre dei seguenti ruoli nel progetto: Cloud Speech Administrator

    Verifica i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Nella colonna Entità, individua la riga contenente il tuo indirizzo email.

      Se il tuo indirizzo email non è in questa colonna, significa che non disponi di alcun ruolo.

    4. Nella colonna Ruolo per la riga contenente il tuo indirizzo email, controlla se l'elenco dei ruoli include quelli richiesti.

    Concedi i ruoli

    1. Nella console Google Cloud, vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo indirizzo email.
    5. Nell'elenco Seleziona un ruolo, scegli un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ciascun ruolo aggiuntivo.
    7. Fai clic su Salva.
  12. Installa Google Cloud CLI.
  13. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  14. Le librerie client possono utilizzare le credenziali predefinite dell'applicazione per autenticarsi facilmente con le API di Google e inviare richieste a queste API. Con Credenziali predefinite dell'applicazione, puoi testare l'applicazione in locale ed eseguirne il deployment senza modificare il codice sottostante. Per ulteriori informazioni, consulta <atrack-type="common generate" l10n-attrs-original-order="href,track-type,track-name" l10n-encrypted-href="WDE63JFVMK0YqIWBqG8nCycgwkRfOeEqRvzYs1N+2tJUEhcZvE5WLink-reference for AuthenticatehcZvE5WLink-reference for Authenticate

  15. Crea credenziali di autenticazione locali per il tuo Account Google:

    gcloud auth application-default login

Assicurati inoltre di aver installato la libreria client.

Esecuzione del riconoscimento vocale in streaming su un file locale

Di seguito è riportato un esempio di riconoscimento vocale in streaming su un file audio locale. Esiste un limite di 25 kB per l'audio inviato nelle richieste di uno stream. Questo limite si applica sia alla richiesta StreamingRecognize iniziale sia alle dimensioni di ogni singolo messaggio nel flusso. Il superamento di questo limite causerà un errore.

Python

from google.cloud.speech_v2 import SpeechClient
from google.cloud.speech_v2.types import cloud_speech as cloud_speech_types

def transcribe_streaming_v2(
    project_id: str,
    audio_file: str,
) -> cloud_speech_types.StreamingRecognizeResponse:
    """Transcribes audio from audio file stream.

    Args:
        project_id: The GCP project ID.
        audio_file: The path to the audio file to transcribe.

    Returns:
        The response from the transcribe method.
    """
    # Instantiates a client
    client = SpeechClient()

    # Reads a file as bytes
    with open(audio_file, "rb") as f:
        content = f.read()

    # In practice, stream should be a generator yielding chunks of audio data
    chunk_length = len(content) // 5
    stream = [
        content[start : start + chunk_length]
        for start in range(0, len(content), chunk_length)
    ]
    audio_requests = (
        cloud_speech_types.StreamingRecognizeRequest(audio=audio) for audio in stream
    )

    recognition_config = cloud_speech_types.RecognitionConfig(
        auto_decoding_config=cloud_speech_types.AutoDetectDecodingConfig(),
        language_codes=["en-US"],
        model="long",
    )
    streaming_config = cloud_speech_types.StreamingRecognitionConfig(
        config=recognition_config
    )
    config_request = cloud_speech_types.StreamingRecognizeRequest(
        recognizer=f"projects/{project_id}/locations/global/recognizers/_",
        streaming_config=streaming_config,
    )

    def requests(config: cloud_speech_types.RecognitionConfig, audio: list) -> list:
        yield config
        yield from audio

    # Transcribes the audio into text
    responses_iterator = client.streaming_recognize(
        requests=requests(config_request, audio_requests)
    )
    responses = []
    for response in responses_iterator:
        responses.append(response)
        for result in response.results:
            print(f"Transcript: {result.alternatives[0].transcript}")

    return responses

Sebbene sia possibile trasmettere in streaming un file audio locale all'API Speech-to-Text, ti consigliamo di eseguire il riconoscimento audio sincrono.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

  1. Facoltativo: revoca le credenziali di autenticazione che hai creato ed elimina il file delle credenziali locale.

    gcloud auth application-default revoke
  2. Facoltativo: revoca le credenziali dallgcloud CLI.

    gcloud auth revoke

Console

  • Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  • Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  • Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
  • gcloud

    Elimina un progetto Google Cloud:

    gcloud projects delete PROJECT_ID

    Passaggi successivi