Oktatóanyag: A robot hangalapú engedélyezése
Az Azure AI Speech használatával hangalapú csevegési robotokat is használhat.
Ebben az oktatóanyagban a Microsoft Bot Framework használatával hoz létre egy robotot, amely válaszol a mondanivalóra. Üzembe helyezheti a robotot az Azure-ban, és regisztrálhatja a Bot Framework Direct Line Speech csatornán. Ezután konfigurálhat egy windowsos ügyfélalkalmazást, amely lehetővé teszi, hogy beszéljen a robottal, és hallja, hogy visszaszóljon Önhöz.
Az oktatóanyag elvégzéséhez nincs szükség az Azure, a Bot Framework robotok vagy a Direct Line Speech széles körű tapasztalatára vagy jártasságára.
Az oktatóanyagban létrehozott hangalapú csevegőrobot az alábbi lépéseket követi:
- A mintaügyfél-alkalmazás úgy van konfigurálva, hogy csatlakozzon a Direct Line Speech csatornához és az echorobothoz.
- Amikor a felhasználó megnyom egy gombot, hangstreamek lesznek a mikrofonból. Vagy az egyéni kulcsszó használatakor a rendszer folyamatosan rögzíti a hangokat.
- Ha egyéni kulcsszót használ, a kulcsszóészlelés a helyi eszközön történik, és hangstreamelést ad a felhőbe.
- A mintaügyfél-alkalmazás a Speech SDK használatával csatlakozik a Direct Line Speech csatornához, és hanganyagot streamel.
- Igény szerint nagyobb pontosságú kulcsszó-ellenőrzés történik a szolgáltatásban.
- A hang át lesz adva a beszédfelismerési szolgáltatásnak, és át lesz írva a szövegre.
- A felismert szöveg a Bot Framework-tevékenységként továbbítódik az echo robotnak.
- A válaszszöveget a szöveg hanggá alakítja a speech service-be, és visszaküldi az ügyfélalkalmazásba lejátszás céljából.
Feljegyzés
Az oktatóanyag lépései nem igényelnek fizetős szolgáltatást. Új Azure-felhasználóként az ingyenes Azure-próbaverziós előfizetésből és a Speech szolgáltatás ingyenes csomagjából származó krediteket használhatja az oktatóanyag elvégzéséhez.
Az oktatóanyag a következőket ismerteti:
- Hozzon létre új Azure-erőforrásokat.
- Az echorobot-minta összeállítása, tesztelése és üzembe helyezése Azure-alkalmazás Szolgáltatásban.
- Regisztrálja a robotot egy Direct Line Speech-csatornával.
- Hozza létre és futtassa a Windows Voice Assistant-ügyfelet az echorobottal való interakcióhoz.
- Egyéni kulcsszóaktiválás hozzáadása.
- Ismerje meg, hogyan módosíthatja a felismert és beszélt beszéd nyelvét.
Előfeltételek
Az oktatóanyag elvégzéséhez a következőket kell elvégeznie:
- Windows 10 rendszerű pc működő mikrofonnal és hangszórókkal (vagy fejhallgatóval).
- Visual Studio 2017 vagy újabb verzió, telepített ASP.NET és webfejlesztési számítási feladattal.
- .NET-keretrendszer Runtime 4.6.1-et vagy újabb verziót.
- Egy Azure-fiók. Regisztráljon ingyenesen.
- Egy GitHub-fiók.
- Git for Windows.
Erőforráscsoport létrehozása
Az oktatóanyagban létrehozott ügyfélalkalmazás néhány Azure-szolgáltatást használ. A robottól érkező válaszok utazási idejének csökkentése érdekében győződjön meg arról, hogy ezek a szolgáltatások ugyanabban az Azure-régióban találhatók.
Ez a szakasz végigvezeti egy erőforráscsoport létrehozásán az USA nyugati régiójában. Ezt az erőforráscsoportot akkor használja, ha egyéni erőforrásokat hoz létre a Bot Frameworkhez, a Direct Line Speech csatornához és a Speech szolgáltatáshoz.
- Lépjen az Azure Portal lapjára egy erőforráscsoport létrehozásához.
- Adja meg a következő információkat:
- Előfizetés beállítása ingyenes próbaverzióra. (Meglévő előfizetést is használhat.)
- Adja meg az erőforráscsoport nevét. A SpeechEchoBotTutorial-ResourceGroup használatát javasoljuk.
- A Régió legördülő menüben válassza az USA nyugati régióját.
- Válassza a Véleményezés és létrehozás lehetőséget. Ekkor megjelenik egy transzparens , amely az ellenőrzés sikeresét olvassa.
- Válassza a Létrehozás lehetőséget. Az erőforráscsoport létrehozása eltarthat néhány percig.
- Az oktatóanyag későbbi részében létrehozott erőforrásokhoz hasonlóan érdemes rögzíteni ezt az erőforráscsoportot az irányítópulton a könnyű hozzáférés érdekében. Ha rögzíteni szeretné ezt az erőforráscsoportot, válassza a gombostű ikont a név mellett.
Azure-régió kiválasztása
Győződjön meg arról, hogy támogatott Azure-régiót használ. A Direct Line Speech csatorna a szöveget használja a beszédszolgáltatáshoz, amely neurális és standard hangokkal rendelkezik. Ezekben az Azure-régiókban neurális hangokat használnak, és ezeken az Azure-régiókban standard (visszavonuló) hangokat használnak.
További információ a régiókról: Azure-helyek.
Erőforrások létrehozása
Most, hogy rendelkezik egy erőforráscsoporttal egy támogatott régióban, a következő lépés az, hogy egyéni erőforrásokat hoz létre minden olyan szolgáltatáshoz, amelyet ebben az oktatóanyagban fog használni.
Speech szolgáltatás erőforrásának létrehozása
- Lépjen az Azure Portal lapjára a Speech-szolgáltatás erőforrásának létrehozásához.
- Adja meg a következő információkat:
- Névként a SpeechEchoBotTutorial-Speech nevet javasoljuk az erőforrás neveként.
- Előfizetés esetén győződjön meg arról, hogy az ingyenes próbaverzió ki van választva.
- A Hely mezőben válassza az USA nyugati régióját.
- Tarifacsomag esetén válassza az F0 lehetőséget. Ez az ingyenes szint.
- Erőforráscsoport esetén válassza a SpeechEchoBotTutorial-ResourceGroup lehetőséget.
- Miután megadta az összes szükséges információt, válassza a Létrehozás lehetőséget. Az erőforrás létrehozása eltarthat néhány percig.
- Az oktatóanyag későbbi részében előfizetési kulcsokra lesz szüksége ehhez a szolgáltatáshoz. Ezeket a kulcsokat bármikor elérheti az erőforrás Áttekintés területén (a Kulcsok kezelése területen) vagy a Kulcsok területen.
Ezen a ponton ellenőrizze, hogy az erőforráscsoport (SpeechEchoBotTutorial-ResourceGroup) rendelkezik-e Speech service-erőforrással:
Név | Típus | Hely |
---|---|---|
SpeechEchoBotTutorial-Speech | Beszédfelismerés | USA nyugati régiója |
Azure App Service-csomag létrehozása
Az App Service-csomagok határozzák meg a futtatni kívánt webalkalmazások számítási erőforrásait.
- Lépjen az Azure Portal lapjára egy Azure-alkalmazás szolgáltatáscsomag létrehozásához.
- Adja meg a következő információkat:
- Előfizetés beállítása ingyenes próbaverzióra. (Meglévő előfizetést is használhat.)
- Erőforráscsoport esetén válassza a SpeechEchoBotTutorial-ResourceGroup lehetőséget.
- Névként a SpeechEchoBotTutorial-AppServicePlant javasoljuk a csomag neveként.
- Operációs rendszer esetén válassza a Windows lehetőséget.
- Régió esetén válassza az USA nyugati régióját.
- Tarifacsomag esetén győződjön meg arról, hogy a Standard S1 van kiválasztva. Ennek kell lennie az alapértelmezett értéknek. Ha nem, állítsa az operációs rendszert Windowsra.
- Válassza a Véleményezés és létrehozás lehetőséget. Ekkor megjelenik egy transzparens , amely az ellenőrzés sikeresét olvassa.
- Válassza a Létrehozás lehetőséget. Az erőforrás létrehozása eltarthat néhány percig.
Ezen a ponton ellenőrizze, hogy az erőforráscsoport (SpeechEchoBotTutorial-ResourceGroup) két erőforrással rendelkezik-e:
Név | Típus | Hely |
---|---|---|
SpeechEchoBotTutorial-AppServicePlan | App Service Plan (App Service-csomag) | USA nyugati régiója |
SpeechEchoBotTutorial-Speech | Azure AI services | USA nyugati régiója |
Echo-robot létrehozása
Most, hogy létrehozott erőforrásokat, kezdje az echo robot mintával, amely a válaszként megadott szöveget visszhangozza. A mintakód már konfigurálva van a Direct Line Speech csatorna használatához, amelyet a robot Azure-ban való üzembe helyezése után csatlakoztat.
Feljegyzés
Az alábbi utasítások, valamint az echorobottal kapcsolatos további információk a minta GITHubon elérhető README-jében érhetők el.
A robotminta futtatása a gépen
Klónozza a mintaadattárat:
git clone https://github.com/Microsoft/botbuilder-samples.git
Nyissa meg a Visual Studiót.
Az eszköztáron válassza a Fájl>megnyitása>projekt/megoldás lehetőséget. Ezután nyissa meg a projektmegoldást:
samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
A projekt betöltése után válassza az F5 billentyűt a projekt létrehozásához és futtatásához.
A megnyíló böngészőben az alábbihoz hasonló képernyő jelenik meg:
A robotminta tesztelése a Bot Framework Emulator használatával
A Bot Framework Emulator egy asztali alkalmazás, amely lehetővé teszi, hogy a robotfejlesztők helyileg (vagy távolról egy alagúton keresztül) teszteljék és hibakeresést hajthassanak létre a robotjaikban. Az emulátor bemenetként (nem hangként) fogadja el a beírt szöveget. A robot szöveggel is válaszol.
Az alábbi lépéseket követve a Bot Framework Emulator használatával tesztelheti a helyileg futó echo-robotot szövegbevitellel és szövegkimenettel. Miután üzembe helyezi a robotot az Azure-ban, hangbemenettel és hangkimenettel fogja tesztelni.
Telepítse a Bot Framework Emulator 4.3.0-s vagy újabb verzióját.
Nyissa meg a Bot Framework Emulatort, majd válassza a Fájl>megnyitása robotot.
Adja meg a robot URL-címét. Példa:
http://localhost:3978/api/messages
Válassza a Kapcsolódás lehetőséget.
A robotnak egy "Hello and welcome!" üzenettel kell üdvözölnie Önt. Írjon be bármilyen szöveges üzenetet, és győződjön meg arról, hogy választ kap a robottól.
Robot üzembe helyezése Azure-alkalmazás Szolgáltatásban
A következő lépés az echo robot üzembe helyezése az Azure-ban. A robotok üzembe helyezésének néhány módja van, beleértve az Azure CLI-t és az üzembehelyezési sablonokat. Ez az oktatóanyag közvetlenül a Visual Studióból történő közzétételre összpontosít.
Feljegyzés
Ha a Közzététel nem jelenik meg a következő lépések végrehajtása során, a Visual Studio Installer használatával adja hozzá a ASP.NET és a webfejlesztési számítási feladatot.
Nyissa meg a Visual Studióban a Direct Line Speech-csatornához konfigurált echorobotot:
samples\csharp_dotnetcore\02.echo-bot\EchoBot.sln
A Megoldáskezelő kattintson a jobb gombbal az EchoBot projektre, és válassza a Közzététel lehetőséget.
A megnyíló Közzététel ablakban:
- Válassza az Azure>Next lehetőséget.
- Válassza Azure-alkalmazás Szolgáltatás (Windows)>Tovább lehetőséget.
- Válassza az Új Azure-alkalmazás szolgáltatás létrehozása zöld pluszjellel lehetőséget.
Amikor megjelenik az App Service (Windows) ablaka:
Válassza a Fiók hozzáadása lehetőséget, és jelentkezzen be az Azure-fiók hitelesítő adataival. Ha már bejelentkezett, válassza ki a fiókját a legördülő listából.
A Név mezőben adjon meg egy globálisan egyedi nevet a robotnak. Ez a név egy egyedi robot URL-címének létrehozásához használatos.
A mezőben megjelenik egy alapértelmezett név, amely tartalmazza a dátumot és az időt (például EchoBot20190805125647). Ehhez az oktatóanyaghoz használhatja az alapértelmezett nevet.
Előfizetés esetén válassza az Ingyenes próbaverzió lehetőséget.
Erőforráscsoport esetén válassza a SpeechEchoBotTutorial-ResourceGroup lehetőséget.
Üzemeltetési csomag esetén válassza a SpeechEchoBotTutorial-AppServicePlan lehetőséget.
Válassza a Létrehozás lehetőséget. A varázsló utolsó képernyőjén válassza a Befejezés lehetőséget.
Válassza a Közzététel lehetőséget. A Visual Studio üzembe helyezi a robotot az Azure-ban.
A Visual Studio kimeneti ablakában a következőhöz hasonló sikeres üzenetnek kell megjelennie:
Publish Succeeded. Web App was published successfully https://EchoBot20190805125647.azurewebsites.net/
Az alapértelmezett böngészőnek meg kell nyitnia, és meg kell jelenítenie egy lapot, amely a következőhöz hasonló szöveggel jelenik meg: "A robot készen áll!"
Ezen a ponton ellenőrizze az erőforráscsoportot (SpeechEchoBotTutorial-ResourceGroup) az Azure Portalon. Győződjön meg arról, hogy a következő három erőforrást tartalmazza:
Név | Típus | Hely |
---|---|---|
EchoBot20190805125647 | App Service | USA nyugati régiója |
SpeechEchoBotTutorial-AppServicePlan | App Service-csomag | USA nyugati régiója |
SpeechEchoBotTutorial-Speech | Azure AI services | USA nyugati régiója |
Webes szoftvercsatornák engedélyezése
Kis konfigurációs módosítást kell végeznie, hogy a robot webes szoftvercsatornák használatával kommunikáljon a Direct Line Speech csatornával. A webes szoftvercsatornák engedélyezéséhez kövesse az alábbi lépéseket:
- Nyissa meg az Azure Portalt, és válassza ki az App Service-erőforrást. Az erőforrás nevének hasonlónak kell lennie az EchoBot20190805125647-hez (az egyedi alkalmazásnévhez).
- A bal oldali panel Beállítások csoportjában válassza a Konfiguráció lehetőséget.
- Válassza az Általános beállítások lapot.
- Keresse meg a webes szoftvercsatornák kapcsolót, és állítsa be.
- Válassza a Mentés lehetőséget.
Tipp.
A szolgáltatás leállításához vagy újraindításához használhatja a Azure-alkalmazás szolgáltatáslap tetején található vezérlőket. Ez a képesség hasznos lehet a hibaelhárítás során.
Csatornaregisztráció létrehozása
Miután létrehozott egy Azure-alkalmazás service-erőforrást a robot üzemeltetéséhez, a következő lépés egy csatornaregisztráció létrehozása. A csatornaregisztráció létrehozása előfeltétele a robot Bot Framework-csatornákkal való regisztrálásának, beleértve a Direct Line Speech csatornát is. Ha többet szeretne megtudni arról, hogyan használják a robotok a csatornákat, olvassa el a Robot csatlakoztatása csatornákhoz című témakört.
- Nyissa meg az Azure Portal oldalát egy Azure-robot létrehozásához.
- Adja meg a következő információkat:
Robotfogópont esetén adja meg a SpeechEchoBotTutorial-BotRegistration-###értéket. Cserélje le #### az ön által választott lehetőségek közül.
Feljegyzés
A robotfogópontnak globálisan egyedinek kell lennie. Ha beír egyet, és a következő hibaüzenetet kapja: "A kért robotazonosító nem érhető el", válasszon másik számot. Az alábbi példák a 8726-ot használják.
Előfizetés esetén válassza az Ingyenes próbaverzió lehetőséget.
Erőforráscsoport esetén válassza a SpeechEchoBotTutorial-ResourceGroup lehetőséget.
A Hely mezőben válassza az USA nyugati régióját.
Tarifacsomag esetén válassza az F0 lehetőséget.
Hagyja figyelmen kívül az automatikus alkalmazásazonosító és -jelszó létrehozását.
- Az Azure Bot panel alján válassza a Létrehozás lehetőséget.
- Az erőforrás létrehozása után nyissa meg a SpeechEchoBotTutorial-BotRegistration-#### erőforrást az Azure Portalon.
- A Beállítások területen válassza a Konfiguráció lehetőséget.
- Üzenetkezelési végpont esetén adja meg a webalkalmazás URL-címét az /api/messages elérési út hozzáfűzésével. Ha például a globálisan egyedi alkalmazás neve EchoBot20190805125647 volt, az üzenetkezelési végpont az lenne
https://EchoBot20190805125647.azurewebsites.net/api/messages/
.
Ezen a ponton ellenőrizze az erőforráscsoportot (SpeechEchoBotTutorial-ResourceGroup) az Azure Portalon. Most legalább négy erőforrást kell megjelenítenie:
Név | Típus | Hely |
---|---|---|
EchoBot20190805125647 | App Service | USA nyugati régiója |
SpeechEchoBotTutorial-AppServicePlan | App Service-csomag | USA nyugati régiója |
SpeechEchoBotTutorial-BotRegistration-8726 | Bot Service | Globális |
SpeechEchoBotTutorial-Speech | Azure AI services | USA nyugati régiója |
Fontos
Az Azure AI Bot Service-erőforrás megjeleníti a globális régiót, annak ellenére, hogy az USA nyugati régióját választotta. Ez várható.
Nem kötelező: Tesztelés webes csevegésben
Az Azure Bot lap a Beállítások területen webchat teszt lehetőséggel rendelkezik. Alapértelmezés szerint nem működik a robottal, mert a webes csevegésnek hitelesítenie kell a robotot.
Ha szöveges bemenettel szeretné tesztelni az üzembe helyezett robotot, kövesse az alábbi lépéseket. Ezek a lépések nem kötelezőek, és nem szükségesek az oktatóanyag folytatásához.
Az Azure Portalon keresse meg és nyissa meg az EchoBotTutorial-BotRegistration-#### erőforrást.
A Beállítások területen válassza a Konfiguráció lehetőséget. Másolja az értéket a Microsoft-alkalmazásazonosító alá.
Nyissa meg a Visual Studio EchoBot-megoldást. A Megoldáskezelő keresse meg és válassza ki duplán a appsettings.json.
Cserélje le a JSON-fájlBan a MicrosoftAppId melletti üres sztringet a másolt azonosító értékére.
Lépjen vissza az Azure Portalra. A Beállítások területen válassza a Konfiguráció lehetőséget. Ezután válassza a Kezelés lehetőséget a Microsoft-alkalmazásazonosító mellett.
Válassza az Új titkos ügyfélkód lehetőséget. Adjon hozzá egy leírást (például webes csevegést), és válassza a Hozzáadás lehetőséget. Másolja ki az új titkos kódot.
Cserélje le a JSON-fájlBan a MicrosoftAppPassword melletti üres sztringet a másolt titkos kód értékére.
Mentse a JSON-fájlt. Ennek a kódhoz hasonlóan kell kinéznie:
{ "MicrosoftAppId": "YourAppId", "MicrosoftAppPassword": "YourAppPassword" }
Tegye közzé újra az alkalmazást: kattintson a jobb gombbal az EchoBot projektre a Visual Studio Megoldáskezelő, válassza a Közzététel, majd a Közzététel gombot.
A Direct Line Speech csatorna regisztrálása
Itt az ideje, hogy regisztrálja a robotot a Direct Line Speech csatornán. Ez a csatorna kapcsolatot hoz létre a robot és a Speech SDK-val lefordított ügyfélalkalmazás között.
Az Azure Portalon keresse meg és nyissa meg a SpeechEchoBotTutorial-BotRegistration-#### erőforrást.
A Beállítások területen válassza a Csatornák lehetőséget, majd hajtsa végre a következő lépéseket:
- A További csatornák területen válassza a Közvetlen vonalas beszéd lehetőséget.
- Tekintse át a Közvetlen vonalas beszéd konfigurálása lapon található szöveget, majd bontsa ki a Cognitive Service-fiók legördülő menüjét.
- Válassza ki a korábban létrehozott Speech service-erőforrást (például SpeechEchoBotTutorial-Speech) a menüből a robot előfizetési kulccsal való társításához.
- Hagyja figyelmen kívül a többi választható mezőt.
- Válassza a Mentés lehetőséget.
A Beállítások területen válassza a Konfiguráció lehetőséget, majd hajtsa végre a következő lépéseket:
- Jelölje be a Streamvégpont engedélyezése jelölőnégyzetet. Ez a lépés a robot és a Direct Line Speech csatorna közötti webes szoftvercsatornákra épülő kommunikációs protokoll létrehozásához szükséges.
- Válassza a Mentés lehetőséget.
Ha többet szeretne megtudni, olvassa el a Robot csatlakoztatása a Direct Line Speechhez című témakört.
A Windows Voice Assistant-ügyfél futtatása
A Windows Voice Assistant-ügyfél egy Windows megjelenítési alaprendszer (WPF) alkalmazás C#-ban, amely a Speech SDK használatával kezeli a robottal folytatott kommunikációt a Direct Line Speech csatornán keresztül. Egyéni ügyfélalkalmazás írása előtt használhatja és tesztelheti a robotot. Ez nyílt forráskód, így letöltheti és futtathatja a végrehajtható fájlt, vagy létrehozhatja saját maga.
A Windows Voice Assistant-ügyfél egy egyszerű felhasználói felülettel rendelkezik, amellyel konfigurálhatja a robottal való kapcsolatot, megtekintheti a szöveges beszélgetést, JSON formátumban tekintheti meg a Bot Framework tevékenységeit, és adaptív kártyákat jeleníthet meg. Emellett támogatja az egyéni kulcsszavak használatát is. Ezzel az ügyféllel beszél a robottal, és hangválaszt kap.
Feljegyzés
Ezen a ponton győződjön meg arról, hogy a mikrofon és a hangszórók engedélyezve vannak és működnek.
Nyissa meg a Windows Voice Assistant-ügyfél GitHub-adattárát.
Kövesse a megadott utasításokat a következőkhöz:
- Előre összeállított végrehajtható fájl letöltése egy .zip csomagban a futtatáshoz
- Saját maga hozza létre a végrehajtható fájlt az adattár klónozásával és a projekt létrehozásával
Nyissa meg a VoiceAssistantClient.exe ügyfélalkalmazást, és konfigurálja a robothoz való csatlakozáshoz a GitHub-adattár utasításait követve.
Válassza az Újracsatlakozás lehetőséget, és győződjön meg arról, hogy megjelenik az "Új beszélgetés elkezdődött – írja be vagy nyomja le a mikrofon gombot" üzenet.
Teszteljük ki. Válassza ki a mikrofongombot, és beszéljen néhány szót angolul. A felismert szöveg a beszéd során jelenik meg. Amikor befejezte a beszédet, a robot a saját hangjában válaszol, és "visszhangot" mond, majd a felismert szavakat.
Szöveggel is kommunikálhat a robottal. Csak írja be a szöveget az alsó sávon.
A Windows Voice Assistant ügyfélprogram hibáinak elhárítása
Ha hibaüzenet jelenik meg a fő alkalmazásablakban, a következő táblázat segítségével azonosíthatja és elháríthatja a problémát:
Üzenet | Mi a teendőm? |
---|---|
Hiba (AuthenticationFailure): A WebSocket frissítése hitelesítési hibával meghiúsult (401). Ellenőrizze a megfelelő erőforráskulcsot (vagy engedélyezési jogkivonatot) és a régió nevét | Az alkalmazás Beállítások lapján győződjön meg arról, hogy helyesen adta meg a kulcsot és annak régióját. |
Hiba (ConnectionFailure): A kapcsolatot a távoli gazdagép lezárta. Hibakód: 1011. Hiba részletei: Nem sikerült csatlakozni a robothoz üzenet küldése előtt | Győződjön meg arról, hogy bejelölte a Streamvégpont engedélyezése jelölőnégyzetet , és/vagy bekapcsolta a webes szoftvercsatornákat. Győződjön meg arról, hogy a Azure-alkalmazás szolgáltatás fut. Ha igen, próbálkozzon újra. |
Hiba (ConnectionFailure): A kapcsolatot a távoli gazdagép lezárta. Hibakód: 1002. Hiba részletei: A kiszolgáló "503" állapotkódot adott vissza, amikor a rendszer a "101" állapotkódot várta | Győződjön meg arról, hogy bejelölte a Streamvégpont engedélyezése jelölőnégyzetet , és/vagy bekapcsolta a webes szoftvercsatornákat. Győződjön meg arról, hogy a Azure-alkalmazás szolgáltatás fut. Ha igen, próbálkozzon újra. |
Hiba (ConnectionFailure): A kapcsolatot a távoli gazdagép lezárta. Hibakód: 1011. Hiba részletei: A válasz állapotkódja nem jelzi a sikert: 500 (InternalServerError) | A robot egy neurális hangot adott meg a kimeneti tevékenység beszéd mezőjében, de az erőforráskulcshoz társított Azure-régió nem támogatja a neurális hangokat. Lásd a neurális hangokat és a standard hangokat. |
Ha a táblázatban szereplő műveletek nem oldják meg a problémát, olvassa el a Hangsegédek: Gyakori kérdések című témakört. Ha továbbra sem tudja megoldani a problémát, miután követte az oktatóanyag összes lépését, írjon be egy új problémát a Voice Assistant GitHub-oldalára.
Megjegyzés a kapcsolat időtúllépéséről
Ha egy robothoz csatlakozik, és az elmúlt öt percben nem történt tevékenység, a szolgáltatás automatikusan bezárja a webes szoftvercsatorna-kapcsolatot az ügyféllel és a robottal. Ez az elvárt működés. Az alsó sávon megjelenik egy üzenet: "Az aktív kapcsolat túllépte az időkorlátot, de készen áll az igény szerinti újracsatlakozásra."
Nem kell az Újracsatlakozás gombot választania. Nyomja le a mikrofongombot, és kezdjen el beszélni, írjon be egy szöveges üzenetet, vagy mondja ki a kulcsszót (ha engedélyezve van). A kapcsolat automatikusan újra létrejön.
Robottevékenységek megtekintése
Minden robot tevékenységüzeneteket küld és fogad. A Windows Voice Assistant-ügyfél Tevékenységnapló ablakában az időbélyegekkel ellátott naplók minden olyan tevékenységet mutatnak, amelyet az ügyfél a robottól kapott. Az ügyfél által a robotnak küldött tevékenységeket a DialogServiceConnector.SendActivityAsync metódussal is megtekintheti. Amikor kiválaszt egy naplóelemet, az JSON-ként jeleníti meg a társított tevékenység részleteit.
Az ügyfél által kapott tevékenység JSON-mintája:
{
"attachments":[],
"channelData":{
"conversationalAiData":{
"requestInfo":{
"interactionId":"8d5cb416-73c3-476b-95fd-9358cbfaebfa",
"version":"0.2"
}
}
},
"channelId":"directlinespeech",
"conversation":{
"id":"129ebffe-772b-47f0-9812-7c5bfd4aca79",
"isGroup":false
},
"entities":[],
"from":{
"id":"SpeechEchoBotTutorial-BotRegistration-8726"
},
"id":"89841b4d-46ce-42de-9960-4fe4070c70cc",
"inputHint":"acceptingInput",
"recipient":{
"id":"129ebffe-772b-47f0-9812-7c5bfd4aca79|0000"
},
"replyToId":"67c823b4-4c7a-4828-9d6e-0b84fd052869",
"serviceUrl":"urn:botframework:websocket:directlinespeech",
"speak":"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='en-US'><voice name='en-US-JennyNeural'>Echo: Hello and welcome.</voice></speak>",
"text":"Echo: Hello and welcome.",
"timestamp":"2019-07-19T20:03:51.1939097Z",
"type":"message"
}
Ha többet szeretne megtudni a JSON-kimenetben visszaadott adatokról, tekintse meg a tevékenység mezőit. Ebben az oktatóanyagban a szövegre összpontosíthat, és fel tudja szólalni a mezőket.
Ügyfél forráskódjának megtekintése a Speech SDK-ba irányuló hívásokhoz
A Windows Voice Assistant-ügyfél a Microsoft.CognitiveServices.Speech NuGet-csomagot használja, amely tartalmazza a Speech SDK-t. A mintakód áttekintésének jó helye a VoiceAssistantClient\MainWindow.xaml.cs fájlban található módszerInitSpeechConnector()
, amely létrehozza ezt a két Speech SDK-objektumot:
- DialogServiceConfig: Az olyan konfigurációs beállításokhoz, mint az erőforráskulcs és annak régiója.
- DialogServiceConnector: A csatornakapcsolat és az ügyfél-előfizetés eseményeinek kezelése a felismert beszéd- és robotválaszok kezeléséhez.
Egyéni kulcsszóaktiválás hozzáadása
A Speech SDK támogatja az egyéni kulcsszóaktiválást. A Microsoft-asszisztensek "Hey Cortana" kifejezéséhez hasonlóan olyan alkalmazást is írhat, amely folyamatosan figyeli az Ön által választott kulcsszót. Ne feledje, hogy egy kulcsszó lehet egyetlen szó vagy többszavas kifejezés.
Feljegyzés
A kulcsszót gyakran használják felcserélve az ébresztőszó kifejezéssel. Előfordulhat, hogy mindkettőt a Microsoft dokumentációjában használja.
A kulcsszóészlelés az ügyfélalkalmazásban történik. Ha kulcsszót használ, a hang csak akkor lesz streamelve a Direct Line Speech csatornára, ha a kulcsszót észleli. A Direct Line Speech csatorna tartalmaz egy kulcsszó-ellenőrzés nevű összetevőt, amely összetettebb feldolgozást végez a felhőben annak ellenőrzéséhez, hogy a választott kulcsszó a hangstream elején van-e. Ha a kulcsszó-ellenőrzés sikeres, akkor a csatorna kommunikálni fog a robottal.
Az alábbi lépéseket követve hozzon létre egy kulcsszómodellt, konfigurálja a Windows Voice Assistant-ügyfelet a modell használatára, és tesztelje azt a robottal:
- Egyéni kulcsszó létrehozása a Speech szolgáltatással.
- Bontsa ki az előző lépésben letöltött modellfájlt. A kulcsszónak el kell neveznie. Egy kws.table nevű fájlt keres.
- A Windows Voice Assistant ügyfélalkalmazásban keresse meg a Beállítások menüt (a fogaskerék ikont a jobb felső sarokban). Modellfájl elérési útjaként adja meg a kws.table fájl teljes elérési útját a 2. lépésben.
- Jelölje be az Engedélyezett jelölőnégyzetet. A következő üzenetnek a következő jelölőnégyzet mellett kell megjelennie: "Figyeli a kulcsszót a következő kapcsolat során". Ha rossz fájlt vagy érvénytelen elérési utat adott meg, hibaüzenet jelenik meg.
- Adja meg az Előfizetési kulcs és az Előfizetési kulcs régió értékeit, majd a Beállítások menü bezárásához kattintson az OK gombra.
- Válassza az Újracsatlakozás lehetőséget. Ekkor megjelenik egy üzenet, amely a következőt olvassa fel: "Új beszélgetés kezdődött – írja be, nyomja le a mikrofongombot, vagy mondja ki a kulcsszót". Az alkalmazás most már folyamatosan figyel.
- Beszéljen a kulcsszóval kezdődő kifejezésekről. Például: "{a kulcsszó}, mennyi az idő?" A kulcsszó kimondása után nem kell szüneteltetnie. Ha végzett, két dolog történik:
- Megjelenik egy átirat arról, amit mondott.
- Hallani fogja a robot válaszát.
- Kísérletezzen tovább a robot által támogatott három bemeneti típussal:
- Szöveg beírása az alsó sávon
- A mikrofon ikonjának lenyomása és beszéd
- A kulcsszóval kezdődő kifejezés kimondása
A kulcsszóészlelést lehetővé tevő forráskód megtekintése
A Windows Voice Assistant-ügyfél forráskódjában ezeket a fájlokat használva tekintse át a kulcsszóészlelést lehetővé tevő kódot:
- A VoiceAssistantClient\Models.cs a KeywordRecognitionModel.fromFile() Speech SDK metódus hívását tartalmazza. Ezzel a módszerrel példányosíthatja a modellt egy helyi fájlból a lemezen.
- A VoiceAssistantClient\MainWindow.xaml.cs tartalmazza a DialogServiceConnector.StartKeywordRecognitionAsync() Speech SDK metódus hívását. Ez a módszer aktiválja a folyamatos kulcsszóészlelést.
Nem kötelező: A nyelv és a robot hangjának módosítása
A létrehozott robot angol nyelven figyeli és válaszolja meg az alapértelmezett amerikai angol szöveget a beszédhangra. Azonban nem korlátozódik az angol vagy az alapértelmezett hang használatára.
Ebben a szakaszban megtudhatja, hogyan módosíthatja a robot által figyelt nyelvet, és hogyan válaszolhat rá. Azt is megtudhatja, hogyan választhat ki egy másik hangot ehhez a nyelvhez.
A nyelv módosítása
A beszédből szövegtáblába írt nyelvek bármelyike közül választhat. Az alábbi példa német nyelvre módosítja a nyelvet.
Nyissa meg a Windows Voice Assistant ügyfélalkalmazást, válassza a Beállítások gombot (jobb felső fogaskerék ikon), és írja be a de-de kifejezést a Nyelv mezőbe. Ez a beszéd szövegtáblában említett területi érték.
Ez a lépés a beszélt nyelv felismerését állítja be, felülírva az alapértelmezett en-us nyelvet. Arra is utasítja a Direct Line Speech csatornát, hogy használjon alapértelmezett német hangot a robot válaszához.
Zárja be a Beállítások lapot, majd az Újracsatlakozás gombra kattintva hozzon létre új kapcsolatot az echorobottal.
Válassza ki a mikrofongombot, és mondjon egy kifejezést németül. Megjelenik a felismert szöveg, és az echo robot az alapértelmezett német hanggal válaszol.
Az alapértelmezett robothang módosítása
Ha a robot egyszerű szöveg helyett beszédszintézis-korrektúranyelv (SSML) formájában adja meg a választ, kiválaszthatja a beszédhangra írt szöveget, és szabályozhatja a kiejtést. Az echo robot nem használja az SSML-t, de a kódot egyszerűen módosíthatja erre.
Az alábbi példa SSML-t ad hozzá az echorobot válaszához, hogy a német hang de-DE-RalfNeural
(férfi hang) legyen használva az alapértelmezett női hang helyett. Tekintse meg a szabványos hangok listáját és a nyelv által támogatott neurális hangokat .
Open samples\csharp_dotnetcore\02.echo-bot\echo-bot.cs.
Keresse meg a következő sorokat:
var replyText = $"Echo: {turnContext.Activity.Text}"; await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
Cserélje le őket a következő kódra:
var replyText = $"Echo: {turnContext.Activity.Text}"; var replySpeak = @"<speak version='1.0' xmlns='https://www.w3.org/2001/10/synthesis' xml:lang='de-DE'> <voice name='de-DE-RalfNeural'>" + $"{replyText}" + "</voice></speak>"; await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replySpeak), cancellationToken);
Hozza létre a megoldást a Visual Studióban, és javítsa ki a buildelési hibákat.
A metódus MessageFactory.Text
második argumentuma beállítja a tevékenység beszélő mezőjét a robot válaszában. Az előző módosítással az egyszerű szövegről az SSML-re cseréljük, hogy egy nem alapértelmezett német hangot adjon meg.
Robot ismételt üzembe helyezése
Most, hogy elvégezte a szükséges módosítást a roboton, a következő lépés az, hogy újból közzéteheti Azure-alkalmazás szolgáltatásban, és próbálja ki:
A Megoldáskezelő ablakban kattintson a jobb gombbal az EchoBot projektre, és válassza a Közzététel lehetőséget.
A korábbi üzembehelyezési konfiguráció már be lett töltve alapértelmezettként. Válassza a Közzététel lehetőséget az EchoBot20190805125647 – Webes üzembe helyezés mellett.
A Sikeres közzététel üzenet megjelenik a Visual Studio kimeneti ablakában, és megnyílik egy weblap a következő üzenettel: "A robot készen áll!"
Nyissa meg a Windows Voice Assistant ügyfélalkalmazást. Válassza a Beállítások gombot (jobb felső fogaskerék ikon), és győződjön meg arról, hogy a Nyelv mezőben továbbra is de-de van.
Kövesse a Windows Voice Assistant-ügyfél futtatásával kapcsolatos utasításokat az újonnan üzembe helyezett robothoz való újracsatlakozáshoz, az új nyelven való beszédhez, valamint a robotnak az új hanggal adott válaszához.
Az erőforrások eltávolítása
Ha nem folytatja az oktatóanyagban üzembe helyezett echo robot használatát, az Azure-erőforráscsoport törlésével eltávolíthatja azt és az összes kapcsolódó Azure-erőforrást:
- Az Azure Portalon válassza az Erőforráscsoportok lehetőséget az Azure-szolgáltatások alatt.
- Keresse meg a SpeechEchoBotTutorial-ResourceGroup erőforráscsoportot. Válassza ki a három elemet (...).
- Válassza az Erőforráscsoport törlése elemet.
A dokumentáció megtekintése
- Üzembe helyezés egy Önhöz közeli Azure-régióban a robot válaszidejének javulásához.
- Üzembe helyezés olyan Azure-régióban, amely támogatja a kiváló minőségű neurális szöveget a beszédhangok számára.
- A Direct Line Speech-csatornához társított díjszabás lekérése:
- Saját hangalapú robot létrehozása és üzembe helyezése:
- Bot Framework-robot létrehozása. Ezután regisztrálja a Direct Line Speech csatornán , és testre szabja a robotot a hanghoz.
- Ismerje meg a meglévő Bot Framework-megoldásokat: Virtuális asszisztenst hozhat létre, és kiterjesztheti a Direct Line Speechre.