Best practice per fornire dati all'API Speech-to-Text

Questo documento contiene suggerimenti su come fornire dati vocali all'API Speech-to-Text. Queste linee guida sono state concepite per garantire maggiore efficienza e precisione, nonché tempi di risposta ragionevoli da parte del servizio. L'utilizzo dell'API Speech-to-Text funziona al meglio quando i dati inviati al servizio rientrano nei parametri descritti in questo documento.

Se segui queste linee guida e non ottieni i risultati che ti aspetti dall'API, consulta la sezione Risoluzione dei problemi e assistenza.

Per risultati ottimali... Se possibile, evita di...
Acquisisci l'audio con una frequenza di campionamento di almeno 16.000 Hz. Frequenze di campionamento inferiori potrebbero ridurre l'accuratezza. Tuttavia, evita di campionare nuovamente. Ad esempio, nel caso della telefonia, la frequenza nativa è solitamente pari a 8000 Hz, ovvero la frequenza che deve essere inviata al servizio.
Utilizza un codec senza perdita di dati per registrare e trasmettere l'audio. È consigliato usare FLAC o LINEAR16. L'utilizzo di mp3, mp4, m4a, mu-law, a-law o altri codec con perdita di dati durante la registrazione o la trasmissione può ridurre la precisione. Se l'audio è già in una codifica non supportata dall'API, transcodifica il file in formato FLAC o LINEAR16 senza perdita di dati. Se l'applicazione deve utilizzare un codec con perdita di banda per preservare la larghezza di banda, consigliamo i codec AMR_WB, OGG_OPUS o SPEEX_WITH_HEADER_BYTE, nell'ordine preferito.
Il riconoscimento è progettato per ignorare le voci e il rumore di fondo senza ulteriore cancellazione del rumore. Tuttavia, per ottenere risultati ottimali, posiziona il microfono il più vicino possibile all'utente, in particolare quando è presente rumore di fondo. Rumori di fondo ed echi eccessivi possono ridurre l'accuratezza, in particolare se viene utilizzato anche un codec con perdita di dati.
Se acquisisci audio da più persone e ciascuna persona viene registrata su un canale separato, invia ciascun canale separatamente per ottenere i migliori risultati di riconoscimento. Tuttavia, se tutti gli altoparlanti vengono miscelati in un unico canale di registrazione, invia la registrazione così com'è. Più persone che parlano contemporaneamente o a volumi diversi potrebbero essere interpretati come rumore di fondo e ignorati.
Usa i suggerimenti di parole e frasi per aggiungere nomi e termini al vocabolario e aumentare la precisione di parole e frasi specifiche. Il riconoscimento ha un vocabolario molto ampio, tuttavia i termini e i nomi propri fuori dal vocabolario non verranno riconosciuti.
Per query o comandi brevi, utilizza StreamingRecognize con single_utterance impostato su true. Questo ottimizza il riconoscimento per brevi frasi e riduce al minimo la latenza. Viene usato Recognize o LongRunningRecognize per usi brevi di query o comandi.

Frequenza di campionamento

Se possibile, imposta la frequenza di campionamento della sorgente audio su 16.000 Hz. In caso contrario, imposta il valore sample_rate_hertz in modo che corrisponda alla frequenza di campionamento nativa della sorgente audio (anziché il ricampionamento).

Dimensioni frame

Il riconoscimento streaming riconosce l'audio in diretta quando viene acquisito da un microfono o da un'altra sorgente audio. Lo stream audio viene suddiviso in frame e inviato messaggi StreamingRecognizeRequest consecutivi. Sono accettate le dimensioni di qualsiasi fotogramma. I frame più grandi sono più efficienti, ma aggiungono latenza. Si consiglia una dimensione di fotogramma di 100 millisecondi come un buon compromesso tra latenza ed efficienza.

Pre-elaborazione dell'audio

È preferibile fornire un audio il più pulito possibile utilizzando un microfono di buona qualità e ben posizionato. Tuttavia, l'applicazione dell'elaborazione del segnale di riduzione del rumore all'audio prima di inviarlo al servizio in genere riduce la precisione del riconoscimento. Il servizio è progettato per gestire audio rumorosi.

Per ottenere risultati ottimali:

  • Posiziona il microfono il più vicino possibile alla persona che parla, in particolare quando è presente rumore di fondo.
  • Evita di tagliare l'audio.
  • Non utilizzare il controllo automatico del guadagno (AGC).
  • L'elaborazione della riduzione del rumore deve essere disattivata.
  • Ascoltare alcuni esempi di audio. Deve essere nitido, senza distorsioni o rumori inattesi.

Richiedi configurazione

Assicurati di descrivere con precisione i dati audio inviati con la tua richiesta all'API Speech-to-Text. Se ti assicuri che il valore RecognitionConfig per la tua richiesta descriva i valori sampleRateHertz, encoding e languageCode corretti, la trascrizione e la fatturazione saranno il più possibile precise.