Détection des mots clés et propositions de mots alternatifs
Le service IBM Watson® Speech to Text peut identifier des mots clés spécifiés par l'utilisateur dans ses résultats de transcription. Il peut également suggérer des mots alternatifs qui sont acoustiquement similaires aux mots d'une transcription. Dans les deux cas, les mots clés et les mots alternatifs doivent répondre à un niveau de confiance défini par l'utilisateur.
Détection de mots clés (Keyword spotting)
Les paramètres keywords
et keywords_threshold
sont pris en charge uniquement avec des modèles de génération précédente, et non avec les modèles nouvelle génération.
La fonction de détection de mots clés (keyword spotting) détecte des chaînes spécifiées dans une transcription. Le service peut détecter le même mot clé plusieurs fois et signaler chaque occurrence. Le service détecte les mots clés uniquement dans les résultats finaux et non pas dans les résultats intermédiaires. Par défaut, le service ne détecte pas les mots clés.
Pour utiliser la détection de mots clés, vous devez spécifier les deux paramètres suivants :
-
Utilisez le paramètre
keywords
pour indiquer un tableau de chaînes à détecter. Le service ne détecte pas les mots clés si vous omettez ce paramètre ou indiquez un tableau vide. Une chaîne de mots clés peut inclure plusieurs sèmes. Par exemple, le mot cléSpeech to Text
comporte trois sèmes. La fonction de mise en correspondance de mots clés (Keyword matching) est insensible à la casse, par conséquent,Speech to Text
équivaut en fait àspeech to text
.Pour l'anglais américain, le service normalise chaque mot clé pour établir une correspondance entre mots parlés et chaînes écrites. Par exemple, il normalise les nombres pour mettre en corrélation leur prononciation par rapport à leur écriture. Pour d'autres langues, les mots clés doivent être spécifiés comme ils se prononcent.
-
Utilisez le paramètre
keywords_threshold
pour spécifier une probabilité entre 0,0 et 1,0 pour une occurrence de mot clé. Le seuil indique la limite inférieure du niveau de confiance que le service doit avoir pour qu'un mot corresponde au mot clé. Un mot clé est détecté dans la transcription uniquement si son niveau de confiance est supérieur ou égal au seuil spécifié.La spécification d'un seuil faible peut produire un grand nombre d'occurrences. Si vous spécifiez un seuil, vous devez également indiquer un ou plusieurs mots clés. Omettez ce paramètre pour qu'aucune occurrence ne soit renvoyée.
Les limites suivantes s'appliquent à la fonction de détection de mots clés :
- Vous pouvez détecter jusqu'à 1000 mots clés maximum dans une seule demande.
- Un seul mot clé peut avoir une longueur maximale de 1 024 caractères. La longueur effective maximale pour les langues codées sur deux octets peut être plus courte.
- La plupart des serveurs HTTP et des proxy imposent une limite de 8 ko sur les paramètres d'une demande. La détection d'un très grand nombre de mots clés ou de nombreux mots clés longs peut dépasser cette limite. Si vous devez faire correspondre davantage de mots clés, pensez à utiliser une demande HTTP multiparties.
La détection de mots clés est nécessaire pour identifier des mots clés dans un flux audio. Vous ne pouvez pas identifier de mots clés en traitant une transcription finale car cette transcription représente les meilleurs résultats de décodage du service pour l'entrée audio. Elle n'inclut pas les sèmes avec des cotes de confiance plus faibles pouvant représenter un mot qui vous intéresse. Ainsi, l'application d'outils de traitement de texte à une transcription côté client risque de ne pas identifier les mots clés. Une représentation enrichie des résultats de décodage est nécessaire, et cette représentation n'est disponible qu'au niveau du serveur.
Résultats de la détection de mots clés
Le service renvoie les résultats dans une zone keywords_result
correspondant à un élément du tableau results
. La zone keywords_result
correspond à un dictionnaire ou un tableau associatif, de propriétés
dénombrables. Chaque propriété est identifiée par un mot clé indiqué et comprend un tableau d'objets. Le service renvoie un élément du tableau pour chaque occurrence du mot clé qu'il a détectée. L'objet de chaque occurrence comprend les
zones suivantes :
normalized_text
est le mot clé normalisé dans l'expression parlée concordante dans l'entrée audio.start_time
est le début en secondes de l'occurrence.end_time
est la fin en secondes de l'occurrence.confidence
est le niveau de confiance du service pour que l'occurrence représente le mot clé spécifié. Cette cote doit être au moins équivalente au seuil indiqué pour figurer dans les résultats.
Un mot clé dont le service ne détecte aucune occurrence est omis dans le tableau. Il est possible de ne pas détecter un mot clé dans les cas suivants :
-
Le mot clé ne figure tout simplement pas dans l'audio. L'absence du mot clé est l'explication la plus plausible.
-
La valeur du seuil est trop élevée. Le service peut identifier le mot clé mais à un niveau de confiance moins élevé, auquel cas il omet l'occurrence dans les résultats.
-
Une chaîne de mots clés contenant plusieurs sèmes (par exemple,
Speech to Text
) est prononcée avec trop de moments de silence entre les différents sèmes qui la composent. Lorsque le service transcrit l'audio, il découpe le flux en une série de blocs. Chaque bloc représente un segment audio continu sans intervalle de silence dépassant une demi-seconde. Il construit un tableau des objets de résultat constitué de ces blocs.Le service fait correspondre un mot clé à plusieurs sèmes uniquement si
- Les sèmes du mot clé figurent dans le même bloc.
- Les sèmes sont adjacents ou séparés par un écart inférieur ou égal à 0,1 seconde.
Dans ce dernier cas, un bref élément de remplissage ou un énoncé non lexical, tel que « euh » ou « eh bien », peut se trouver entre deux jetons du mot clé. Dans ce cas, les modèles de génération antérieure peuvent insérer un marqueur d'hésitation à cette position de la transcription. Les modèles de nouvelle génération intègrent l'hésitation réelle dans les résultats de transcription. Pour plus d'informations, voir les marqueurs d'hésitation et d'hésitation de la parole.
Exemple de détection de mots clés
L'exemple de requête suivant définit le paramètre keywords
sur un tableau codé en URL de trois chaînes (colorado
, tornado
et tornadoes
) et le paramètre keywords_threshold
sur
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"
Le service recherche les occurrences de colorado
et 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
}
]
}
Autres propositions de mots (Word alternatives)
Le paramètre word_alternatives_threshold
est pris en charge uniquement avec des modèles de génération précédente, et non avec les modèles nouvelle génération.
La fonction de remplacement de mots (également connue sous le nom de Réseaux de confusion) rapporte des hypothèses pour des solutions de remplacement acoustiquement similaires pour les mots de l'audio en entrée. Par exemple, le mot
Austin
peut être la meilleure hypothèse d'un mot dans l'audio. Mais le mot Boston
est une autre hypothèse possible dans le même intervalle de temps. Les hypothèses partagent un début commun et une fin commune mais
ont différentes orthographes et en général différentes cotes de confiance.
Par défaut, le service ne signale pas d'autres propositions de mots. Pour indiquer que vous voulez recevoir d'autres propositions d'hypothèses, utilisez le paramètre word_alternatives_threshold
pour indiquer une probabilité entre
0,0 et 1,0. Le seuil indique la limite inférieure du niveau de confiance que le service doit avoir dans une hypothèse pour la renvoyer comme autre proposition de mot. Une hypothèse n'est renvoyée que si le niveau de confiance est supérieur
ou égal au seuil spécifié.
Vous pouvez envisager les autres propositions de mots (word alternatives) comme une chronologie d'une transcription qui est découpée en intervalles plus petits ou en casiers. Chaque casier peut avoir une ou plusieurs hypothèses avec différentes
orthographes et différents niveaux de confiance. Le paramètre word_alternatives_threshold
contrôle la densité des résultats renvoyés par le service. La spécification d'un seuil faible peut produire un grand nombre d'hypothèses.
Résultats des autres propositions de mots
Le service renvoie les résultats dans une zone word_alternatives
correspondant à un élément du tableau results
. La zone word_alternatives
est un tableau d'objets, dont chaque objet fournit les zones suivantes
pour une autre proposition de mot :
start_time
indique le début en secondes d'un mot pour lequel des hypothèses sont renvoyées dans l'entrée audio.end_time
indique la fin en secondes d'un mot pour lequel des hypothèses sont renvoyées dans l'entrée audio.alternatives
est un tableau d'objets d'hypothèse. Chaque objet comprend une zoneconfidence
qui indique la cote de confiance de l'hypothèse du service et une zoneword
qui identifie l'hypothèse. Cette cote doit être au moins équivalente au seuil indiqué pour figurer dans les résultats. Le service classe les propositions par confiance.
Exemple d'autres propositions de mots
L'exemple de demande suivant indique un seuil word_alternatives_threshold
assez bas correspondant à 0.10
. L'entrée audio simple comprend des mots avec des homonymes communs et différentes interprétations acoustiques
possibles.
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"
En raison du seuil bas, le service renvoie plusieurs hypothèses et cotes de confiance pour certains mots, ainsi que le début et la fin de tous les mots. La retranscription finale reconnaît correctement l'entrée audio.
{
"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
}
]
}
]
}
]
}