Package google.cloud.speech.v1p1beta1

Indice

Parlato

Servizio che implementa l'API Google Cloud Speech.

Riconoscimento

rpc Recognize(RecognizeRequest) returns (RecognizeResponse)

Esegue il riconoscimento vocale sincrono: ricevi i risultati dopo che tutto l'audio è stato inviato ed elaborato.

StreamingRecognize

rpc StreamingRecognize(StreamingRecognizeRequest) returns (StreamingRecognizeResponse)

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

bytes

I byte dei dati audio codificati come specificato in RecognitionConfig. Nota: come per tutti i campi di byte, i buffer dei proto utilizzano una rappresentazione binaria pura, mentre le rappresentazioni JSON usano il formato base64.

RecognitionConfig

Fornisce al riconoscimento informazioni come elaborare la richiesta.

Campi
encoding

AudioEncoding

Codifica dei dati audio inviati in tutti i messaggi RecognitionAudio. Questo campo è facoltativo per i file audio FLAC e WAV ed è obbligatorio per tutti gli altri formati audio. Per maggiori dettagli, vedi AudioEncoding.

sample_rate_hertz

int32

Frequenza di campionamento in Hertz dei dati audio inviati in tutti i messaggi RecognitionAudio. I valori validi sono: 8000-48000. 16.000 è ottimale. Per ottenere risultati ottimali, imposta la frequenza di campionamento della sorgente audio su 16000 Hz. Se non è possibile, utilizza la frequenza di campionamento nativa della sorgente audio (anziché il ricampionamento). Questo campo è facoltativo per i file audio FLAC e WAV, ma è obbligatorio per tutti gli altri formati audio. Per maggiori dettagli, vedi AudioEncoding.

audio_channel_count

int32

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 1-8. I valori validi per OGG_OPUS sono "1"-"254". Il valore valido per MULAW, AMR, AMR_WB e SPEEX_WITH_HEADER_BYTE è solo 1. Se 0 o omesso, il valore predefinito sarà un canale (mono). Nota: per impostazione predefinita riconosciamo solo il primo canale. Per eseguire un riconoscimento indipendente su ogni canale, imposta enable_separate_recognition_per_channel su "true".

enable_separate_recognition_per_channel

bool

Questo valore deve essere impostato su true in modo esplicito e su audio_channel_count > 1 per fare in modo che ogni canale venga riconosciuto separatamente. Il risultato del riconoscimento conterrà un campo channel_tag per indicare a quale canale appartiene. In caso contrario, riconosceremo solo il primo canale. La richiesta viene fatturata in modo cumulativo per tutti i canali riconosciuti: audio_channel_count moltiplicato per la durata dell'audio.

language_code

string

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

bool

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

SpeakerDiarizationConfig

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

string

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.

Modello Descrizione

default

Ideale per audio diverso dagli altri modelli audio specifici, ad esempio audio di lunga durata. Idealmente, l'audio è ad alta fedeltà, registrato con una frequenza di campionamento pari o superiore a 16 kHz.

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

RecognitionConfig

Obbligatorio. Fornisce al riconoscimento informazioni come elaborare la richiesta.

audio

RecognitionAudio

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[]

SpeechRecognitionResult

Elenco sequenziale dei risultati della trascrizione corrispondenti a parti sequenziali di audio.

SpeakerDiarizationConfig

Configurazione per abilitare la diarizzazione dello speaker.

Campi
enable_speaker_diarization

bool

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

int32

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

int32

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

string

Testo della trascrizione che rappresenta le parole pronunciate dall'utente.

confidence

float

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 is_final=true. Non è garantito che questo campo sia preciso e gli utenti non devono farvi affidamento per essere fornito sempre. Il valore predefinito 0,0 è un valore sentinel che indica che confidence non è stato impostato.

words[]

WordInfo

Un elenco di informazioni specifiche di ogni parola riconosciuta. Nota: quando enable_speaker_diarization è true, vedrai tutte le parole dall'inizio dell'audio.

SpeechRecognitionResult

