ทักษะการสนทนา ผ่านครั้งแรกโดยใช้การจดจำวลีสำคัญของ Misty (Wake Word), Azure Speech to Text (STT) และ Azure text to Speech (TTS)
https://github.com/wwlib/misty-azure
Misty II - ทักษะการสนทนา (v2) https://youtu.be/-dte3khrmnq
Misty II - ทักษะการสนทนา (v2) w/คอนโซล https://youtu.be/hjd_yyee2v8
หมายเหตุเกี่ยวกับการใช้ Luis NLU https://medium.com/@andrew.rapo/robokit-setting-up-azure-cognitive-services-bing-speech-luis-nlu-fbb39f5dc957
บริการ Azure ถูกนำไปใช้เป็นแอพฟังก์ชั่น
ทักษะการสนทนา V2 เรียกแอพฟังก์ชัน Audiotointent โดยใช้ Misty's Misty.SendExternalRequest () การโทร ON-ROBOT API แอพฟังก์ชั่นโทรหา Luis NLU แล้วส่งคืนเจตนาเป็นสตริง
จากนั้นทักษะการสนทนา v2 เรียกแอพฟังก์ชัน TextTospeech และเล่นเสียงที่ส่งคืน
ทักษะการสนทนา V2 ใช้ Misty.startKeyPhraserEcognition () เพื่อฟังวลีสำคัญ "Hey Misty" (เช่น Wake-Up Word)
ด้วยทักษะการสนทนา V2 กำลังทำงาน:
พูดว่า "เฮ้หมอก"
Misty จะทำให้เธอนำไปสู่ Blue เพื่อระบุว่าเธอกำลังฟังอยู่
พูดว่า "คุณรู้เรื่องตลกไหม?"
Misty จะพูดว่า: "นายพลเก็บกองทัพของเขาไว้ที่ไหน?, ในแขนเสื้อของเขา"
พูดว่า "เฮ้หมอก"
Misty จะทำให้เธอนำไปสู่ Blue เพื่อระบุว่าเธอกำลังฟังอยู่
พูดว่า "กี่โมงแล้ว"
Misty จะพูดว่า: "เวลาเป็น เวลาปัจจุบัน "
โฟลเดอร์นี้มีรหัสสำหรับแอพ Azure fucnction ที่ประมวลผลเสียงจาก Misty และส่งคืนเจตนา ฟังก์ชั่นจัดการ:
try {
const accessToken = await getAccessToken ( ) ;
const utterance = await speechToText ( accessToken , audioBase64 , context ) ;
await textToIntent ( accessToken , utterance , context ) ;
} catch ( err ) {
context . log ( `Something went wrong: ${ err } ` ) ;
}
หมายเหตุ: แต่ละฟังก์ชั่นต้องการข้อมูลจาก config.json
:
{
"Microsoft": {
"AzureSpeechSubscriptionKey": "<YOUR-BING-SUBSCRIPTION-KEY>",
"nluLUIS_endpoint": "https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/",
"nluLUIS_appId": "<YOUR-LUIS-APP-ID>",
"nluLUIS_subscriptionKey": "<YOUR-LUIS-SUBSCRIPTION-KEY>"
}
}
เครื่องมือโฟลเดอร์มีเครื่องมือโหนด/จาวาสคริปต์สำหรับทดสอบการโทรไปยัง Azure:
หมายเหตุ: เครื่องมือเหล่านี้แต่ละเครื่องมือต้องการข้อมูลจาก config.json
:
{
"Microsoft": {
"AudioToTTSFunctionURL": "",
"AudioToIntentFunctionURL": "",
"TextToTTSFunctionURL": ""
}
}