Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Kurzy Mixed Reality Academy byly navrženy s ohledem na HoloLens (1. generace), Unity 2017 a Mixed Reality Asistivní náhlavní soupravy. Proto se domníváme, že je důležité ponechat tyto kurzy pro vývojáře, kteří stále hledají pokyny k vývoji pro tato zařízení. Tyto kurzy nebudou aktualizovány nejnovějšími sadami nástrojů nebo interakcemi používanými pro HoloLens 2 a nemusí být kompatibilní s novějšími verzemi Unity. Budou zachovány, aby mohly pokračovat v práci na podporovaných zařízeních. Byla publikována nová série kurzů pro HoloLens 2.
Hlasový vstup nám nabízí další způsob, jak s hologramy pracovat. Hlasové příkazy fungují velmi přirozeným a snadným způsobem. Navrhněte hlasové příkazy tak, aby byly:
- Přírodní
- Snadno zapamatovatelné
- Odpovídající kontext
- Dostatečně odlišné od ostatních možností ve stejném kontextu
V mr Basics 101 jsme použili KeywordRecognizer k vytvoření dvou jednoduchých hlasových příkazů. V MR Input 212 se podrobněji podíváme a naučíme se:
- Návrh hlasových příkazů, které jsou optimalizované pro řečový modul HoloLens.
- Upozornit uživatele na to, jaké hlasové příkazy jsou k dispozici.
- Potvrďte, že jsme slyšeli hlasový příkaz uživatele.
- Pomocí rozpoznávání diktování porozumíte tomu, co uživatel říká.
- Rozpoznávání gramatiky použijte k naslouchání příkazům založeným na souboru SRGS nebo specifikace gramatiky rozpoznávání řeči.
V tomto kurzu se znovu podíváme na Průzkumníka modelů, který jsme vytvořili v MR Input 210 a MR Input 211.
Důležité
Videa vložená do každé z následujících kapitol byla zaznamenána pomocí starší verze Unity a sady Mixed Reality Toolkit. Podrobné pokyny jsou přesné a aktuální, ale v odpovídajících videích se můžou zobrazovat skripty a vizuály, které jsou zastaralé. Videa zůstávají zahrnuta pro potomky a proto, že probírané koncepty stále platí.
Podpora zařízení
| Kurz | HoloLens | Imerzivní náhlavní soupravy |
|---|---|---|
| MR Vstup 212: Hlas | ✔️ | ✔️ |
Než začnete
Požadavky
- Počítač Windows 10 nakonfigurovaný s nainstalovanými správnými nástroji.
- Některé základní možnosti programování v jazyce C#.
- Měli jste dokončit MR Basics 101.
- Měli jste dokončit MR Input 210.
- Měli jste dokončit MR Input 211.
- Zařízení HoloLens nakonfigurované pro vývoj.
Soubory projektu
- Stáhněte si soubory vyžadované projektem. Vyžaduje Unity 2017.2 nebo novější.
- Zrušte archivaci souborů na ploše nebo na jiné snadno dostupné místo.
Poznámka
Pokud si chcete před stažením projít zdrojový kód, je k dispozici na GitHubu.
Errata a poznámky
- Aby bylo možné v kódu najít zarážky, musí být v sadě Visual Studio v části Tools-Options-Debugging>> (Povolit jen můj kód) zakázané (nezaškrtnuté).
Nastavení Unity
Pokyny
- Spusťte Unity.
- Vyberte Otevřít.
- Přejděte do složky HolographicAcademy-Holograms-212-Voice , kterou jste předtím archivovali.
- Vyhledejte a vyberte složku Spuštění/Průzkumníka modelů .
- Klikněte na tlačítko Vybrat složku .
- Na panelu Projekt rozbalte složku Scény .
- Poklikáním na scénu ModelExplorer ji načtěte v Unity.
Sestavování
- V Unity vyberte Nastavení sestavení souboru>.
- Pokud scene/ModelExplorer není v seznamu Scény v sestavení, klikněte na Přidat otevřené scény a přidejte scénu.
- Pokud vyvíjíte speciálně pro HoloLens, nastavte Cílové zařízení na HoloLens. V opačném případě ho ponechte na libovolném zařízení.
- Ujistěte se, že je typ sestavení nastavený na D3D a sada SDK je nastavená na nejnovější nainstalovanou verzi (což by měla být sada SDK 16299 nebo novější).
- Klikněte na Sestavit.
- Vytvořte novou složku s názvem "Aplikace".
- Jedním kliknutím klikněte na složku Aplikace .
- Stiskněte Vybrat složku a Unity začne vytvářet projekt pro Visual Studio.
Po dokončení Unity se zobrazí okno Průzkumník souborů.
- Otevřete složku Aplikace .
- Otevřete řešení ModelExplorer v sadě Visual Studio.
Pokud se nasazuje do HoloLensu:
- Pomocí horního panelu nástrojů v sadě Visual Studio změňte cíl z Ladění na Vydání a z ARM na x86.
- Klikněte na šipku rozevíracího seznamu vedle tlačítka Místní počítač a vyberte Vzdálený počítač.
- Zadejte IP adresu zařízení HoloLens a nastavte Režim ověřování na Universal (Nešifrovaný protokol). Klikněte na Vybrat. Pokud ip adresu zařízení neznáte, podívejte se do části Nastavení > Sítě & Rozšířené možnosti internetu>.
- V horním řádku nabídek klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5. Pokud se do zařízení nasazuje poprvé, budete ho muset spárovat se sadou Visual Studio.
- Po nasazení aplikace zavřete Fitboxgestem výběru.
Pokud se nasazuje do imerzivní náhlavní soupravy:
- Pomocí horního panelu nástrojů v sadě Visual Studio změňte cíl z Ladění na Vydání a z ARM na x64.
- Ujistěte se, že je cíl nasazení nastavený na Místní počítač.
- V horním řádku nabídek klikněte na Ladit –> Spustit bez ladění nebo stiskněte ctrl + F5.
- Po nasazení aplikace zavřete Fitbox stisknutím spouště na ovladači pohybu.
Poznámka
Na panelu Chyby sady Visual Studio si můžete všimnout červených chyb. Je bezpečné je ignorovat. Přepněte na panel Výstup a zobrazte skutečný průběh sestavení. Chyby na panelu Výstup budou vyžadovat, abyste provedli opravu (nejčastěji jsou způsobené chybou ve skriptu).
Kapitola 1 - Povědomí
Cíle
- Přečtěte si o návrhu hlasových příkazů Dos a Don'ts .
- K přidání hlasových příkazů založených na pohledu použijte KeywordRecognizer .
- Dejte uživatelům vědět o hlasových příkazech pomocí zpětné vazby kurzoru.
Návrh hlasových příkazů
V této kapitole se dozvíte o návrhu hlasových příkazů. Při vytváření hlasových příkazů:
DO
- Vytvářejte stručné příkazy. Nechcete použít příkaz Přehrát aktuálně vybrané video, protože tento příkaz není stručný a uživatel ho snadno zapomene. Místo toho byste měli použít: "Přehrát video", protože je stručné a má více slabiek.
- Používejte jednoduchou slovní zásobu. Vždy se snažte používat běžná slova a fráze, které uživatel snadno objeví a zapamatuje. Pokud by například vaše aplikace měla objekt poznámky, který by se dal zobrazit nebo skrýt v zobrazení, nepoužili byste příkaz "Zobrazit plakát", protože "placard" je zřídka používaný termín. Místo toho byste použili příkaz Zobrazit poznámku k zobrazení poznámky ve vaší aplikaci.
- Buďte konzistentní. Hlasové příkazy by měly být v celé aplikaci konzistentní. Představte si, že v aplikaci máte dvě scény a obě scény obsahují tlačítko pro zavření aplikace. Pokud první scéna použila k aktivaci tlačítka příkaz "Exit" , ale druhá scéna použila příkaz "Zavřít aplikaci", bude uživatel velmi zmatený. Pokud stejná funkce přetrvává ve více scénách, měl by se k aktivaci použít stejný hlasový příkaz.
NE
- Používejte příkazy s jednou slabiky. Pokud jste například vytvářeli hlasový příkaz k přehrání videa, měli byste se vyhnout použití jednoduchého příkazu "Přehrát", protože jde pouze o jednu slabiku a systém ji může snadno vynechat. Místo toho byste měli použít: "Přehrát video", protože je stručné a má více slabiek.
- Používejte systémové příkazy. Systém si vyhradí příkaz "Vybrat" , který aktivuje událost Klepnutí pro aktuálně zaměřený objekt. Nepoužívejte příkaz Vybrat v klíčovém slově nebo frázi znovu, protože nemusí fungovat očekávaným způsobem. Pokud například hlasový příkaz pro výběr datové krychle ve vaší aplikaci byl "Vybrat datovou krychli", ale uživatel se při vyslovení příkazu díval na kouli, pak by místo toho byla vybrána koule. Podobně jsou příkazy na panelu aplikace povoleny hlasem. V zobrazení CoreWindow nepoužívejte následující hlasové příkazy:
- Vrať se
- Posunovací nástroj
- Nástroj Lupa
- Nástroj Přetažení
- Adjust
- Odebrat
- Používejte podobné zvuky. Snažte se vyhnout použití hlasových příkazů, které rýmuje. Pokud jste měli nákupní aplikaci, která jako hlasové příkazy podporovala "Zobrazit obchod" a "Zobrazit více" , měli byste jeden z příkazů zakázat, zatímco se druhý používá. Můžete například použít tlačítko "Zobrazit obchod" k otevření obchodu a pak tento příkaz zakázat, když se store zobrazil, aby se příkaz "Zobrazit více" mohl použít k procházení.
Pokyny
- Na panelu Hierarchie Unity vyhledejte holoComm_screen_mesh objekt pomocí vyhledávacího nástroje.
- Poklikáním na objekt holoComm_screen_mesh ho zobrazíte ve scéně. Toto je watch astronauta, který bude reagovat na naše hlasové příkazy.
- Na panelu inspektoru vyhledejte komponentu Speech Input Source (Script).
- Rozbalte část Keywords (Klíčová slova ) a podívejte se na podporovaný hlasový příkaz: Open Communicator (Otevřít communicator).
- Klikněte na ozubené kolečko na pravé straně a pak vyberte Upravit skript.
- Prozkoumejte soubor SpeechInputSource.cs , abyste pochopili, jak používá KeywordRecognizer k přidání hlasových příkazů.
Sestavení a nasazení
- V Unity použijte nastavení sestavení souboru > k opětovnému sestavení aplikace.
- Otevřete složku Aplikace .
- Otevřete řešení ModelExplorer v sadě Visual Studio.
(Pokud jste už tento projekt vytvořili nebo nasadili v sadě Visual Studio během nastavování, můžete tuto instanci VS otevřít a po zobrazení výzvy kliknout na Znovu načíst vše).)
- V sadě Visual Studio klikněte na Ladit –> spustit bez ladění nebo stiskněte ctrl + F5.
- Jakmile se aplikace nasadí na HoloLens, zavřete pole pro přizpůsobení pomocí gesta pro klepnutí ve vzduchu .
- Dívejte se na watch astronauta.
- Když je fokus na watch, ověřte, že se kurzor změní na mikrofon. Poskytuje zpětnou vazbu, že aplikace naslouchá hlasovým příkazům.
- Ověřte, že se na watch zobrazuje popis. To pomáhá uživatelům zjistit příkaz "Otevřít communicator" .
- Při pohledu na watch řekněte "Open Communicator" (Otevřít communicator), aby se otevřel panel komunikátoru.
Kapitola 2 – Uznání
Cíle
- Nahrajte zprávu pomocí vstupu Mikrofon.
- Poskytněte uživateli zpětnou vazbu, že aplikace naslouchá jeho hlasu.
Poznámka
Aby aplikace nahrála z mikrofonu, musí být deklarována funkce Mikrofon . To se provádí pro vás již v MR Input 212, ale mějte to na paměti pro své vlastní projekty.
- V Unity Editoru přejděte do nastavení přehrávače tak, že přejdete na Upravit > přehrávač nastavení > projektu.
- Klikněte na kartu Univerzální platforma Windows.
- V části Možnosti nastavení > publikování zkontrolujte možnost mikrofonu .
Pokyny
- Na panelu Hierarchie Unity ověřte, že je vybraný objekt holoComm_screen_mesh .
- Na panelu inspektoru vyhledejte komponentu Astronaut Watch (Script).
- Klikněte na malou modrou krychli, která je nastavena jako hodnota vlastnosti Communicator Prefab .
- Na panelu Projekt by teď měl být fokus na panelu Communicator prefab.
- Klikněte na panelu Projekt na panelu Communicator prefab a zobrazte jeho součásti v inspektoru.
- Podívejte se na komponentu Správce mikrofonu (skript), která nám umožní zaznamenat hlas uživatele.
- Všimněte si, že Communicator objekt má komponentu Speech Input Handler (Script) pro odpověď na příkaz Odeslat zprávu .
- Podívejte se na komponentu Communicator (Script) a poklikáním na skript ji otevřete v sadě Visual Studio.
Communicator.cs zodpovídá za nastavení správných stavů tlačítek na zařízení komunikátoru. To umožní našim uživatelům nahrát zprávu, přehrát ji a odeslat zprávu astronautům. Spustí a zastaví také animovanou vlnovou formu, aby bylo uživateli potvrzeno, že jeho hlas byl slyšet.
- V souboru Communicator.cs odstraňte následující řádky (81 a 82) z metody Start . Tím se na komunikátoru povolí tlačítko Nahrát.
// TODO: 2.a Delete the following two lines:
RecordButton.SetActive(false);
MessageUIRenderer.gameObject.SetActive(false);
Sestavení a nasazení
- V sadě Visual Studio znovu sestavte aplikaci a nasaďte ji do zařízení.
- Upřete pohled na watch astronauta a řekněte "Open Communicator" (Otevřít communicator), aby se komunikátor zobrazil.
- Stisknutím tlačítka Nahrát (mikrofon) začněte nahrávat verbální zprávu pro astronauta.
- Začněte mluvit a ověřte, že se v komunikátoru přehrává vlnová animace, která uživateli poskytuje zpětnou vazbu, že je slyšet jeho hlas.
- Stiskněte tlačítko Zastavit (levý čtverec) a ověřte, že animace vlny přestane běžet.
- Stisknutím tlačítka Přehrát (pravý trojúhelník) přehrajete nahranou zprávu a uslyšíte ji na zařízení.
- Stisknutím tlačítka Zastavit (pravý čtverec) zastavíte přehrávání nahrané zprávy.
- Vyslovením příkazu "Odeslat zprávu" zavřete komunikátor a obdržíte od astronauta odpověď Message Received.
Kapitola 3 : Porozumění a rozpoznávání diktování
Cíle
- K převodu řeči uživatele na text použijte Rozpoznávání diktování.
- Zobrazí v komunikátoru hypotézu Rozpoznávání diktování a konečné výsledky.
V této kapitole použijeme Rozpoznávání diktování k vytvoření zprávy pro astronauta. Při používání Rozpoznávání diktování mějte na paměti, že:
- Aby Rozpoznávání diktování fungovalo, musíte být připojení k Wi-Fi.
- K vypršení časových limitů dochází po nastaveném časovém období. Je potřeba mít na paměti dva časové limity:
- Pokud se rozpoznávání spustí a prvních pět sekund neuslyší žádný zvuk, vyprší časový limit.
- Pokud rozpoznávání zadalo výsledek, ale pak po dobu dvaceti sekund uslyší ticho, dojde k vypršení časového limitu.
- Najednou může běžet jenom jeden typ rozpoznávání (klíčové slovo nebo diktování).
Poznámka
Funkce Mikrofon musí být deklarována, aby aplikace nahrála z mikrofonu. To je pro vás již provedeno v MR Input 212, ale mějte to na paměti pro vaše vlastní projekty.
- V Editoru Unity přejděte do nastavení přehrávače tak, že přejdete na Upravit > přehrávač nastavení > projektu.
- Klikněte na kartu Univerzální platforma Windows.
- V části Možnosti nastavení > publikování zkontrolujte možnost Mikrofon .
Pokyny
Upravíme soubor MicrophoneManager.cs tak, aby používal rozpoznávání diktování. Toto přidáme:
- Po stisknutí tlačítka Nahrátspustíme DiktováníRecognizer.
- Ukažte hypotézu toho, co DiktationRecognizer pochopil.
- Zamkněte výsledky toho, co DictationRecognizer rozuměl.
- Zkontrolujte časové limity z diktováníRecognizer.
- Když stisknete tlačítko Zastavit nebo vyprší časový limit relace mikrofonu, zastavte DiktationRecognizer.
- Restartujte příkaz KeywordRecognizer, který bude naslouchat příkazu Odeslat zprávu .
Tak se do toho pusťme. Dokončete všechna cvičení kódování pro 3.a v souboru MicrophoneManager.cs nebo zkopírujte a vložte hotový kód, který najdete níže:
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
using System.Collections;
using System.Text;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Windows.Speech;
namespace Academy
{
public class MicrophoneManager : MonoBehaviour
{
[Tooltip("A text area for the recognizer to display the recognized strings.")]
[SerializeField]
private Text dictationDisplay;
private DictationRecognizer dictationRecognizer;
// Use this string to cache the text currently displayed in the text box.
private StringBuilder textSoFar;
// Using an empty string specifies the default microphone.
private static string deviceName = string.Empty;
private int samplingRate;
private const int messageLength = 10;
// Use this to reset the UI once the Microphone is done recording after it was started.
private bool hasRecordingStarted;
void Awake()
{
/* TODO: DEVELOPER CODING EXERCISE 3.a */
// 3.a: Create a new DictationRecognizer and assign it to dictationRecognizer variable.
dictationRecognizer = new DictationRecognizer();
// 3.a: Register for dictationRecognizer.DictationHypothesis and implement DictationHypothesis below
// This event is fired while the user is talking. As the recognizer listens, it provides text of what it's heard so far.
dictationRecognizer.DictationHypothesis += DictationRecognizer_DictationHypothesis;
// 3.a: Register for dictationRecognizer.DictationResult and implement DictationResult below
// This event is fired after the user pauses, typically at the end of a sentence. The full recognized string is returned here.
dictationRecognizer.DictationResult += DictationRecognizer_DictationResult;
// 3.a: Register for dictationRecognizer.DictationComplete and implement DictationComplete below
// This event is fired when the recognizer stops, whether from Stop() being called, a timeout occurring, or some other error.
dictationRecognizer.DictationComplete += DictationRecognizer_DictationComplete;
// 3.a: Register for dictationRecognizer.DictationError and implement DictationError below
// This event is fired when an error occurs.
dictationRecognizer.DictationError += DictationRecognizer_DictationError;
// Query the maximum frequency of the default microphone. Use 'unused' to ignore the minimum frequency.
int unused;
Microphone.GetDeviceCaps(deviceName, out unused, out samplingRate);
// Use this string to cache the text currently displayed in the text box.
textSoFar = new StringBuilder();
// Use this to reset the UI once the Microphone is done recording after it was started.
hasRecordingStarted = false;
}
void Update()
{
// 3.a: Add condition to check if dictationRecognizer.Status is Running
if (hasRecordingStarted && !Microphone.IsRecording(deviceName) && dictationRecognizer.Status == SpeechSystemStatus.Running)
{
// Reset the flag now that we're cleaning up the UI.
hasRecordingStarted = false;
// This acts like pressing the Stop button and sends the message to the Communicator.
// If the microphone stops as a result of timing out, make sure to manually stop the dictation recognizer.
// Look at the StopRecording function.
SendMessage("RecordStop");
}
}
/// <summary>
/// Turns on the dictation recognizer and begins recording audio from the default microphone.
/// </summary>
/// <returns>The audio clip recorded from the microphone.</returns>
public AudioClip StartRecording()
{
// 3.a Shutdown the PhraseRecognitionSystem. This controls the KeywordRecognizers
PhraseRecognitionSystem.Shutdown();
// 3.a: Start dictationRecognizer
dictationRecognizer.Start();
// 3.a Uncomment this line
dictationDisplay.text = "Dictation is starting. It may take time to display your text the first time, but begin speaking now...";
// Set the flag that we've started recording.
hasRecordingStarted = true;
// Start recording from the microphone for 10 seconds.
return Microphone.Start(deviceName, false, messageLength, samplingRate);
}
/// <summary>
/// Ends the recording session.
/// </summary>
public void StopRecording()
{
// 3.a: Check if dictationRecognizer.Status is Running and stop it if so
if (dictationRecognizer.Status == SpeechSystemStatus.Running)
{
dictationRecognizer.Stop();
}
Microphone.End(deviceName);
}
/// <summary>
/// This event is fired while the user is talking. As the recognizer listens, it provides text of what it's heard so far.
/// </summary>
/// <param name="text">The currently hypothesized recognition.</param>
private void DictationRecognizer_DictationHypothesis(string text)
{
// 3.a: Set DictationDisplay text to be textSoFar and new hypothesized text
// We don't want to append to textSoFar yet, because the hypothesis may have changed on the next event
dictationDisplay.text = textSoFar.ToString() + " " + text + "...";
}
/// <summary>
/// This event is fired after the user pauses, typically at the end of a sentence. The full recognized string is returned here.
/// </summary>
/// <param name="text">The text that was heard by the recognizer.</param>
/// <param name="confidence">A representation of how confident (rejected, low, medium, high) the recognizer is of this recognition.</param>
private void DictationRecognizer_DictationResult(string text, ConfidenceLevel confidence)
{
// 3.a: Append textSoFar with latest text
textSoFar.Append(text + ". ");
// 3.a: Set DictationDisplay text to be textSoFar
dictationDisplay.text = textSoFar.ToString();
}
/// <summary>
/// This event is fired when the recognizer stops, whether from Stop() being called, a timeout occurring, or some other error.
/// Typically, this will simply return "Complete". In this case, we check to see if the recognizer timed out.
/// </summary>
/// <param name="cause">An enumerated reason for the session completing.</param>
private void DictationRecognizer_DictationComplete(DictationCompletionCause cause)
{
// If Timeout occurs, the user has been silent for too long.
// With dictation, the default timeout after a recognition is 20 seconds.
// The default timeout with initial silence is 5 seconds.
if (cause == DictationCompletionCause.TimeoutExceeded)
{
Microphone.End(deviceName);
dictationDisplay.text = "Dictation has timed out. Please press the record button again.";
SendMessage("ResetAfterTimeout");
}
}
/// <summary>
/// This event is fired when an error occurs.
/// </summary>
/// <param name="error">The string representation of the error reason.</param>
/// <param name="hresult">The int representation of the hresult.</param>
private void DictationRecognizer_DictationError(string error, int hresult)
{
// 3.a: Set DictationDisplay text to be the error string
dictationDisplay.text = error + "\nHRESULT: " + hresult;
}
/// <summary>
/// The dictation recognizer may not turn off immediately, so this call blocks on
/// the recognizer reporting that it has actually stopped.
/// </summary>
public IEnumerator WaitForDictationToStop()
{
while (dictationRecognizer != null && dictationRecognizer.Status == SpeechSystemStatus.Running)
{
yield return null;
}
}
}
}
Sestavení a nasazení
- Znovu sestavte v sadě Visual Studio a nasaďte je do zařízení.
- Zavřete rámeček pro přizpůsobení pomocí gesta pro klepnutí vzduchem.
- Podívejte se na watch astronauta a řekněte "Open Communicator".
- Výběrem tlačítka Nahrát (mikrofon) nahrajte zprávu.
- Začněte mluvit. Rozpoznávání diktování bude interpretovat vaši řeč a zobrazovat hypotetický text v komunikátoru.
- Zkuste při nahrávání zprávy vyslat "Odeslat zprávu" . Všimněte si, že rozpoznávání klíčových slov nereaguje, protože rozpoznávání diktování je stále aktivní.
- Přestaňte na několik sekund mluvit. Sledujte, jak rozpoznávání diktování dokončí svoji hypotézu a ukáže konečný výsledek.
- Začněte mluvit a pak na 20 sekund odstavte. To způsobí vypršení časového limitu rozpoznávání diktování .
- Všimněte si, že rozpoznávání klíčových slov je po výše uvedeném časovém limitu znovu povoleno. Komunikátor teď bude reagovat na hlasové příkazy.
- Vyslovte "Send Message" (Poslat zprávu) a odešlete zprávu astronautu.
Kapitola 4 - Rozpoznávání gramatiky
Cíle
- Rozpoznávání gramatiky použijte k rozpoznávání řeči uživatele podle souboru SRGS nebo specifikace gramatiky rozpoznávání řeči.
Poznámka
Funkce Mikrofon musí být deklarována, aby aplikace nahrála z mikrofonu. To je pro vás již provedeno v MR Input 212, ale mějte to na paměti pro vaše vlastní projekty.
- V Editoru Unity přejděte do nastavení přehrávače tak, že přejdete na Upravit > přehrávač nastavení > projektu.
- Klikněte na kartu Univerzální platforma Windows.
- V části Možnosti nastavení > publikování zkontrolujte možnost Mikrofon .
Pokyny
- Na panelu Hierarchie vyhledejte Jetpack_Center a vyberte ji.
- Na panelu Inspektor vyhledejte skript akce Tagalong.
- Klikněte na malý kroužek vpravo od pole Objekt, který chcete označit.
- V okně, které se zobrazí, vyhledejte SRGSToolbox a vyberte ho ze seznamu.
- Podívejte se na souborSRGSColor.xml ve složce StreamingAssets .
- Specifikace návrhu SRGS najdete na webu W3C zde.
V souboru SRGS máme tři typy pravidel:
- Pravidlo, které umožňuje vyslovit jednu barvu ze seznamu dvanácti barev.
- Tři pravidla, která poslouchají kombinaci pravidla barvy a jednoho ze tří obrazců.
- Kořenové pravidlo colorChooser, které naslouchá jakékoli kombinaci tří pravidel "barva + tvar". Obrazce lze říci v libovolném pořadí a v libovolném množství od jednoho do všech tří. Toto je jediné pravidlo, kterému se naslouchá, protože je zadané jako kořenové pravidlo v horní části souboru v počáteční <gramatické> značce.
Sestavení a nasazení
- Znovu sestavte aplikaci v Unity a pak ji sestavte a nasaďte ze sady Visual Studio, abyste mohli aplikaci používat v HoloLensu.
- Zavřete rámeček pro přizpůsobení pomocí gesta pro klepnutí vzduchem.
- Podívejte se na jetpack astronauta a proveďte gesto vzduchem.
- Začněte mluvit. Rozpoznávání gramatiky bude interpretovat vaši řeč a měnit barvy obrazců na základě rozpoznávání. Příkladem příkazu je modrý kruh, žlutý čtverec.
- Provedením dalšího gesta vzduchového klepnutí panel nástrojů zavřete.
Konec
Gratulujeme! Dokončili jste mr Input 212: Hlas.
- Znáte hlasové příkazy Dos a Don'ts.
- Viděli jste, jak se používají popisy, aby uživatelé věděli o hlasových příkazech.
- Viděli jste několik typů zpětné vazby, které slouží k potvrzení, že hlas uživatele byl vyslyšen.
- Víte, jak přepínat mezi rozpoznáváním klíčových slov a rozpoznáváním diktování a jak tyto dvě funkce rozumí a interpretují váš hlas.
- Naučili jste se používat soubor SRGS a rozpoznávání gramatiky pro rozpoznávání řeči ve vaší aplikaci.