Panoramica
Questo documento è una guida alle nozioni di base sull'utilizzo di Speech-to-Text. Questa guida concettuale illustra i tipi di richieste che puoi inviare a Speech-to-Text, come strutturare tali richieste e come gestire le relative risposte. Consigliamo a tutti gli utenti di Speech-to-Text di leggere questa guida e uno dei tutorial associati prima di immergersi nell'API stessa.
Provalo
Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni di Speech-to-Text in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
Prova Speech-to-Text senza costi aggiuntiviRichieste vocali
Speech-to-Text ha tre metodi principali per eseguire il riconoscimento vocale. Di seguito sono elencati:
Il riconoscimento sincrono (REST e gRPC) invia i dati audio all'API Speech-to-Text, esegue il riconoscimento su questi dati e restituisce i risultati dopo l'elaborazione di tutto l'audio. Le richieste di riconoscimento sincrono sono limitate a dati audio di 1 minuto o meno.
Il riconoscimento asincrono (REST e gRPC) invia i dati audio all'API Speech-to-Text e avvia un'operazione a lunga esecuzione. Utilizzando questa operazione, puoi eseguire periodicamente sondaggi per i risultati del riconoscimento. Utilizza richieste asincrone per i dati audio di qualsiasi durata fino a 480 minuti.
Il riconoscimento dei flussi di dati (solo gRPC) esegue il riconoscimento dei dati audio forniti in uno stream bidirezionale gRPC. Le richieste di streaming sono progettate per scopi di riconoscimento in tempo reale, come l'acquisizione di audio in diretta da un microfono. Il riconoscimento dello streaming fornisce risultati interi durante l'acquisizione dell'audio, consentendo la visualizzazione dei risultati, ad esempio mentre l'utente sta ancora parlando.
Le richieste contengono parametri di configurazione e dati audio. Le seguenti sezioni descrivono questo tipo di richieste di riconoscimento, le risposte che generano e come gestirle in modo più dettagliato.
Riconoscimento API Speech-to-Text
Una richiesta di riconoscimento sincrono dell'API Speech-to-Text è il metodo più semplice per eseguire il riconoscimento sui dati audio della voce. Speech-to-Text può elaborare fino a 1 minuto di dati audio vocali inviati in una richiesta sincrona. Dopo aver elaborato e riconosciuto tutto l'audio in Speech-to-Text, restituisce una risposta.
Una richiesta sincrona viene bloccata, il che significa che Speech-to-Text deve restituire una risposta prima di elaborare la richiesta successiva. Speech-to-Text elabora in genere l'audio più velocemente del tempo reale, elaborando in media 30 secondi di audio in 15 secondi. In caso di scarsa qualità audio, la tua richiesta di riconoscimento potrebbe richiedere molto più tempo.
Speech-to-Text ha entrambi i metodi REST e gRPC per chiamare le richieste API Speech-to-Text sincrone e asincrone. Questo articolo illustra l'API REST perché è più semplice mostrarla e spiegare l'utilizzo di base dell'API. Tuttavia, la configurazione di base di una richiesta REST o gRPC è abbastanza simile. Le richieste di riconoscimento di flussi di dati sono supportate solo da gRPC.
Richieste di riconoscimento vocale sincrono
Una richiesta API Speech-to-Text sincrona è composta da una configurazione del riconoscimento vocale e da dati audio. Di seguito è riportato un esempio di richiesta:
{ "config": { "encoding": "LINEAR16", "sampleRateHertz": 16000, "languageCode": "en-US", }, "audio": { "uri": "gs://bucket-name/path_to_audio_file" } }
Tutte le richieste di riconoscimento sincrono dell'API Speech-to-Text devono includere un campo di riconoscimento vocale
config
(di tipo
RecognitionConfig). Un
RecognitionConfig
contiene i seguenti sottocampi:
encoding
: (obbligatorio) specifica lo schema di codifica dell'audio fornito (di tipoAudioEncoding
). Se hai una scelta nel codec, preferisci una codifica senza perdita comeFLAC
oLINEAR16
per ottenere le migliori prestazioni. Per ulteriori informazioni, consulta la sezione Codifica audio. Il campoencoding
è facoltativo per i fileFLAC
eWAV
in cui la codifica è inclusa nell'intestazione del file.sampleRateHertz
: (obbligatorio) specifica la frequenza di campionamento (in Hertz) dell'audio fornito. Per maggiori informazioni sulle frequenze di campionamento, consulta la sezione Frequenza di campionamento di seguito. Il camposampleRateHertz
è facoltativo per i fileFLAC
eWAV
in cui la frequenza di campionamento è inclusa nell'intestazione del file.languageCode
- (obbligatorio) contiene la lingua + la regione/l'area geografica da utilizzare per il riconoscimento vocale dell'audio fornito. Il codice lingua deve essere un identificatore BCP-47. Tieni presente che i codici lingua in genere sono costituiti da tag della lingua principale e sottotag di area geografica secondaria che indicano i dialetti (ad esempio, 'en' per l'inglese e 'US' per gli Stati Uniti nell'esempio riportato sopra). Per un elenco delle lingue supportate, consulta la sezione Lingue supportate.maxAlternatives
: (facoltativo, il valore predefinito è1
) indica il numero di trascrizioni alternative da fornire nella risposta. Per impostazione predefinita, l'API Speech-to-Text fornisce una trascrizione principale. Se vuoi valutare alternative diverse, impostamaxAlternatives
su un valore più alto. Tieni presente che Speech-to-Text restituisce solo le alternative se il riconoscimento determina che le alternative sono di qualità sufficiente; in generale, le alternative sono più adatte per le richieste in tempo reale che richiedono il feedback degli utenti (ad esempio, i comandi vocali), pertanto sono più adatte per le richieste di riconoscimento dello streaming.profanityFilter
- (facoltativo) indica se filtrare parole o frasi volgari. Le parole filtrate escludono la prima lettera e gli asterischi per i caratteri rimanenti (ad es. f***). Il filtro per il linguaggio volgare agisce su singole parole e non rileva discorsi offensivi o offensivi che sono una frase o una combinazione di parole.speechContext
- (facoltativo) contiene informazioni contestuali aggiuntive per l'elaborazione di questo audio. Un contesto contiene il seguente sottocampo:phrases
: contiene un elenco di parole e frasi che forniscono suggerimenti per l'attività di riconoscimento vocale. Per ulteriori informazioni, consulta le informazioni sul contesto vocale.
L'audio viene fornito a Speech-to-Text tramite il parametro audio
di tipo
RecognitionAudio. Il campo audio
contiene uno dei seguenti sottocampi:
content
contiene l'audio da valutare, incorporato nella richiesta. Per saperne di più, consulta la sezione Incorporare contenuti audio di seguito. L'audio trasmesso direttamente all'interno di questo campo è limitato a 1 minuto di durata.uri
contiene un URI che rimanda ai contenuti audio. Il file non deve essere compresso (ad esempio, gzip). Attualmente, questo campo deve contenere un URI Google Cloud Storage (di formatogs://bucket-name/path_to_audio_file
). Consulta la sezione Passaggio di riferimento all'audio tramite un URI di seguito.
Di seguito sono riportate ulteriori informazioni su questi parametri di richiesta e risposta.
Frequenza di campionamento
Specifica la frequenza di campionamento dell'audio nel campo sampleRateHertz
della configurazione della richiesta e deve corrispondere alla frequenza di campionamento dei contenuti o stream audio associati. La frequenza di campionamento tra 8000 Hz e 48000 Hz è supportata
in Speech-to-Text. Puoi specificare la frequenza di campionamento per un file FLAC
o WAV
nell'intestazione del file anziché utilizzare il campo sampleRateHertz
.
Un file FLAC
deve contenere la frequenza di campionamento nell'intestazione FLAC
per poter essere inviato all'API Speech-to-Text.
Se puoi scegliere durante la codifica del materiale di origine, acquisisci l'audio utilizzando una frequenza di campionamento di 16000 Hz. Valori inferiori potrebbero compromettere la precisione del riconoscimento vocale e i livelli più alti non hanno un effetto apprezzabile sulla qualità del riconoscimento vocale.
Tuttavia, se i dati audio sono già stati registrati a una frequenza di campionamento esistente diversa da 16000 Hz, non ricampionare l'audio a 16000 Hz. La maggior parte degli audio di telefonia legacy, ad esempio, utilizza frequenze di campionamento di 8000 Hz, il che potrebbe fornire risultati meno precisi. Se devi utilizzare tale audio, forniscilo all'API Speech alla frequenza di campionamento nativa.
Linguaggi
Il motore di riconoscimento di Speech-to-Text supporta una varietà di lingue e dialetti. Devi specificare la lingua (e il dialetto nazionale o regionale) del tuo audio nel campo languageCode
della configurazione della richiesta, utilizzando un identificatore BCP-47.
Un elenco completo delle lingue supportate per ogni funzionalità è disponibile nella pagina Assistenza per le lingue.
Offset ora (timestamp)
Speech-to-Text può includere valori di offset temporale (timestamp) per l'inizio e la fine di ogni parola pronunciata riconosciuta nell'audio fornito. Un valore di offset temporale rappresenta il tempo trascorso dall'inizio dell'audio, in incrementi di 100 ms.
Gli offset di tempo sono particolarmente utili per analizzare file audio più lunghi, in cui potresti dover cercare una determinata parola nel testo riconosciuto e individuarla (cercare) nell'audio originale. Gli offset di tempo sono supportati per tutti
i metodi di riconoscimento: recognize
, streamingrecognize
e
longrunningrecognize
.
I valori di offset temporale sono inclusi solo per la prima alternativa fornita nella risposta di riconoscimento.
Per includere degli offset di orario nei risultati della richiesta, imposta il parametro enableWordTimeOffsets
su true nella configurazione delle richieste. Per
esempi che utilizzano l'API REST o le librerie client, consulta
Utilizzo degli offset di tempo (timestamp).
Ad esempio, puoi includere il parametro enableWordTimeOffsets
nella configurazione della richiesta, come mostrato di seguito:
{ "config": { "languageCode": "en-US", "enableWordTimeOffsets": true }, "audio":{ "uri":"gs://gcs-test-data/gettysburg.flac" } }
Il risultato restituito dall'API Speech-to-Text conterrà i valori di offset temporale per ogni parola riconosciuta come mostrato di seguito:
{ "name": "6212202767953098955", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata", "progressPercent": 100, "startTime": "2017-07-24T10:21:22.013650Z", "lastUpdateTime": "2017-07-24T10:21:45.278630Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [ { "alternatives": [ { "transcript": "Four score and twenty...(etc)...", "confidence": 0.97186122, "words": [ { "startTime": "1.300s", "endTime": "1.400s", "word": "Four" }, { "startTime": "1.400s", "endTime": "1.600s", "word": "score" }, { "startTime": "1.600s", "endTime": "1.600s", "word": "and" }, { "startTime": "1.600s", "endTime": "1.900s", "word": "twenty" }, ... ] } ] }, { "alternatives": [ { "transcript": "for score and plenty...(etc)...", "confidence": 0.9041967, } ] } ] } }
Selezione del modello
Speech-to-Text può utilizzare uno dei diversi modelli di machine learning per trascrivere il file audio. Google ha addestrato questi modelli di riconoscimento vocale per sorgenti e tipi di audio specifici.
Quando invii una richiesta di trascrizione di audio a Speech-to-Text, puoi migliorare i risultati che ricevi specificando la sorgente dell'audio originale. In questo modo, l'API Speech-to-Text può elaborare i tuoi file audio utilizzando un modello di machine learning addestrato a riconoscere l'audio vocale da quel particolare tipo di sorgente.
Per specificare un modello di riconoscimento vocale, includi il campo model
nell'oggetto RecognitionConfig
per la tua
richiesta, specificando il modello che vuoi utilizzare.
Speech-to-Text può utilizzare i seguenti tipi di modelli di machine learning per trascrivere i file audio.
Tipo | Costante di enumerazione | Descrizione |
---|---|---|
Più recente | latest_long |
Utilizza questo modello per qualsiasi tipo di contenuti di durata estesa, come contenuti multimediali o conversazioni spontanee e multimediali. Ti consigliamo di utilizzare questo modello anziché il modello del video, soprattutto se non è disponibile nella tua lingua di destinazione. Puoi anche utilizzare questo modello al posto del modello predefinito. |
Short più recente | latest_short |
Utilizza questo modello per brevi frasi della durata di alcuni secondi. È utile per tentare di acquisire comandi o altri casi d'uso di sintesi vocale diretti. Valuta la possibilità di utilizzare questo modello anziché il modello di comando e ricerca. |
Video | video |
Utilizza questo modello per trascrivere audio da video clip o altre fonti (come i podcast) che hanno più altoparlanti. Questo modello è spesso anche la scelta migliore per l'audio registrato con un microfono di alta qualità o con molto rumore di fondo. Per ottenere risultati ottimali, fornisci un audio registrato a una frequenza di campionamento pari o superiore a 16.000 Hz. Nota: questo è un modello premium che ha un costo superiore alla tariffa standard. |
Telefonata | phone_call |
Utilizza questo modello per trascrivere l'audio da una telefonata. In genere, l'audio del telefono viene registrato con una frequenza di campionamento di 8000 Hz. Nota: il modello avanzato del telefono è un modello premium che costa più della tariffa standard. |
ASR: comando e ricerca | command_and_search |
Utilizza questo modello per trascrivere clip audio più brevi. Alcuni esempi includono comandi vocali o ricerca vocale. |
ASR: predefinito | default |
Usa questo modello se l'audio non rientra in nessun altro modello descritto in questa tabella. Ad esempio, puoi utilizzarlo per le registrazioni audio di lunga durata che prevedono un unico altoparlante. Il modello predefinito produrrà risultati di trascrizione per qualsiasi tipo di audio, inclusi i video clip che hanno un modello separato personalizzato su misura. Tuttavia, il riconoscimento dell'audio dei video clip utilizzando il modello predefinito vorrebbe ottenere risultati di qualità inferiore rispetto all'utilizzo del modello video. Idealmente, l'audio è ad alta fedeltà, registrato con una frequenza di campionamento pari o superiore a 16.000 Hz. |
Dettatura medica | medical_dictation |
Utilizza questo modello per trascrivere note dettate da un medico. |
Conversazione medica | medical_conversation |
Utilizza questo modello per trascrivere una conversazione tra un medico e un paziente. |
Contenuti audio incorporati
L'audio incorporato è incluso nella richiesta di riconoscimento vocale quando trasmetti un
parametro content
nel campo audio
della richiesta. Per l'audio incorporato fornito come contenuto all'interno di una richiesta gRPC, tale audio deve essere compatibile con la serializzazione Proto3 e fornito come dati binari. Per l'audio incorporato fornito come contenuto all'interno di una richiesta REST, tale audio deve essere compatibile con la serializzazione JSON e prima avere la codifica Base64. Per ulteriori informazioni, consulta la sezione Codifica di Base64 per l'audio.
Quando crei una richiesta utilizzando una libreria client di Google Cloud, in genere scrivi questi dati binari (o codificati in base 64) direttamente nel campo content
.
Trasmettere audio a cui si fa riferimento in un URI
Più in genere, trasmetti un parametro uri
nel campo audio
della richiesta di riconoscimento vocale
e rimanda a un file audio (in formato binario, non base64)
situato su Google Cloud Storage nel seguente formato:
gs://bucket-name/path_to_audio_file
Ad esempio, la seguente parte di una richiesta Speech fa riferimento al file audio di esempio utilizzato all'interno di Quickstart:
... "audio": { "uri":"gs://cloud-samples-tests/speech/brooklyn.flac" } ...
Devi disporre di autorizzazioni di accesso adeguate per leggere i file Google Cloud Storage, ad esempio uno dei seguenti:
- Può essere letto pubblicamente (come i nostri file audio di esempio)
- Può essere letto dall'account di servizio, se utilizzi l'autorizzazione dell'account di servizio.
- Può essere letto da un account utente, se utilizza OAuth a tre vie per l'autorizzazione dell'account utente.
Ulteriori informazioni sulla gestione dell'accesso a Google Cloud Storage sono disponibili nella pagina relativa alla creazione e gestione degli elenchi di controllo dell'accesso nella documentazione di Google Cloud Storage.
Risposte dell'API Speech-to-Text
Come indicato in precedenza, una risposta sincrona dell'API Speech-to-Text potrebbe richiedere del tempo per restituire risultati, proporzionale alla durata dell'audio fornito. Al termine dell'elaborazione, l'API restituirà una risposta come mostrato di seguito:
{ "results": [ { "alternatives": [ { "confidence": 0.98267895, "transcript": "how old is the Brooklyn Bridge" } ] } ] }
Questi campi sono illustrati di seguito:
results
contiene l'elenco dei risultati (di tipoSpeechRecognitionResult
), in cui ogni risultato corrisponde a un segmento di audio (i segmenti di audio sono separati da pause). Ogni risultato è costituito da uno o più dei seguenti campi:alternatives
contiene un elenco di possibili trascrizioni, di tipoSpeechRecognitionAlternatives
. Il modo in cui viene visualizzata più di un'alternativa dipende dal fatto che tu ne abbia richieste più di una (impostandomaxAlternatives
su un valore maggiore di1
) e dal fatto che Speech-to-Text abbia prodotto alternative di qualità sufficientemente elevata. Ogni alternativa è costituita dai seguenti campi:transcript
contiene il testo trascritto. Consulta la sezione Gestire le trascrizioni di seguito.confidence
contiene un valore compreso tra 0 e 1 che indica quanto sia sicura Speech-to-Text della data trascrizione. Consulta la sezione Interpretare i valori di affidabilità di seguito.
Se non è stato riconosciuto alcun parlato dell'audio fornito, l'elenco results
restituito non conterrà alcun elemento.
Generalmente i discorsi non riconosciuti sono il risultato di audio di scarsa qualità oppure di valori di codice lingua, codifica o frequenza di campionamento che non corrispondono all'audio fornito.
I componenti di questa risposta sono illustrati nelle sezioni seguenti.
Ogni risposta sincrona dell'API Speech-to-Text restituisce un elenco di risultati, anziché un singolo risultato contenente tutto l'audio riconosciuto. L'elenco di contenuti audio
riconosciuti (all'interno degli elementi transcript
) verrà visualizzato
in ordine contiguo.
Seleziona alternative
Ogni risultato all'interno di una risposta di riconoscimento sincrono riuscito può contenere uno o più alternatives
(se il valore maxAlternatives
della richiesta è maggiore di 1
). Se Speech-to-Text determina che un'alternativa ha un Valore di affidabilità sufficiente, tale alternativa sarà inclusa nella risposta. La prima alternativa nella risposta è sempre la migliore (più probabilmente) alternativa.
L'impostazione di un valore maxAlternatives
superiore a 1
non implica né garantisce che verranno restituite più alternative. In generale, più di un'alternativa è più appropriata per fornire opzioni in tempo reale agli utenti che ottengono risultati tramite una richiesta di riconoscimento streaming.
Gestire le trascrizioni
Ogni alternativa fornita all'interno della risposta conterrà un elemento transcript
, contenente il testo riconosciuto. Se sono presenti alternative sequenziali, dovresti concatenare queste trascrizioni insieme.
Il codice Python seguente esegue l'iterazione di un elenco di risultati e concatena le trascrizioni insieme. Tenete presente che utilizziamo la prima alternativa (il n°) in tutti i casi.
response = service_request.execute() recognized_text = 'Transcribed Text: \n' for i in range(len(response['results'])): recognized_text += response['results'][i]['alternatives'][0]['transcript']
Valori di affidabilità
Il valore confidence
è una stima compresa tra 0,0 e 1,0. Viene calcolato aggregando i valori di probabilità assegnati a ciascuna parola nell'audio. Un numero più alto indica una maggiore probabilità stimata che le singole parole siano state riconosciute correttamente. In genere questo campo viene fornito solo per l'ipotesi principale e solo per i risultati in cui is_final=true
. Ad esempio, puoi utilizzare il valore confidence
per decidere se mostrare all'utente dei risultati alternativi o per chiedere conferma all'utente.
Tuttavia, tieni presente che il modello determina il "migliore" risultato migliore in base a un maggior numero di indicatori rispetto al solo punteggio confidence
(ad esempio il contesto della frase).
Per questo motivo, in alcuni casi il risultato migliore non ha il punteggio di affidabilità più alto. Se non hai richiesto più risultati alternativi, il singolo risultato "migliore" potrebbe avere un valore di confidenza inferiore rispetto al previsto. Ciò può verificarsi, ad esempio, nei casi in cui
vengono utilizzate parole rare. A una parola usata raramente può essere assegnato un valore di "probabilità" basso, anche se viene riconosciuto correttamente. Se il modello determina che la parola rara è l'opzione più probabile in base al contesto, il risultato viene restituito in alto anche se il valore confidence
del risultato è inferiore a quello delle opzioni alternative.
Richieste e risposte asincrone
Una richiesta API Speech-to-Text asincrona al metodo LongRunningRecognize è identica a una richiesta API Speech-to-Text sincrona. Tuttavia, invece di restituire una risposta, la richiesta asincrona avvia un'operazione a lunga esecuzione (di tipo operazione) e restituisce immediatamente questa operazione al chiamante. Puoi utilizzare il riconoscimento vocale asincrono con audio di qualsiasi durata fino a 480 minuti.
Di seguito è riportata una risposta tipica di operazione:
{ "name": "operation_name", "metadata": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeMetadata" "progressPercent": 34, "startTime": "2016-08-30T23:26:29.579144Z", "lastUpdateTime": "2016-08-30T23:26:29.826903Z" } }
Tieni presente che non sono ancora presenti risultati. Speech-to-Text continuerà a elaborare l'audio e utilizzerà questa operazione per archiviare i risultati. I risultati verranno visualizzati nel campo response
dell'operazione al termine della richiesta LongRunningRecognize
.
Di seguito è riportata una risposta completa dopo il completamento della richiesta:
{ "name": "1268386125834704889", "metadata": { "lastUpdateTime": "2016-08-31T00:16:32.169Z", "@type": "type.googleapis.com/google.cloud.speech.v1.LongrunningRecognizeMetadata", "startTime": "2016-08-31T00:16:29.539820Z", "progressPercent": 100 } "response": { "@type": "type.googleapis.com/google.cloud.speech.v1.LongRunningRecognizeResponse", "results": [{ "alternatives": [{ "confidence": 0.98267895, "transcript": "how old is the Brooklyn Bridge" }]}] }, "done": True, }
Tieni presente che done
è stato impostato su True
e che l'operazione response
contiene un insieme di risultati di tipo SpeechSpeechResult, che è dello stesso tipo restituito da una richiesta sincrona di riconoscimento dell'API Speech-to-Text.
Per impostazione predefinita, una risposta REST asincrona imposterà done
come valore predefinito. Tuttavia, poiché JSON non richiede valori predefiniti all'interno di un campo, quando si verifica se un'operazione è completata, è necessario verificare sia che il campo done
sia presente sia che sia impostato su True
.
Richieste di riconoscimento API Streaming Speech-to-Text
Una chiamata di riconoscimento dell'API Speech-to-Text di streaming è progettata per l'acquisizione e il riconoscimento in tempo reale dell'audio, all'interno di uno stream bidirezionale. La tua applicazione può inviare audio nello stream della richiesta e ricevere risultati provvisori e di riconoscimento finale nello stream della risposta in tempo reale. I risultati provvisori rappresentano il risultato di riconoscimento corrente per una sezione di audio, mentre il risultato di riconoscimento finale rappresenta l'ultima e migliore ipotesi per quella sezione di audio.
Richieste di streaming
A differenza delle chiamate sincrone e asincrone, in cui invii sia la configurazione che l'audio all'interno di una singola richiesta, la chiamata all'API di streaming Speech richiede l'invio di più richieste. I primi StreamingRecognizeRequest
devono contenere una configurazione di tipo
StreamingRiconoscimentoConfig
senza audio associato. I StreamingRecognizeRequest
successivi inviati nello stesso stream saranno quindi costituiti da frame consecutivi di byte audio non elaborati.
Un StreamingRecognitionConfig
è costituito dai seguenti campi:
config
: (obbligatorio) contiene le informazioni di configurazione per l'audio di tipo RecognitionConfig ed è lo stesso mostrato nelle richieste sincrone e asincrone.single_utterance
: (facoltativo, il valore predefinito èfalse
) indica se la richiesta deve terminare automaticamente dopo che il rilevamento vocale non viene più rilevato. Se impostato, Speech-to-Text rileverà pause, silenzio o audio non vocale per determinare quando interrompere il riconoscimento. Se non è impostato, lo stream continuerà ad ascoltare ed elaborare l'audio finché non verrà chiuso direttamente o finché la sua lunghezza massima non sarà stata superata. L'impostazione disingle_utterance
sutrue
è utile per l'elaborazione dei comandi vocali.interim_results
- (facoltativo, valore predefinito:false
) indica che questa richiesta di streaming dovrebbe restituire risultati temporanei che possono essere perfezionati in un secondo momento (dopo l'elaborazione di più audio). I risultati provvisori verranno annotati nelle risposte tramite l'impostazione diis_final
sufalse
.
Streaming delle risposte
I risultati del riconoscimento vocale di audio in streaming vengono restituiti in una serie di risposte di tipo StreamingRecognitionResponse. Questa risposta è composta dai seguenti campi:
speechEventType
contiene eventi di tipo SpeechEventType. Il valore di questi eventi indicherà quando è stata determinata una singola frase. Gli eventi vocali vengono utilizzati come indicatori all'interno della risposta dello stream.results
contiene l'elenco dei risultati, che possono essere risultati provvisori o finali, di tipo StreamingRecognitionResult. L'elencoresults
contiene i seguenti campi secondari:alternatives
contiene un elenco di trascrizioni alternative.isFinal
indica se i risultati ottenuti all'interno di questa voce dell'elenco sono provvisori o definitivi. Google potrebbe restituire più risultatiisFinal=true
in un singolo stream, ma il risultatoisFinal=true
è garantito solo dopo la chiusura dello stream in scrittura (metà chiusura).stability
indica la volatilità dei risultati ottenuti finora, con0.0
che indica instabilità completa, mentre1.0
indica stabilità completa. Tieni presente che, a differenza di questa operazione, che stima se una trascrizione è corretta,stability
stima se il risultato parziale può cambiare. Se ilisFinal
è impostato sutrue
,stability
non verrà impostato.