Rilevamento dell'attività vocale
Il servizio IBM Watson® Speech to Text offre due parametri di rilevamento dell'attività vocale per controllare quale audio viene utilizzato per il riconoscimento vocale. I parametri specificano la sensibilità del servizio agli eventi non vocali e al rumore di fondo. I parametri sono indipendenti: è possibile utilizzarli singolarmente o insieme.
Il rilevamento dell'attività vocale è supportato per la maggior parte dei modelli di lingua. Per ulteriori informazioni, vedi Supporto del modello di lingua.
Come funziona il rilevamento dell'attività vocale
Il rilevamento dell'attività vocale utilizza il flusso audio in ingresso e determina quali parti del flusso trasmettere per il riconoscimento vocale. Il parlato di sottofondo e il rumore possono causare errori di riconoscimento vocale, tra cui trascrizioni errate, parole in più o parole mancanti nell'audio in ingresso. La funzione di rilevamento dell'attività vocale può aiutarti a garantire che viene elaborato solo l'audio pertinente al riconoscimento vocale.
Puoi utilizzare la funzione per controllare i seguenti aspetti del riconoscimento vocale:
- Eliminazione del parlato di sottofondo. I dati dei call-center spesso contengono cross-talk ("cose sentite di sfuggita") da altri agenti. È possibile impostare una soglia di volume che fa sì che il servizio ignori il parlato di sottofondo più silenzioso del livello specificato.
- Eliminazione del rumore di sottofondo. Alcuni audio, ad esempio le registrazioni vocali in una fabbrica, possono contenere un elevato livello di rumore di sottofondo. È possibile impostare una soglia che fa sì che il sistema ignori i rumori di fondo più silenziosi del livello specificato.
- Eliminazione degli eventi audio non vocali. Gli eventi di toni e musica di sottofondo, ad esempio un file audio riprodotto a un cliente che è in attesa su una linea telefonica, possono causare un riconoscimento non accurato. Anche il silenzio può provocare un riconoscimento non necessario o degli errori di trascrizione. È possibile impostare una soglia che fa sì che il sistema ignori gli eventi più silenziosi del livello specificato.
Per impostazione predefinita, il rilevamento dell'attività vocale è configurato per fornire prestazioni ottimali per il caso generale di ciascun modello. Per casi specifici, le impostazioni predefinite potrebbero non essere ottimali e possono portare a una trascrizione lenta o a inserimenti ed eliminazioni di parole. Ti incoraggiamo a sperimentare diverse impostazioni per determinare quali valori sono i migliori per il tuo audio.
Sensibilità del rilevatore vocale
Utilizzare il speech_detector_sensitivity parametro per regolare la sensibilità del rilevamento dell'attività vocale. Utilizza il parametro per eliminare gli inserimenti di parole da file audio musicali, colpi di tosse e altri eventi
non vocali. Il servizio distorce l'audio che passa per il riconoscimento vocale valutando porzioni dell'audio di input con precedenti modelli di attività vocale e non vocale.
Specifica un valore mobile compreso tra 0,0 e 1,0. Il valore predefinito è 0,5, che fornisce un compromesso ragionevole per il livello di sensibilità. Un valore di 0,0 elimina tutto l'audio (non viene trascritto alcun parlato). Un valore di
1,0 non elimina alcun audio (la sensibilità del rilevamento vocale viene disabilitata). I valori aumentano lungo una curva monotonica di sensibilità rispetto al parlato. Specificare una o due posizioni decimali di precisione (ad esempio, 0.55)
è in genere più che sufficiente.
Questo parametro può influenzare sia la qualità che la latenza del riconoscimento vocale:
- Valori più bassi possono ridurre la latenza perché viene trasmessa una quantità minore di audio per il riconoscimento vocale. Tuttavia, impostando un valore basso si potrebbero scartare parti dell'audio che contengono effettivamente del parlato, perdendo così contenuti utili dalla trascrizione.
- Valori più alti possono aumentare la latenza perché viene potenzialmente passato più audio per il riconoscimento vocale. Tuttavia, impostando un valore elevato potrebbero essere accettati blocchi audio che contengono eventi non verbali, aggiungendo contenuti spuri alla trascrizione.
Esempio di sensibilità del rilevatore vocale
La seguente richiesta di esempio specifica un valore di 0,6 per il parametro speech_detector_sensitivity con l'interfaccia HTTP sincrona. Il servizio riconosce leggermente meglio gli eventi potenzialmente non vocali rispetto al
valore predefinito.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?speech_detector_sensitivity=0.6"
Rilevamento dell'attività vocale (SAD)
Speech Activity Detection (SAD), è stato aggiornato per includere un nuovo metodo migliorato oltre a quello esistente nell'API Speech To Text recognize. Il nuovo metodo aumenta l'accuratezza e le prestazioni nel rilevamento dei
confini del parlato all'interno del flusso audio. Può essere utilizzato impostando sad_module:2.
Funzioni potenziate
Il SAD presenta le seguenti caratteristiche avanzate:
- Migliori prestazioni nel rilevamento dell'inizio e della fine del parlato.
- Migliore soppressione del rumore.
- Tempo di risposta più rapido nell'identificazione dei segmenti con il parlato.
- Maggiore precisione di riconoscimento in ambienti rumorosi.
Utilizzo consigliato
Il SAD può utilizzare sia il metodo esistente che il nuovo metodo migliorato:
sad_module: 1utilizza il modello SAD esistente (impostazione predefinita).sad_module: 2utilizza il nuovo modello SAD. Viene utilizzato per applicazioni che richiedono reattività in tempo reale, gestione del rumore di fondo o applicazioni che dipendono dall'attività vocale, come ad esempiospeech_ begin_event.
Ad esempio,
curl -X POST -u "apikey:<apikey>" \
-H "Content-Type: audio/wav" \
--data-binary @{path}New_Recording.wav \
"{url}/v1/detect_language/sad_module:2"
Rilevamento degli eventi di inizio discorso
Utilizzando il rilevamento degli eventi di inizio discorso, è ora possibile ricevere una notifica tempestiva con l'API recognize. Rileva l'inizio del parlato nel flusso audio in entrata e invia una notifica all'utente. Quando nella
richiesta viene impostato speech_begin_event: true, viene inviato un nuovo oggetto di risposta che indica l'inizio di un segmento vocale. Può essere utile per la trascrizione in tempo reale o per le applicazioni guidate dall'attività
vocale. Può essere utilizzato dalle applicazioni client per attivare azioni a valle, ad esempio mostrando gli indicatori speech started o active e preparando pipeline di elaborazione in tempo reale.
Un evento di inizio discorso viene generato in due scenari:
- Quando un discorso viene rilevato per primo in un flusso audio
- Dopo ogni periodo di
end_of_phrase_silence_time, se viene rilevata una nuova conversazione
La sensibilità del rilevamento può essere regolata utilizzando il parametro speech_event_sensitivity (predefinito 0.5 ), che misura l'intensità del segnale vocale che attiva l'evento di inizio del parlato.
Valori maggiori indicano che è più sensibile al parlato. Valori più vicini a 0 rendono il rilevamento meno sensibile al rumore di fondo. Valori più vicini a 1 aumentano le possibilità di rilevare un evento di inizio parlato, ma
potrebbero generare falsi allarmi in ambienti rumorosi.
Utilizzando speech_event_sensitivity, è possibile controllare la sensibilità dell'evento di inizio del parlato separatamente dalla trascrizione STT, che è controllata dal parametro speech_detector_sensitivity. speech_event_sensitivity ignora il rumore per speech_begin_event, che può fornire falsi eventi di barge-in.
Utilizzo consigliato
Si raccomanda di usare sad_module:2 quando si usa speech_begin_event.
Ad esempio,
curl -X POST "[URL]/v1/recognize?model=en-US&speech_begin_event=true&sad_module=2" \
-u "apikey:[APIKEY] " \
--header "content-type:audio/wav" \
--data-binary @example.wav
Risposta di esempio:
{
"result_index": 0,
"results": [
{
"speech_begin_event": {
"begin": 2.5
}
}
]
}
Soppressione audio in background
Utilizza il background_audio_suppression parametro per sopprimere l'audio di sottofondo in base al suo volume, in modo da evitare che venga trascritto come parlato. Utilizza il parametro per eliminare conversazioni marginali o rumore
di sottofondo. Ad esempio, utilizzare questo parametro per gestire suoni di fondo costanti e silenziosi, come i segnali audio deboli. Poiché il rumore può interferire con la trascrizione, può produrre del contenuto in cui non si verifica del
parlato reale nell'audio.
Specifica un valore mobile compreso nell'intervallo 0,0 e 1,0. Il valore predefinito è 0,0, che non fornisce alcuna eliminazione (l'eliminazione dell'audio di sottofondo è disabilitata). Un valore di 0,5 fornisce un livello ragionevole di eliminazione
dell'audio per un utilizzo generale. Un valore di 1,0 elimina tutto l'audio (non viene trascritto alcun parlato). I valori aumentano lungo una curva monotonica. Specificare una o due posizioni decimali di precisione (ad esempio, 0.55)
è in genere più che sufficiente.
Questo parametro può inoltre influenzare sia la qualità che la latenza del riconoscimento vocale. Tuttavia, poiché l'eliminazione del rumore di sottofondo è disabilitata per impostazione predefinita, impostare il parametro su un valore maggiore di zero non può che migliorare la latenza. Ma dei valori maggiori possono gradualmente ridurre l'audio passato per il riconoscimento vocale, la qual cosa può causare la perdita di contenuto valido dalla trascrizione.
Esempio di soppressione audio in background
La seguente richiesta di esempio specifica un valore di 0,5 per il parametro background_audio_suppression con l'interfaccia HTTP sincrona. Il servizio elimina un livello ragionevole di audio di sottofondo.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file1.flac \
"{url}/v1/recognize?background_audio_suppression=0.5"
Supporto del modello di lingua
I parametri speech_detector_sensitivity e background_audio_suppression sono supportati per l'utilizzo con i seguenti modelli di lingua:
- Per i modelli vocali di grandi dimensioni e i modelli di nuova generazione, i parametri sono supportati da tutti i modelli.
- Per i modelli di generazione precedente, i parametri sono supportati dalla maggior parte dei modelli. I seguenti modelli non supportano il rilevamento dell'attività vocale. I parametri vengono ignorati se utilizzati con questi
modelli.
- Modello arabo a banda larga (
ar-MS_BroadbandModel) - Modello a banda larga per il portoghese brasiliano (
pt-BR_BroadbandModel) - Modello a banda larga per il cinese (
zh-CN_BroadbandModel) - Modello a banda stretta per il cinese (
zh-CN_NarrowbandModel) - Modello a banda larga per il tedesco (
de-DE_BroadbandModel)
- Modello arabo a banda larga (