Parole au texte
La reconnaissance automatique de la parole (ASR) permet aux applications de prendre en charge la saisie vocale pour des cas d'utilisation tels que le SVI, l'identification et différents types de robots/assistants vocaux. Grâce à cette fonction, l'application obtient la transcription du discours de l'utilisateur (sous forme de texte) lorsqu'elle s'attend à ce que l'utilisateur réponde à une question en la formulant plutôt qu'en entrant des chiffres (DTMF) ; elle peut ensuite poursuivre le flux d'appels conformément à sa logique commerciale en fonction de ce que l'utilisateur a dit.
Note : Cette fonction est payante. Les tarifs exacts peuvent être consultés sur le site Prix de l'API Voice sous la rubrique "Fonctions programmables".
Comment cela fonctionne-t-il ?
Généralement, la RPA est utilisée en conjonction avec un message audio diffusé à l'utilisateur. Le message peut être un fichier audio ou Synthèse vocaleou une combinaison des deux jouées séquentiellement. Pour activer le RSA, le NCCO doit contenir un input avec les paramètres de discours spécifiés.
Exemple de NCCO
[
{
"action": "talk",
"text": "Hello!"
},
{
"action": "talk",
"text": "Please tell us, how can we help you today?",
"bargeIn": true
},
{
"eventUrl": [
"https://api.example.com/callbacks/events"
],
"eventMethod": "POST",
"action": "input",
"type": [ "speech" ],
"speech": {
"language": "en-gb",
"context": [
"support",
"buy",
"credit",
"account"
],
"endOnSilence": 0.5,
"saveAudio": true,
"sensitivity": "90"
}
}
]
Les Guide de référence du NCCO contient des informations sur tous les paramètres possibles qui peuvent être utilisés en conjonction avec l'ASR input Action du NCCO.
Type d'entrée
Set (jeu de mots) type comme speech pour la saisie vocale uniquement, ou [ "dtmf", "speech" ] d'accepter les deux discours ou DTMF.
Langue
La langue dans laquelle l'utilisateur doit s'exprimer doit être précisée dans le champ "Langue". language paramètre (en-US par défaut).
Langues prises en charge
| Langue | Code |
|---|---|
| Afrikaans (Afrique du Sud) | af-ZA |
| Albanais (Albanie) | sq-AL |
| Amharique (Éthiopie) | am-ET |
| Arabe (Algérie) | ar-DZ |
| Arabe (Bahreïn) | ar-BH |
| Arabe (Égypte) | ar-EG |
| Arabe (Irak) | ar-IQ |
| Arabe (Israël) | ar-IL |
| Arabe (Jordanie) | ar-JO |
| Arabe (Koweït) | ar-KW |
| Arabe (Liban) | ar-LB |
| Arabe (Maroc) | ar-MA |
| Arabe (Oman) | ar-OM |
| Arabe (Qatar) | ar-QA |
| Arabe (Arabie Saoudite) | ar-SA |
| Arabe (État de Palestine) | ar-PS |
| Arabe (Tunisie) | ar-TN |
| Arabe (Émirats arabes unis) | ar-AE |
| Arménien (Arménie) | hy-AM |
| Azerbaïdjanais (Azerbaïdjan) | az-AZ |
| Basque (Espagne) | eu-ES |
| Bengali (Bangladesh) | bn-BD |
| Bengali (Inde) | bn-IN |
| Bulgare (Bulgarie) | bg-BG |
| Birman (Myanmar) | my-MM |
| Catalan (Espagne) | ca-ES |
| Chinois, cantonais (traditionnel, Hong Kong) | yue-hant-HK |
| Chinois, mandarin (simplifié, Chine) | zh (cmn-hans-cn) |
| Chinois, mandarin (traditionnel, Taiwan) | zh-TW (cmn-hant-TW) |
| Croate (Croatie) | hr-HR |
| Tchèque (République tchèque) | cs-CZ |
| Danois (Danemark) | da-DK |
| Néerlandais (Belgique) | nl-BE |
| Néerlandais (Pays-Bas) | nl-NL |
| Anglais (Australie) | en-AU |
| Anglais (Canada) | en-CA |
| Anglais (Ghana) | en-GH |
| Anglais (Inde) | en-IN |
| Anglais (Irlande) | en-IE |
| Anglais (Kenya) | en-KE |
| Anglais (Nouvelle-Zélande) | en-NZ |
| Anglais (Nigeria) | en-NG |
| Anglais (Philippines) | en-PH |
| Anglais (Singapour) | en-SG |
| Anglais (Afrique du Sud) | en-ZA |
| Anglais (Tanzanie) | en-TZ |
| Anglais (Royaume-Uni) | en-GB |
| Anglais (États-Unis) | en-US |
| Estonien (Estonie) | et-EE |
| Philippin | fil-PH |
| Finlandais (Finlande) | fi-FI |
| Français (Canada) | fr-CA |
| Français (France) | fr-FR |
| Galicien (Espagne) | gl-ES |
| Géorgien (Géorgie) | ka-GE |
| Allemand (Allemagne) | de-DE |
| Grec (Grèce) | el-GR |
| Gujarati (Inde) | gu-IN |
| Hébreu (Israël) | he-IL |
| Hindi (Inde) | hi-IN |
| Hongrois (Hongrie) | hu-HU |
| Islandais (Islande) | is-IS |
| Indonésien (Indonésie) | id-ID |
| Italien (Italie) | it-IT |
| Japonais (Japon) | ja-JP |
| Javanais (Indonésie) | jv-ID |
| Kannada (Inde) | kn-IN |
| Khmer (Cambodge) | km-KH |
| Coréen (Corée du Sud) | ko-KR |
| Lao (Laos) | lo-LA |
| Letton (Lettonie) | lv-LV |
| Lituanien (Lituanie) | lt-LT |
| Macédonien (Macédoine du Nord) | mk-MK |
| Malais (Malaisie) | ms-MY |
| Malayalam (Inde) | ml-IN |
| Marathi (Inde) | mr-IN |
| Mongol (Mongolie) | mn-MN |
| Népalais (Nepal) | ne-NP |
| Bokmål norvégien (Norvège) | nb-NO |
| Persan (Iran) | fa-IR |
| Polonais (Pologne) | pl-PL |
| Portugais (Brésil) | pt-BR |
| Portugais (Portugal) | pt-PT |
| Punjabi (Gurmukhi, Inde) | pa-guru-IN |
| Roumain (Roumanie) | ro-RO |
| Russe (Russie) | ru-RU |
| Serbe (Serbie) | sr-RS |
| Sinhala (Sri Lanka) | si-LK |
| Slovaque (Slovaquie) | sk-SK |
| Slovène (Slovénie) | sl-SI |
| Espagnol (Argentine) | es-AR |
| Espagnol (Bolivie) | es-BO |
| Espagnol (Chili) | es-CL |
| Espagnol (Colombie) | es-CO |
| Espagnol (Costa Rica) | es-CR |
| Espagnol (République dominicaine) | es-DO |
| Espagnol (Équateur) | es-EC |
| Espagnol (El Salvador) | es-SV |
| Espagnol (Guatemala) | es-GT |
| Espagnol (Honduras) | es-HN |
| Espagnol (Mexique) | es-MX |
| Espagnol (Nicaragua) | es-NI |
| Espagnol (Panama) | es-PA |
| Espagnol (Paraguay) | es-PY |
| Espagnol (Pérou) | es-PE |
| Espagnol (Porto Rico) | es-PR |
| Espagnol (Espagne) | es-ES |
| Espagnol (États-Unis) | es-US |
| Espagnol (Uruguay) | es-UY |
| Espagnol (Venezuela) | es-VE |
| Sundanais (Indonésie) | su-ID |
| Swahili (Kenya) | sw-KE |
| Swahili (Tanzanie) | sw-TZ |
| Suédois (Suède) | sv-SE |
| Tamil (Inde) | ta-IN |
| Tamoul (Malaisie) | ta-MY |
| Tamoul (Singapour) | ta-SG |
| Tamoul (Sri Lanka) | ta-LK |
| Telugu (Inde) | te-IN |
| Thaï (Thaïlande) | th-TH |
| Turc (Turquie) | tr-TR |
| Ukrainien (Ukraine) | uk-UA |
| Urdu (Inde) | ur-IN |
| Urdu (Pakistan) | ur-PK |
| Ouzbek (Ouzbékistan) | uz-UZ |
| Vietnamien (Vietnam) | vi-VN |
| Zulu (Afrique du Sud) | zu-ZA |
Contexte
Des indications peuvent être fournies à l'aide de la fonction context afin d'améliorer la qualité de la reconnaissance. Les valeurs définies peuvent être les mots ou les phrases attendus de l'utilisateur, par exemple, ['one', 'two', 'three'] ou ['support', 'order starship'].
Barge In
Si l'utilisateur n'appelle pas pour la première fois, il se peut qu'il connaisse déjà la question à poser, de sorte qu'il peut commencer à parler avant même que le message audio ne soit terminé. Pour cela, il faut que l'utilisateur commence à parler avant même que le message audio ne se termine, bargeIn du TTS (ou stream - quelle que soit l'action utilisée pour le message) doit être activée.
Il est recommandé que le message TTS/audio initial soit un court message d'accueil sans activation de la fonction bargeIn afin d'améliorer l'expérience de l'utilisateur. Si bargeIn est activée pour le premier message d'accueil, l'utilisateur peut alors l'interrompre par inadvertance sans entendre le message d'accueil, puisque le bruit de fond peut être interprété par l'application comme une interaction active dans ces premiers instants.
Sauvegarder l'audio
Le son de la parole peut être stocké en option. Pour obtenir l'enregistrement, la touche saveAudio doit être défini, alors le paramètre recording_url sera inclus dans la charge utile de la demande de rappel. Cela peut être utile pour comparer la transcription avec l'audio original. Utiliser la fonction Télécharger un enregistrement pour télécharger l'audio.
Exemple de charge utile d'événement
Une fois que le BCN input est terminée, le rappel de l'entrée est envoyé :
{
"speech": {
"recording_url": "https://api-us.nexmo.com/v1/files/ee94a327-ab6b-4bef-86bf-cadca33343e9",
"timeout_reason": "end_on_silence_timeout",
"results": [
{
"confidence": "0.9405097",
"text": "Support"
},
{
"confidence": "0.70543784",
"text": "Supper"
},
{
"confidence": "0.5949854",
"text": "Puppy"
}
]
},
"dtmf": {
"digits": null,
"timed_out": false
},
"uuid": "529aa8f0-0ad8-42b0-ad61-b76dca18bb52",
"conversation_uuid": "CON-7347b08d-5f51-478f-bfb2-e8c3fd39509f",
"timestamp": "2020-02-07T11:42:40.933Z"
}
Dans le corps de la réponse, un nouveau NCCO est attendu, contenant les actions du flux d'appel suivant basées sur la logique de l'application et l'entrée de l'utilisateur (speech.results.text). Voir aussi Référence pour les webhooks pour plus de détails.