Nozioni di base sulla traduzione di contenuti multimediali

Questo documento è una guida alle nozioni di base sull'utilizzo della traduzione di contenuti multimediali. Questa guida concettuale illustra i tipi di richieste che puoi effettuare alla Media Translation, come costruire queste richieste e come gestirne le risposte. Consigliamo a tutti gli utenti di Media Translation di leggere questa guida e uno dei tutorial associati prima di immergersi nell'API stessa.

Richieste di traduzione vocale

Finora è disponibile un solo metodo per la traduzione del parlato:

  • Streaming Translation (solo gRPC) esegue la traduzione sui dati audio forniti in uno stream bidirezionale gRPC. Le richieste di streaming sono progettate per la traduzione in tempo reale, ad esempio l'acquisizione di audio in diretta da un microfono. La traduzione in streaming fornisce risultati provvisori durante l'acquisizione dell'audio, consentendo la visualizzazione dei risultati, ad esempio, mentre un utente sta ancora parlando. Le richieste di traduzione di flussi di dati sono limitate a dati audio di durata pari o inferiore a 5 minuti.

Le richieste contengono parametri di configurazione o dati audio. Le seguenti sezioni descrivono questo tipo di richieste di traduzione vocale, le risposte che generano e come gestirle in modo più dettagliato.

Richieste di traduzione vocale in streaming

Una richiesta API Streaming Media Translation può essere una configurazione di traduzione vocale o dati audio. Di seguito è riportato un esempio di richiesta di configurazione:

{
    "audio_config": {
        "audio_encoding": "linear16",
        "sample_rate_hertz": 16000,
        "source_language_code": "en-US",
        "target_language_code": "zh",
        "model" : "google-provided-model/video",
    }
    "single_utterance" : False
}

Di seguito è riportato un esempio di richiesta di dati audio:

{
    "audio_content " : "\366c\256\375jQ\r\312\205j\271\243%/u\216z\330\354\221\360\253KJ\005\"
}

I primi StreamingTranslateSpeechRequest devono contenere una configurazione di tipo StreamingtranslateSpeechConfig senza audio associato. I StreamingTranslateSpeechRequest successivi inviati sullo stesso stream saranno quindi costituiti da frame consecutivi di byte audio non elaborati.

StreamingTranslateSpeechConfig contiene i seguenti campi:

  • audio_config (obbligatorio) contiene informazioni di configurazione per l'audio di tipo translateSpeechConfig.
  • single_utterance (facoltativo, il valore predefinito è false) indica se la richiesta deve terminare automaticamente dopo che il riconoscimento vocale non viene più rilevato. Se questa funzionalità è impostata, la funzionalità di traduzione di contenuti multimediali rileva le pause, il silenzio o l'audio non vocale per determinare quando terminare la traduzione. Se non viene configurato, lo stream continuerà ad ascoltare e a elaborare l'audio finché non verrà chiuso direttamente o fino a quando non sarà stata superata la durata limite. L'impostazione di single_utterance su true è utile per l'elaborazione dei comandi vocali.

Un TranslateSpeechConfig contiene i seguenti campi secondari:

  • audio_encoding (obbligatorio) specifica lo schema di codifica dell'audio fornito (di tipo AudioEncoding). Se hai una scelta nel codec, preferisci una codifica senza perdita di dati come FLAC o LINEAR16 per ottenere prestazioni ottimali. Per ulteriori informazioni, consulta la sezione Codifica audio.
  • sample_rate_hertz (obbligatorio): specifica la frequenza di campionamento (in Hertz) dell'audio fornito. Per ulteriori informazioni sulle frequenze di campionamento, consulta la sezione Frequenza di campionamento di seguito.
  • source_language_code (obbligatorio) contiene la lingua + la regione/l'area geografica da utilizzare per il riconoscimento vocale dell'audio fornito. Il codice della lingua deve essere un identificatore BCP-47. Tieni presente che i codici lingua in genere sono costituiti da tag della lingua principale e sottotag della regione secondaria per indicare i dialetti (ad esempio, "en" per l'inglese e "US" per gli Stati Uniti nell'esempio sopra). Per un elenco delle lingue supportate, consulta la pagina Lingue supportate.
  • "target_language_code": (obbligatorio) contiene la lingua da utilizzare per la traduzione del testo dell'audio fornito. Il codice della lingua deve essere un identificatore BCP-47. Tieni presente che in genere i codici lingua sono costituiti solo da tag della lingua principale, in quanto il testo della traduzione non considera i dialetti. Tuttavia, "zh-CN" e "zh-TW" saranno testi di traduzione diversi. Per un elenco delle lingue supportate, consulta la pagina Lingue supportate.

L'audio viene fornito a Media Translation tramite il campo audio_content di tipo StreamingtranslateSpeechRequest. Il campo audio_content contiene l'audio da valutare, incorporato nella richiesta. Per saperne di più, consulta la sezione Incorporare contenuti audio di seguito.

Risposta di traduzione vocale in streaming

