Ricerca di parole chiave e alternative di parole
Il servizio IBM Watson® Speech to Text è in grado di identificare le parole chiave specificate dall'utente nei risultati della trascrizione. Può anche suggerire parole alternative che sono acusticamente simili alle parole di una trascrizione. In entrambi i casi, le parole chiave e le alternative devono soddisfare un livello di confidenza specificato dall'utente.
Individuazione di parole chiave
I parametri " keywords
" e " keywords_threshold
" sono supportati solo con i modelli della generazione precedente, non con quelli della generazione successiva.
La funzione di individuazione di parole chiave rileva specifiche stringhe in una trascrizione. Il servizio può individuare la stessa parola chiave più volte e notificare ciascuna ricorrenza. Il servizio individua le parole chiave solo nei risultati finali, non in quelli provvisori. Per impostazione predefinita, il servizio non esegue alcuna individuazione di parole chiave.
Per utilizzare l'individuazione di parole chiave, devi specificare entrambi i seguenti parametri:
-
Utilizza il parametro
keywords
per specificare un array di stringhe da individuare. Il servizio non individua alcuna parola chiave se ometti il parametro o specifichi un array vuoto. Una stringa di parole chiave può includere più di un token. Ad esempio, la parola chiaveSpeech to Text
ha tre token. La corrispondenza delle parole chiave non fa distinzione tra maiuscole e minuscole, quindiSpeech to Text
è effettivamente equivalente aspeech to text
.Per l'inglese (Stati Uniti), il servizio normalizza ciascuna parola chiave per mettere in corrispondenza le stringhe pronunciate con quelle scritte. Ad esempio, normalizza i numeri per mettere in corrispondenza il modo in cui sono pronunciati rispetto a come sono scritti. Per le altre lingue, le parole chiave devono essere specificate come vengono pronunciate.
-
Utilizza il parametro
keywords_threshold
per specificare una probabilità tra 0.0 e 1.0 di una corrispondenza di parola chiave. La soglia indica il limite inferiore per il livello di attendibilità che il servizio deve avere perché una parola corrisponda alla parola chiave. Una parola chiave viene individuata nella trascrizione solo se la sua attendibilità è superiore o uguale alla soglia specificata.La specifica di una soglia ridotta può, potenzialmente, produrre molte corrispondenze. Se specifichi una soglia, devi anche specificare una o più parole chiave. Ometti il parametro per non restituire alcuna corrispondenza.
All'individuazione di parole chiave si applicano i seguenti limiti:
- Puoi individuare un massimo di 1000 parole chiave con una singola richiesta.
- Una singola parola chiave può avere una lunghezza massima di 1024 caratteri. La lunghezza massima effettiva per le lingue a doppio byte potrebbe essere inferiore.
- La maggior parte dei server e proxy HTTP impongono un limite di 8 KB ai parametri di una richiesta. Individuare un numero molto elevato di parole chiave o molte parole chiave lunghe può far superare questo limite. Se devi abbinare più parole chiave, considera l'utilizzo di una richiesta HTTP a più parti.
L'individuazione di parole chiave è necessaria per identificare le parole chiave in un flusso audio. Non puoi identificare le parole chiave elaborando una trascrizione finale perché la trascrizione rappresenta i migliori risultati della decodifica del servizio per l'audio di input. Non include i token con punteggi di attendibilità più bassi che potrebbero rappresentare una parola rilevante. Pertanto, l'applicazione degli strumenti di elaborazione del testo a una trascrizione sul lato client potrebbe non identificare le parole chiave. È necessaria una rappresentazione più nutrita di risultati della decodifica e tale rappresentazione è disponibile solo sul server.
Risultati dell'individuazione di parole chiave
Il servizio restituisce i risultati in un campo keywords_result
che è un elemento dell'array results
. Il campo keywords_result
è un dizionario, o un array associativo, di proprietà enumerabili. Ciascuna
proprietà è identificata da una specifica parola chiave e include un array di oggetti. Il servizio restituisce un elemento dell'array per ciascuna corrispondenza che trova per la parola chiave. L'oggetto per ogni corrispondenza comprende
i seguenti campi:
normalized_text
è la parola chiave specificata che viene normalizzata alla frase pronunciata che corrispondeva nell'audio di input.start_time
è il tempo di inizio, in secondi, della corrispondenza.end_time
è il tempo di fine, in secondi, della corrispondenza.confidence
è l'attendibilità del servizio che la corrispondenza rappresenti la parola chiave specificata. L'attendibilità deve essere almeno grande quanto la soglia specificata per essere inclusa nei risultati.
Una parola chiave per cui il servizio non trova alcuna corrispondenza viene omessa dall'array. Una parola chiave potrebbe non essere trovata se
-
L'audio semplicemente non include la parola chiave. L'assenza della parola chiave è la spiegazione più ovvia.
-
La soglia è impostata troppo alta. Il servizio potrebbe identificare la parola chiave ma con un livello più basso di attendibilità, nel qual caso omette la corrispondenza dai risultati.
-
Una stringa di parole chiave che contiene più token (ad esempio,
Speech to Text
) viene espressa con troppo silenzio tra i suoi token. Quando il servizio trascrive l'audio, ritaglia il flusso in una serie di blocchi. Ogni blocco rappresenta una porzione continua di audio che non ha un intervallo di silenzio che supera il mezzo secondo. Crea un array di oggetti di risultato che è formato da questi blocchi.Il servizio mette in corrispondenza una parola chiave multi-token solo se
- I token della parola chiave sono nello stesso blocco.
- I token sono adiacenti o separati da uno scarto di non più di 0,1 secondi.
In quest'ultimo caso, tra due token della parola chiave può esserci un breve riempitivo o un'espressione non lessicale, come "uhm" o "beh". In questo caso, i modelli della generazione precedente possono inserire un indicatore di esitazione in questa posizione della trascrizione. I modelli di nuova generazione includono l'effettiva esitazione nei risultati della trascrizione. Per ulteriori informazioni, vedere Esitazioni nel parlato e marcatori di esitazione.
Esempio di individuazione di parole chiave
La seguente richiesta di esempio imposta il parametro " keywords
" su una matrice codificata in " URL " di tre stringhe (colorado
, tornado
e tornadoes
) e il parametro
" keywords_threshold
" su " 0.5
":
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/flac" \
--data-binary @{path}audio-file.flac \
"{url}/v1/recognize?keywords=colorado%2Ctornado%2Ctornadoes&keywords_threshold=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-file.flac \
"{url}/v1/recognize?keywords=colorado%2Ctornado%2Ctornadoes&keywords_threshold=0.5"
Il servizio trova occorrenze qualificanti di colorado
e tornadoes
:
{
"result_index": 0,
"results": [
{
"keywords_result": {
"colorado": [
{
"normalized_text": "Colorado",
"start_time": 4.94,
"confidence": 0.91,
"end_time": 5.62
}
],
"tornadoes": [
{
"normalized_text": "tornadoes",
"start_time": 1.52,
"confidence": 1.0,
"end_time": 2.15
}
]
},
"alternatives": [
{
"confidence": 0.96,
"transcript": "several tornadoes touch down as a line of
severe thunderstorms swept through Colorado on Sunday "
}
],
"final": true
}
]
}
Alternative alle parole
Il parametro " word_alternatives_threshold
" è supportato solo dai modelli della generazione precedente, non da quelli della generazione successiva.
La funzione di parole alternative (nota anche come reti di confusione ) riporta ipotesi di alternative acusticamente simili per le parole dell'audio in ingresso. Ad esempio, la parola Austin
potrebbe essere la migliore
ipotesi per una parola dall'audio. La parola Boston
è però un'altra possibile ipotesi nello stesso intervallo di tempo. Le ipotesi condividono un tempo di inizio e uno di fine comuni ma hanno ortografie differenti e punteggi di
attendibilità di solito differenti.
Per impostazione predefinito, il servizio non notifica le alternative alle parole. Per indicare che desideri ricevere le ipotesi alternative, utilizzi il parametro word_alternatives_threshold
per specificare una probabilità compresa
tra 0.0 e 1.0. La soglia indica il limite inferiore per il livello di attendibilità che il servizio deve attribuire a un'ipotesi per restituirla come alternativa di parola. Un'ipotesi viene restituita solo se la sua attendibilità è maggiore
o uguale alla soglia specificata.
Puoi pensare alle alternative alle parole come la linea temporale per una trascrizione che è segmentata in intervalli più piccoli, o contenitori. Ciascun contenitore può avere una o più ipotesi con ortografie e attendibilità differenti. Il parametro
word_alternatives_threshold
controlla la densità dei risultati restituita dal servizio. La specifica di una soglia ridotta può, potenzialmente, produrre molte ipotesi.
Risultati delle alternative alle parole
Il servizio restituisce i risultati in un campo word_alternatives
che è un elemento dell'array results
. Il campo word_alternatives
è un array di oggetti, ciascuno dei quali fornisce i seguenti campi per
una parola alternativa:
start_time
indica il tempo, in secondi, a cui inizia nell'audio di input la parola per cui vengono restituite le ipotesi.end_time
indica il tempo, in secondi, a cui finisce nell'audio di input la parola per cui vengono restituite le ipotesi.alternatives
è un array di oggetti di ipotesi. Ciascun oggetto include un'attendibilità (confidence
) che indica il punteggio di attendibilità del servizio per l'ipotesi e una parola (word
) che identifica l'ipotesi. L'attendibilità deve essere almeno grande quanto la soglia specificata per essere inclusa nei risultati. Il servizio ordina le alternative in base all'attendibilità.
Esempio di alternative alle parole
La seguente richiesta di esempio specifica un valore word_alternatives_threshold
piuttosto basso di 0.10
. Il semplice audio di input include parole con omonimi comuni e diverse possibili interpretazioni acustiche.
IBM Cloud
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognize?word_alternatives_threshold=0.10"
IBM Cloud Pak for Data IBM Software Hub
curl -X POST \
--header "Authorization: Bearer {token}" \
--header "Content-Type: audio/wav" \
--data-binary @{path}audio-file.wav \
"{url}/v1/recognize?word_alternatives_threshold=0.10"
A causa del basso valore di soglia, il servizio restituisce più ipotesi e punteggi di attendibilità per alcune delle parole, insieme ai tempi di inizio e fine di tutte le parole. La trascrizione finale riconosce correttamente l'audio di input.
{
"result_index": 0,
"results": [
{
"final": true,
"alternatives": [
{
"transcript": "yes I ate that tuna ",
"confidence": 0.82
}
],
"word_alternatives": [
{
"start_time": 0.0,
"end_time": 0.31,
"alternatives": [
{
"word": "yes",
"confidence": 1.0
}
]
},
{
"start_time": 0.31,
"end_time": 0.46,
"alternatives": [
{
"word": "I",
"confidence": 1.0
}
]
},
{
"start_time": 0.46,
"end_time": 0.63,
"alternatives": [
{
"word": "ate",
"confidence": 0.89
},
{
"word": "eat",
"confidence": 0.11
}
]
},
{
"start_time": 0.63,
"end_time": 0.77,
"alternatives": [
{
"word": "that",
"confidence": 0.72
},
{
"word": "the",
"confidence": 0.27
}
]
},
{
"start_time": 0.77,
"end_time": 1.2,
"alternatives": [
{
"word": "tuna",
"confidence": 0.94
}
]
}
]
}
]
}