Indice
Speech
(interfaccia)RecognitionAudio
(messaggio)RecognitionConfig
(messaggio)RecognitionConfig.AudioEncoding
(enum)RecognizeRequest
(messaggio)RecognizeResponse
(messaggio)SpeakerDiarizationConfig
(messaggio)SpeechRecognitionAlternative
(messaggio)SpeechRecognitionResult
(messaggio)StreamingRecognitionConfig
(messaggio)StreamingRecognitionResult
(messaggio)StreamingRecognizeRequest
(messaggio)StreamingRecognizeResponse
(messaggio)StreamingRecognizeResponse.SpeechEventType
(enum)WordInfo
(messaggio)
Parlato
Servizio che implementa l'API Google Cloud Speech.
Riconoscimento | |
---|---|
Esegue il riconoscimento vocale sincrono: ricevi i risultati dopo che tutto l'audio è stato inviato ed elaborato. |
StreamingRecognize | |
---|---|
Esegue il riconoscimento vocale in streaming bidirezionale: ricevi risultati durante l'invio dell'audio. Questo metodo è disponibile solo tramite l'API gRPC (non REST). |
RecognitionAudio
Contiene dati audio nella codifica specificata in RecognitionConfig
. È necessario specificare content
o uri
. Se fornisci entrambi o nessuno dei due resi google.rpc.Code.INVALID_ARGUMENT
, Vedi Limiti per i contenuti.
Campi | ||
---|---|---|
Campo di unione audio_source . La sorgente audio, che è un contenuto in linea o un URI Google Cloud Storage. audio_source può essere solo uno dei seguenti: |
||
content |
I byte dei dati audio codificati come specificato in |
RecognitionConfig
Fornisce al riconoscimento informazioni come elaborare la richiesta.
Campi | |||||
---|---|---|---|---|---|
encoding |
Codifica dei dati audio inviati in tutti i messaggi |
||||
sample_rate_hertz |
Frequenza di campionamento in Hertz dei dati audio inviati in tutti i messaggi |
||||
audio_channel_count |
Il numero di canali nei dati audio di input. Imposta questa opzione SOLO per il riconoscimento MULTI-CANALE. I valori validi per LINEAR16 e FLAC sono |
||||
enable_separate_recognition_per_channel |
Questo valore deve essere impostato su |
||||
language_code |
Obbligatorio. La lingua dell'audio fornito sotto forma di tag lingua BCP-47. Esempio: "it-IT". Consulta la pagina Supporto delle lingue per un elenco dei codici lingua attualmente supportati. |
||||
enable_automatic_punctuation |
Se il valore è "true", la punteggiatura viene aggiunta alle ipotesi dei risultati del riconoscimento. Questa funzionalità è disponibile solo in alcune lingue. L'impostazione di questa opzione per le richieste in altre lingue non ha alcun effetto. Il valore predefinito "false" non aggiunge punteggiatura alle ipotesi. |
||||
diarization_config |
Configurazione per abilitare la diarizzazione degli speaker e impostare parametri aggiuntivi per renderla più adatta alla tua applicazione. Nota: quando questa opzione è attivata, inviamo tutte le parole dall'inizio dell'audio per l'alternativa superiore in ogni risposta STREAMING consecutive. Ciò viene fatto per migliorare i nostri tag speaker man mano che i nostri modelli imparano a identificare i relatori nella conversazione nel corso del tempo. Per le richieste non in streaming, i risultati della diarizzazione saranno forniti solo nell'alternativa superiore di FINAL SpeechRecognitionResult. |
||||
model |
Quale modello selezionare per la richiesta in questione. Seleziona il modello più adatto al tuo dominio per ottenere risultati ottimali. Se un modello non viene specificato in modo esplicito, ne selezioniamo automaticamente uno in base ai parametri nel RecognitionConfig.
|
AudioEncoding
La codifica dei dati audio inviati nella richiesta.
Tutte le codifiche supportano un solo canale audio (mono), a meno che non siano impostati i campi audio_channel_count
e enable_separate_recognition_per_channel
.
Per ottenere risultati ottimali, la sorgente audio deve essere acquisita e trasmessa utilizzando una codifica senza perdita di dati (FLAC
o LINEAR16
). La precisione del riconoscimento vocale può essere ridotta se si utilizzano codec con perdita di dati per acquisire o trasmettere l'audio, in particolare in presenza di rumore di fondo. I codec con perdita di dati includono MULAW
, AMR
, AMR_WB
, OGG_OPUS
, SPEEX_WITH_HEADER_BYTE
e MP3
.
I formati file audio FLAC
e WAV
includono un'intestazione che descrive i contenuti audio inclusi. Puoi richiedere il riconoscimento per WAV
file che contengono audio codificato LINEAR16
o MULAW
. Se invii il formato file audio FLAC
o WAV
nella tua richiesta, non è necessario specificare un AudioEncoding
; il formato di codifica audio viene determinato dall'intestazione del file. Se specifichi un valore AudioEncoding
quando invii l'audio FLAC
o WAV
, la configurazione di codifica deve corrispondere a quella descritta nell'intestazione audio; in caso contrario la richiesta restituisce un codice di errore google.rpc.Code.INVALID_ARGUMENT
.
Enum | |
---|---|
ENCODING_UNSPECIFIED |
Non specificato. |
LINEAR16 |
Campioni di small-endian con firma a 16 bit non compressi (PCM lineare). |
FLAC |
FLAC (Free Lossless Audio Codec) è la codifica consigliata perché è senza perdita di dati, pertanto il riconoscimento non è compromesso, e richiede solo circa la metà della larghezza di banda di LINEAR16 . La codifica dei flussi di dati FLAC supporta campioni a 16 e 24 bit, tuttavia non tutti i campi in STREAMINFO sono supportati. |
MULAW |
Campioni a 8 bit che compilano campioni audio a 14 bit utilizzando G.711 PCMU/mu-law. |
OGG_OPUS |
Frame audio codificati da Opus nel contenitore Ogg (OggOpus). sample_rate_hertz deve essere uno dei seguenti: 8000, 12000, 16000, 24000 o 48000. |
SPEEX_WITH_HEADER_BYTE |
Sebbene non sia consigliabile utilizzare codifiche con perdita di dati, se è necessaria una codifica con una velocità in bit molto bassa, è preferibile utilizzare OGG_OPUS rispetto alla codifica Speex. La codifica Speex supportata dall'API Cloud Speech ha un byte di intestazione in ogni blocco, come nel tipo MIME audio/x-speex-with-header-byte . Si tratta di una variante della codifica RTP Speex definita nel documento RFC 5574. Il flusso è una sequenza di blocchi, un blocco per pacchetto RTP. Ogni blocco inizia con un byte contenente la lunghezza del blocco, in byte, seguito da uno o più frame di dati Speex, riempiti in un numero integrale di byte (ottetti) come specificato in RFC 5574. In altre parole, ogni intestazione RTP viene sostituita con un singolo byte contenente la lunghezza del blocco. È supportata solo la banda larga Speex. sample_rate_hertz deve essere 16.000. |
RecognizeRequest
Il messaggio di primo livello inviato dal client per il metodo Recognize
.
Campi | |
---|---|
config |
Obbligatorio. Fornisce al riconoscimento informazioni come elaborare la richiesta. |
audio |
Obbligatorio. Dati audio da riconoscere. |
RecognizeResponse
L'unico messaggio restituito al client tramite il metodo Recognize
. Contiene il risultato come zero o più messaggi SpeechRecognitionResult
sequenziali.
Campi | |
---|---|
results[] |
Elenco sequenziale dei risultati della trascrizione corrispondenti a parti sequenziali di audio. |
SpeakerDiarizationConfig
Configurazione per abilitare la diarizzazione dello speaker.
Campi | |
---|---|
enable_speaker_diarization |
Se "true", consente il rilevamento di ogni parola riconosciuta nell'alternativa superiore del risultato del riconoscimento, utilizzando un tag speaker_tag fornito in WordInfo. |
min_speaker_count |
Numero minimo di partecipanti alla conversazione. Questo intervallo offre una maggiore flessibilità, consentendo al sistema di determinare automaticamente il numero corretto di speaker. Se non viene configurato, il valore predefinito è 2. |
max_speaker_count |
Numero massimo di partecipanti alla conversazione. Questo intervallo offre una maggiore flessibilità, consentendo al sistema di determinare automaticamente il numero corretto di speaker. Se non viene configurato, il valore predefinito è 6. |
SpeechRecognitionAlternative
Ipotesi alternative (ovvero elenco n-best).
Campi | |
---|---|
transcript |
Testo della trascrizione che rappresenta le parole pronunciate dall'utente. |
confidence |
La stima di confidenza è compresa tra 0,0 e 1,0. Un numero più alto indica una stima maggiore probabilità che le parole riconosciute siano corrette. Questo campo è impostato solo per l'alternativa superiore di un risultato non di streaming o di un risultato di streaming in cui |
words[] |
Un elenco di informazioni specifiche di ogni parola riconosciuta. Nota: quando |
SpeechRecognitionResult
Un risultato di riconoscimento vocale corrispondente a una parte dell'audio.
Campi | |
---|---|
alternatives[] |
Può contenere una o più ipotesi di riconoscimento (fino al massimo specificato in |
channel_tag |
Per l'audio multicanale, si tratta del numero del canale corrispondente al risultato riconosciuto per l'audio proveniente da quel canale. Per audio_channel_count = N, i valori di output possono variare da "1" a "N". |
language_code |
Solo output. Il tag della lingua BCP-47 per la lingua in questo risultato. È stato rilevato che questo codice lingua ha maggiori probabilità di essere pronunciato nell'audio. |
StreamingRecognitionConfig
Fornisce al riconoscimento informazioni come elaborare la richiesta.
Campi | |
---|---|
config |
Obbligatorio. Fornisce al riconoscimento informazioni come elaborare la richiesta. |
StreamingRecognitionResult
Un risultato di riconoscimento vocale in streaming corrispondente a una parte dell'audio attualmente in fase di elaborazione.
Campi | |
---|---|
alternatives[] |
Può contenere una o più ipotesi di riconoscimento (fino al massimo specificato in |
is_final |
Se |
stability |
Una stima della probabilità che il riconoscimento non modifichi la sua ipotesi su questo risultato temporaneo. I valori vanno da 0.0 (completamente instabile) a 1.0 (completamente stabile). Questo campo è fornito solo per i risultati provvisori ( |
result_end_time |
Offset temporale della fine di questo risultato rispetto all'inizio dell'audio. |
channel_tag |
Per l'audio multicanale, si tratta del numero del canale corrispondente al risultato riconosciuto per l'audio proveniente da quel canale. Per audio_channel_count = N, i valori di output possono variare da "1" a "N". |
language_code |
Solo output. Il tag della lingua BCP-47 per la lingua in questo risultato. È stato rilevato che questo codice lingua ha maggiori probabilità di essere pronunciato nell'audio. |
StreamingRecognizeRequest
Il messaggio di primo livello inviato dal client per il metodo StreamingRecognize
. Vengono inviati più messaggi StreamingRecognizeRequest
. Il primo messaggio deve contenere un messaggio streaming_config
e non deve contenere audio_content
. Tutti i messaggi successivi devono contenere audio_content
e non devono contenere un messaggio streaming_config
.
Campi | ||
---|---|---|
Campo di unione streaming_request . La richiesta di streaming, che è una configurazione di streaming o contenuti audio. streaming_request può essere solo uno dei seguenti: |
||
streaming_config |
Fornisce al riconoscimento informazioni come elaborare la richiesta. Il primo messaggio |
|
audio_content |
Dati audio da riconoscere. I blocchi sequenziali di dati audio vengono inviati in messaggi |
StreamingRecognizeResponse
StreamingRecognizeResponse
è l'unico messaggio restituito al client da StreamingRecognize
. Una serie di zero o più messaggi StreamingRecognizeResponse
viene riprodotta in streaming al client. Se non esiste un audio riconoscibile e single_utterance
è impostato su false, nessun messaggio viene trasmesso nuovamente al client.
Di seguito è riportato un esempio di una serie di dieci StreamingRecognizeResponse
che potrebbe essere restituita durante l'elaborazione dell'audio:
results { alternatives { transcript: "tube" } stability: 0.01 }
results { alternatives { transcript: "to be a" } stability: 0.01 }
results { alternatives { transcript: "to be" } stability: 0.9 } results { alternatives { transcript: " or not to be" } stability: 0.01 }
results { alternatives { transcript: "to be or not to be" confidence: 0.92 } alternatives { transcript: "to bee or not to bee" } is_final: true }
results { alternatives { transcript: " that's" } stability: 0.01 }
results { alternatives { transcript: " that is" } stability: 0.9 } results { alternatives { transcript: " the question" } stability: 0.01 }
results { alternatives { transcript: " that is the question" confidence: 0.98 } alternatives { transcript: " that was the question" } is_final: true }
Note
Solo due delle precedenti risposte 4 e 7 contengono risultati finali; sono indicate da
is_final: true
. La concatenazione di questi elementi genera la trascrizione completa: "essere o non essere questa è la domanda".Gli altri contengono
results
provvisori. Il numero 3 e il numero 6 contengono dueresults
provvisori: la prima parte ha un'elevata stabilità e ha meno probabilità di cambiare; la seconda ha una stabilità bassa ed è molto probabile che cambi. Un progettista UI potrebbe scegliere di mostrare soloresults
ad alta stabilità.I valori specifici di
stability
econfidence
mostrati sopra sono solo a scopo illustrativo. I valori effettivi possono variare.In ogni risposta, verrà impostato solo uno di questi campi:
error
,speech_event_type
o uno o piùresults
(ripetuti).
Campi | |
---|---|
error |
Se impostato, restituisce un messaggio |
results[] |
Questo elenco ripetuto contiene zero o più risultati corrispondenti a parti consecutive dell'audio attualmente in fase di elaborazione. Contiene zero o un risultato |
speech_event_type |
Indica il tipo di evento vocale. |
SpeechEventType
Indica il tipo di evento vocale.
Enum | |
---|---|
SPEECH_EVENT_UNSPECIFIED |
Nessun evento vocale specificato. |
END_OF_SINGLE_UTTERANCE |
Questo evento indica che il server ha rilevato la fine delle frasi vocali dell'utente e non si aspetta ulteriori comandi vocali. Pertanto, il server non elaborerà audio aggiuntivo (anche se in seguito potrebbe restituire risultati aggiuntivi). Il client dovrebbe interrompere l'invio di dati audio aggiuntivi, chiudere a metà la connessione gRPC e attendere eventuali risultati aggiuntivi fino a quando il server non chiude la connessione gRPC. Questo evento viene inviato solo se single_utterance è stato impostato su true e non viene utilizzato negli altri casi. |
WordInfo
Informazioni specifiche di una parola per le parole riconosciute.
Campi | |
---|---|
start_time |
Differenza temporale rispetto all'inizio dell'audio e corrispondente all'inizio del parlato. Questo campo viene impostato solo se |
end_time |
Differenza temporale rispetto all'inizio dell'audio e corrispondente alla fine del parlato. Questo campo viene impostato solo se |
word |
La parola corrispondente a questo insieme di informazioni. |
speaker_tag |
Solo output. Viene assegnato un valore intero distinto a ogni altoparlante nell'audio. Questo campo specifica quale di questi interlocutori è stato rilevato che ha pronunciato questa parola. I valori vanno da "1" a diarization_speaker_count. speaker_tag è impostato se allow_speaker_diarization = "true" e solo nell'alternativa superiore. |