Un risultato di riconoscimento vocale corrispondente a una parte dell'audio.

Campi
alternatives[]

SpeechRecognitionAlternative

Può contenere una o più ipotesi di riconoscimento (fino al massimo specificato in max_alternatives). Queste alternative vengono ordinate in termini di accuratezza, in base alla quale la migliore (prima) alternativa è la più probabile, in base alla classificazione del riconoscimento.

channel_tag

int32

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

string

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

RecognitionConfig

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[]

SpeechRecognitionAlternative

Può contenere una o più ipotesi di riconoscimento (fino al massimo specificato in max_alternatives). Queste alternative vengono ordinate in termini di accuratezza, in base alla quale la migliore (prima) alternativa è la più probabile, in base alla classificazione del riconoscimento.

is_final

bool

Se false, questo StreamingRecognitionResult rappresenta un risultato temporaneo che potrebbe cambiare. Se true, questa è l'ultima volta che il servizio vocale restituisce questo StreamingRecognitionResult specifico, il riconoscimento non restituirà altre ipotesi per questa parte della trascrizione e l'audio corrispondente.

stability

float

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 (is_final=false). Il valore predefinito 0,0 è un valore sentinel che indica che stability non è stato impostato.

result_end_time

Duration

Offset temporale della fine di questo risultato rispetto all'inizio dell'audio.

channel_tag

int32

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

string

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

StreamingRecognitionConfig

Fornisce al riconoscimento informazioni come elaborare la richiesta. Il primo messaggio StreamingRecognizeRequest deve contenere un messaggio streaming_config.

audio_content

bytes

Dati audio da riconoscere. I blocchi sequenziali di dati audio vengono inviati in messaggi StreamingRecognizeRequest sequenziali. Il primo messaggio StreamingRecognizeRequest non deve contenere dati audio_content e tutti i messaggi StreamingRecognizeRequest successivi devono contenere dati audio_content. I byte audio devono essere codificati come specificato nel criterio RecognitionConfig. Nota: come per tutti i campi di byte, i buffer dei proto utilizzano una rappresentazione binaria pura (non base64). Vedi Limiti per i contenuti.

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:

  1. results { alternatives { transcript: "tube" } stability: 0.01 }

  2. results { alternatives { transcript: "to be a" } stability: 0.01 }

  3. results { alternatives { transcript: "to be" } stability: 0.9 } results { alternatives { transcript: " or not to be" } stability: 0.01 }

  4. results { alternatives { transcript: "to be or not to be" confidence: 0.92 } alternatives { transcript: "to bee or not to bee" } is_final: true }

  5. results { alternatives { transcript: " that's" } stability: 0.01 }

  6. results { alternatives { transcript: " that is" } stability: 0.9 } results { alternatives { transcript: " the question" } stability: 0.01 }

  7. 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 due results 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 solo results ad alta stabilità.

  • I valori specifici di stability e confidence 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

Status

Se impostato, restituisce un messaggio google.rpc.Status in cui è specificato l'errore relativo all'operazione.

results[]

StreamingRecognitionResult

Questo elenco ripetuto contiene zero o più risultati corrispondenti a parti consecutive dell'audio attualmente in fase di elaborazione. Contiene zero o un risultato is_final=true (la parte appena liquidata), seguiti da zero o più risultati is_final=false (i risultati provvisori).

speech_event_type

SpeechEventType

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

Duration

Differenza temporale rispetto all'inizio dell'audio e corrispondente all'inizio del parlato. Questo campo viene impostato solo se enable_word_time_offsets=true e solo nell'ipotesi superiore. Questa è una funzionalità sperimentale e la precisione della offset temporale può variare.

end_time

Duration

Differenza temporale rispetto all'inizio dell'audio e corrispondente alla fine del parlato. Questo campo viene impostato solo se enable_word_time_offsets=true e solo nell'ipotesi superiore. Questa è una funzionalità sperimentale e la precisione della offset temporale può variare.

word

string

La parola corrispondente a questo insieme di informazioni.

speaker_tag

int32

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.