I risultati della traduzione vocale in streaming vengono restituiti all'interno di una serie di risposte di tipo StreamingtranslateSpeechResponse. Tale risposta è costituita dai seguenti campi:

  • speech_event_type contiene eventi di tipo SpeechEventType. Il valore di questi eventi indicherà quando una singola espressione è stata determinata come completata. Gli eventi vocali fungono da indicatori all'interno della risposta del tuo stream. Quando riceve END_OF_SINGLE_UTTERANCE, l'utente deve interrompere l'invio delle richieste e attendere di ricevere le traduzioni rimanenti.
  • results contiene l'elenco dei risultati, che possono essere provvisori o finali, di tipo StreamingtranslateSpeechResult. L'elenco results contiene i seguenti campi secondari:
    • translation contiene testo da tradurre.
    • isFinal indica se i risultati ottenuti in questa voce dell'elenco sono provvisori o definitivi.

Di seguito sono riportate ulteriori informazioni su questi parametri di richiesta e risposta.

Frequenze di esempio

Devi specificare la frequenza di campionamento dell'audio nel campo sample_rate_hertz della richiesta di configurazione, che deve corrispondere alla frequenza di campionamento dei contenuti audio o dello stream associati. La traduzione di contenuti multimediali è supportata da frequenze di campionamento comprese tra 8000 e 48000 Hz.

Se puoi scegliere durante la codifica del materiale di origine, acquisisci l'audio utilizzando una frequenza di campionamento di 16.000 Hz. Valori inferiori a questo potrebbero compromettere l'accuratezza del riconoscimento vocale, di conseguenza la qualità della traduzione verrà ridotta. Inoltre, una frequenza di campionamento più elevata non ha un effetto sensibile sulla qualità del riconoscimento vocale e potrebbe aumentare la latenza.

Tuttavia, se i dati audio sono già stati registrati a una frequenza di campionamento esistente diversa da 16.000 Hz, non ripetere l'audio a 16.000 Hz. La maggior parte dell'audio di telefonia legacy, ad esempio, utilizza frequenze di campionamento di 8000 Hz, il che potrebbe fornire risultati meno precisi. Se devi usare questo audio, fornisci l'audio all'API Media Translation alla frequenza di campionamento nativa.

Linguaggi

Il motore di riconoscimento/traduzione di Media Translation supporta una varietà di combinazioni di lingua/dialetto. Devi specificare la lingua (e il dialetto nazionale o regionale) dell'audio nel campo source_language_code e target_language_code della configurazione della richiesta utilizzando un identificatore BCP-47.

L'elenco completo delle lingue supportate per ogni funzionalità è disponibile nella pagina Assistenza per le lingue.

Selezione dei modelli

Media Translation può utilizzare uno dei numerosi modelli di machine learning per tradurre il tuo file audio. Google ha addestrato questi modelli per sorgenti audio e tipi specifici.

Quando invii una richiesta di traduzione audio a Media Translation, puoi migliorare i risultati che ricevi specificando il modello. Ciò consente all'API Media Translation di elaborare i file audio utilizzando un modello di machine learning addestrato per riconoscere l'audio vocale da quel particolare tipo di origine.

Per specificare un modello per la traduzione vocale, includi il campo model nell'oggetto translateSpeechConfig per la richiesta, specificando il modello che vuoi utilizzare.

Media Translation può utilizzare i seguenti tipi di modelli di machine learning per tradurre i tuoi file audio.

Tipo Stringa nome Descrizione
Video google-provided-model/video

Utilizza questo modello per trascrivere audio nei video clip o che include più altoparlanti. Per ottenere risultati ottimali, fornisci un audio registrato con una frequenza di campionamento pari o superiore a 16.000 Hz.

Nota: si tratta di un modello premium che ha un costo superiore alla tariffa standard.

Telefonata google-provided-model/(enhanced-)phone-call

Utilizza questo modello per trascrivere l'audio da una telefonata. Solitamente, l'audio del telefono viene registrato con una frequenza di campionamento pari a 8000 Hz.

Nota: il modello avanzato per il telefono è un modello premium che costa più della tariffa standard.

traduzione contenuti multimediali: predefinita google-provided-model/default

Usa questo modello se l'audio non si adatta a uno dei modelli descritti in precedenza. Ad esempio, puoi utilizzarla per le registrazioni audio nel formato lungo che presentano un solo altoparlante. Idealmente, l'audio è ad alta fedeltà e viene registrato con una frequenza di campionamento pari o superiore a 16.000 Hz.

Incorporamento di contenuti audio

L'audio incorporato è incluso nella richiesta di traduzione vocale in streaming quando trasmetti un campo audio_content all'interno della richiesta di streaming. Per l'audio incorporato fornito come contenuto all'interno di una richiesta gRPC, quell'audio deve essere compatibile per la serializzazione di Proto3 e deve essere fornito come dati binario.

Quando crei una richiesta utilizzando una libreria client di Google Cloud, in genere scrivi questi dati binari direttamente nel campo audio_content.

Per visualizzare gli esempi di codice, consulta la sezione Traduzione di audio in streaming.