Best practice per l'audio

Questa pagina contiene consigli su come fornire dati vocali all'API Assistente Google. Queste linee guida sono state concepite per garantire maggiore efficienza e precisione, nonché tempi di risposta ragionevoli da parte del servizio.

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 all'utente, 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.

Idealmente:

  • Il livello audio deve essere calibrato in modo che il segnale di ingresso non venga tagliato e i livelli audio di picco della voce raggiungano circa -20-10 dBFS.
  • Il dispositivo deve presentare un'ampiezza approssimativamente "piatta" rispetto alle caratteristiche di frequenza (+- 3 dB da 100 Hz a 8000 Hz).
  • La distorsione armonica totale dovrebbe essere inferiore all'1% da 100 Hz a 8000 Hz a livello di ingresso SPL di 90 dB.

Frequenza di campionamento

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

Dimensioni frame

L'Assistente Google riconosce l'audio in diretta quando viene acquisito da un microfono. Lo stream audio deve essere suddiviso in frame e inviato in messaggi AssistRequest consecutivi. Sono accettate le dimensioni di qualsiasi fotogramma. I frame più grandi sono più efficienti, ma aumentano la latenza. Si consiglia una dimensione di fotogramma di 100 millisecondi come buon compromesso tra latenza ed efficienza.