NXP-LOGO

NXP AN14270 Pridanie hlasovej podpory do sprievodcu GUI

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-PRODUCT

Špecifikácie

Názov produktu: AN14270 – Pridanie hlasovej podpory do GUI Guider pre i.MX 93

Revízia: 1.0

dátum: 16. mája 2024

Informácie o produkte

Abstrakt: Táto poznámka k aplikácii skúma integráciu hlasu premostením technológie rozpoznávania reči (VIT) s GUI Guider.

Výrobca: Polovodiče NXP

Koniecview

Sprievodca GUI: Vývojový nástroj používateľského rozhrania od NXP, ktorý využíva grafickú knižnicu LVGL na vytváranie vysokokvalitných obrazoviek s rôznymi widgetmi, animáciami a štýlmi.

Inteligentná hlasová technológia (VIT): Nástroj od NXP na definovanie budiacich slov a príkazov prostredníctvom bezplatných online nástrojov a softvéru na ovládanie hlasom.

Front správ (MQUEUE): Implementuje fronty správ POSIX 1003.1b pre medziprocesovú komunikáciu medzi GUI Guider a VIT.

Požiadavky na hardvér, softvér a hostiteľa

Kategória Popis
Hardvér Podľa požiadaviek na produkt
softvér Podľa požiadaviek na produkt
Hostiteľ Podľa požiadaviek na produkt

Návod na použitie produktu

Predbežné požiadavky

Blikajúca verzia Linuxu

Ak chcete flashovať EVK s verziou Linuxu:

$ ./uuu.exe -b emmc_all .sd-flash_evk imx-image-full-imx93evk.wic

Toolchain s Yocto Project

  1. Vytvorte priečinok bin: $ mkdir ~/bin
  2. Stiahnite si repo nástroj: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  3. Pridať priečinok bin do premennej PATH: $ export PATH=~/bin:$PATH
  4. Recepty na klonovanie: $ mkdir imx-yocto-bsp $ cd imx-yocto-bsp $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-mickledore -m imx-6.1.55-2.2.0.xml $ repo sync
  5. Na zostavenie a konfiguráciu: $ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy

Často kladené otázky (FAQ)

Q: Čo je VIT?
A: VIT je skratka pre Voice Intelligent Technology, nástroj od NXP na definovanie budiacich slov a príkazov pomocou online nástrojov a softvéru na ovládanie hlasom.

Q: Čo je GUI Guider?
A: GUI Guider je nástroj na vývoj používateľského rozhrania od NXP, ktorý využíva grafickú knižnicu LVGL na vytváranie vysokokvalitných obrazoviek s rôznymi widgetmi, animáciami a štýlmi.

Informácie o dokumente

Informácie Obsah
Kľúčové slová AN14270, VIT, rozpoznávanie reči, medziprocesová komunikácia (IPC), front správ, GUI Guider
Abstraktné Táto poznámka k aplikácii skúma možnosť integrácie hlasu vytvorením mosta medzi technológiou rozpoznávania reči, ako je VIT, a sprievodcom GUI tvorcu rozhrania.

Úvod

Používateľské rozhranie obmedzilo použitie nástroja GUI Guider. Získanie interakcie iba prostredníctvom myši alebo dotykovej obrazovky môže v niektorých prípadoch použitia stačiť. Niekedy však prípad použitia vyžaduje prekročiť svoje obmedzenia. Tento dokument skúma možnosť integrácie hlasu vytvorením mosta medzi technológiou rozpoznávania reči, ako je VIT, a sprievodcom GUI tvorcu rozhrania. Používa univerzálny spôsob prepojenia všetkých príkazov na rozpoznávanie hlasu a prebudenia s akoukoľvek interakciou vytvorenou programom GUI Guider.

Koniecview

Ak chcete nastaviť komunikáciu medzi GUI Guider a príkazmi technológie VIT, pozrite si časť 8. Komunikácia je vytvorená pomocou kódu vytvoreného ako handler, ktorý počúva a umožňuje mu simulovať udalosti v GUI na vytvorenie interakcie.

Sprievodca GUI
GUI Guider je nástroj na vývoj používateľského rozhrania od NXP, ktorý poskytuje rýchlu možnosť vytvorenia vysokokvalitného displeja pomocou grafickej knižnice LVGL. Používa rôzne miniaplikácie, animácie a štýly s rôznymi konfiguráciami spúšťačov a prispôsobením s možnosťou nekódovania. Viac informácií o GUI Guider nájdete v GUI Guider v1.6.1 User Guide (dokument GUIGUIDERUG).

Hlasová inteligentná technológia
Voice Intelligent Technology (VIT) je nástroj vytvorený NXP na definovanie budiacich slov a príkazov pomocou bezplatných online nástrojov, knižnice a softvérového balíka na ovládanie hlasom. MCUXpresso ho môže použiť pre mikrokontroléry alebo Linux BSP ho môže použiť pre mikroprocesory.

Front správ
Front správ (MQUEUE) je manažér, ktorý implementuje formát frontov správ POSIX 1003.1b. Používa sa ako medziprocesová komunikácia (IPC) na vytvorenie mosta medzi GUI Guider a VIT. Vymieňa si dáta vo forme správ, posiela ich cez VIT a vykonáva správu pomocou skriptu
command_handler.

Požiadavky na hardvér, softvér a hostiteľa

Tabuľka 1 poskytuje podrobnosti o hardvéri, softvéri a hostiteľovi potrebnom na používanie nástroja VIT a GUI Guider.

Tabuľka 1. Použitý hardvér, softvér a hostiteľ

Kategória Popis
Hardvér • i.MX 93 EVK

• Napájanie: USB Type-C 45 W napájací zdroj (5 V/3 A)

• Kábel USB Type-C samec na USB Type-A samec: zostava, kompatibilný s USB 3.0

• LVDSL adaptér a HDMI kábel alebo DY1212W-4856 LVCD LCD panel

• Interný mikrofón i.MX 93

softvér • Verzia Linux BSP: L6.1.55_2.2.0

• Verzia GUI Guider v1.6.1 a novšia

• Toolchain 6.1-Langdale

Hostiteľ • X86_64 Linux Ubuntu 20.04.6 LTS

Predbežné požiadavky

Táto časť popisuje inštaláciu rôznych potrebných nástrojov.

Blikajúca verzia Linuxu

Pred vykonaním nižšie uvedených krokov zmeňte konfiguráciu zavádzania na režim sťahovania a pripojte USB cez hostiteľa. Ďalšie informácie nájdete v Používateľskej príručke pre i.MX Linux (dokument IMXLUG).

Ak chcete blikať EVK, vykonajte nasledujúce kroky:

  1. Stiahnite si najnovšiu verziu obrazu NXP Linux BSP pre i.MX 93 (L6.1.55_2.2.0 alebo najnovšiu).
  2. Ak chcete flashovať EVK, stiahnite si najnovšie UUU: https://github.com/nxp-imx/mfgtools/releases.
  3. Pripojte EVK k hostiteľovi pomocou portu EVK USB1.
  4. Pomocou imx-image-full umiestnite oba programy do toho istého file a flash EVK pomocou nasledujúceho príkazu:

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (1)

Prípadne použite na flashovanie EVK iba obrázok:

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (2)

Poznámka: Uistite sa, že ste skontrolovali čapy na štarte.

Toolchain s projektom Yocto
Projekt Yocto je open source spolupráca, ktorá pomáha vytvárať vlastné systémy založené na Linuxe. Yocto vytvára obrázok, ktorý používa i.MX.
Uistite sa, že hostiteľský počítač má súpravu nástrojov na vývoj aplikácií (ADT) alebo reťazec nástrojov, aby malo rovnaké prostredie ako EVK. Uistite sa, že je schopný kompilovať aplikácie pre cieľovú dosku. Ak chcete získať správny reťazec nástrojov, pozrite si „časť 4.5.12“ v Používateľskej príručke pre i.MX Linux (dokument IMXLUG) a „časť 4“ v Používateľskej príručke projektu i.MX Yocto (dokument IMXLXYOCTOUG).

Ak chcete získať reťazec nástrojov na hostiteľskom počítači z prostredia Yocto, vykonajte nasledujúce kroky:

  1. Vytvorte priečinok bin v domovskom adresári:NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (3)
  2. Uistite sa, že priečinok ~/bin je v premennej PATH.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (4)
  3. Naklonujte recepty na použitie v úložisku:NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (5)
  4. Ak chcete zostaviť, nakonfigurujte nasledovne:NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (6)
  5. Ak chcete vygenerovať reťazec nástrojov, nastavte samostatné prostredie bez projektu Yocto takto:NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (7)

Sprievodca GUI

Táto časť vysvetľuje o GUI Guider a ako používať základy na vytvorenie projektu založeného na tomto nástroji. Vysvetľuje tiež rôzne vlastnosti, ktoré je potrebné použiť a využiťtage týchto charakteristík.

Widgety a udalosti sprievodcu Gui
Keď používateľ vytvorí projekt v GUI Guider, použitie rôznych widgetov sa priradí ako objekt vygenerovaný automaticky. Tento objekt má rôzne vlastnosti; jednou z nich sú Udalosti. V závislosti od miniaplikácie môžu mať udalosti rôzne spúšťače a to, čo sa stane, závisí od cieľa. Napríkladample, Obrázok 1 ukazuje, čo sa stane, ak tlačidlo zacieli na obrazovku tak, aby mala iba akciu „Načítať obrazovku“.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (8)

Tieto objekty možno nájsť v ceste /generated/gui-guider.h. Skript command_handler má pokroktage z udalostí používaných miniaplikáciami simulujúcimi spúšťač.
Viac informácií o widgetoch a udalostiach nájdete v používateľskej príručke GUI Guider v1.6.1 (dokument GUIGUIDERUG).

Rýchly štart
Ak chcete začať pracovať, nainštalujte sprievodcu GUI.

Pri inštalácii hostiteľa vykonajte nasledujúce kroky:

  1. Stiahnite si najnovšiu verziu GUI Guider (1.7.1 alebo najnovšiu).
  2. Postupujte podľa krokov na stiahnutie.
    Tu si používateľ môže zvoliť vytvorenie projektu s oficiálnym examplesov alebo miestnych projektov.

Ak chcete vytvoriť projekt GUI, vykonajte tieto kroky:

  1. Otvoriť sprievodcu GUI 1.7.1.
  2. Vytvorte projekt.
  3. Vyberte verziu LVGL.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (9)
  4. Pre i.MX 93 vyberte procesor i.MX.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (10)
  5. Vyberte šablónu. Pre tento dokument vyberte šablónu „ScreenTransition“.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (11)
  6. Vyberte Názov projektu a ak chcete vytvoriť projekt, kliknite na Vytvoriť.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (12)
  7. Musí sa zobraziť hlavné okno, ako je znázornené na obrázku 6.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (13)

Vytváranie miniaplikácií, udalostí a spúšťačov

Ak chcete vytvoriť miniaplikácie, udalosti a spúšťače, vykonajte tieto kroky:

  1. Na ľavej strane sprievodcu GUI kliknite dvakrát na tlačidlo zvýraznené červenou farbou.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (14)
  2. V dôsledku toho sa tlačidlo rozbalí a zobrazí všetky dostupné miniaplikácie.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (15)
    Môžu existovať rôzne widgety s rôznymi vlastnosťami. Táto poznámka k aplikácii sa zameriava na tlačidlo typu widgetu. Môžu však existovať aj iné typy widgetov s ich obmedzeniami. Ďalšie informácie nájdete v časti „Podrobnosti o miniaplikácii“ v používateľskej príručke GUI Guider v1.6.1 (dokument GUIGUIDERUG).
  3. Pridajte miniaplikáciu Button presunutím do používateľského rozhrania z karty miniaplikácií.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (16)
  4. Kliknite pravým tlačidlom myši na tlačidlo vlastností a kliknite na položku Pridať udalosť.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (17)
  5. Zobrazí sa okno so všetkými udalosťami, ktoré môže widget spustiť.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (18)
  6. Ďalej sa v okne zobrazia všetky udalosti, ktoré môže spúšťač spustiť. Tieto udalosti je možné použiť na obrazovky, iné widgety alebo na vytváranie vlastných udalostí.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (19)
  7. Pre túto example, načíta sa nová obrazovka. Kliknite na obrazovku načítania a vyberte obrazovky, ktoré sa majú načítať.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (20)
  8. Na testovanie aplikácie použite simulátor integrovaný s GUI Guider. Používa sa na výber ďalšieho tlačidla a typu simulácie, ktorá sa má použiť. V tomto prípade použite simulátor v C.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (21)
  9. Ak chcete načítať novú obrazovku, kliknite na tlačidlo.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (22)

Budova pre i.MX 93

Ak chcete zostaviť i.MX 93, vykonajte nasledujúce kroky:

  1. Uistite sa, že reťazec nástrojov používaný programom GUI Guider bol správne nainštalovaný. Ak chcete krížovo overiť, skontrolujte cestuNXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (23)
  2. Z predchádzajúceho exampAk chcete vytvoriť aplikáciu a spustiť ju na i.MX 93, vyberte Project > Build > Yocto z hornej lišty.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (24)
  3. Ak chcete skontrolovať stav projektu, binárnej veľkosti a denníka, vyberte kartu Informácie v spodnej časti aplikácie. Skontrolujte denník rozbalením karty Informácie.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (25)
  4. Protokol poskytuje informácie o budove vrátane umiestnenia binárneho súboru file. V tomto prípade je binárne číslo v ceste / /build/gui_guider.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (26)
  5. Nájdite hostiteľský terminál a odošlite ho do EVK pomocou nasledujúceho príkazu:NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (27)
    Poznámka: Ak chcete použiť vyššie uvedený prístup, je potrebné, aby oba stroje, hostiteľ aj cieľ boli v rovnakej sieti a aby bola známa adresa IP dosky.
  6. Vykonajte binárne file na EVK pomocou nasledujúceho príkazu:NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (28)
    Napríkladample pomocou obrazovky LVDS, ktorá zobrazuje projekt vytvorený programom GUI Guider, ako je znázornené na obrázku 19.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (29)

VIT

Táto časť vysvetľuje, ako používať samostatný VIT a vygenerovať model na jeho prepojenie s GUI Guider. Vysvetľuje, ako použiť hostiteľa na vytvorenie modelu s požadovanými charakteristikami. Ďalšie informácie nájdete v časti VOICE-INTELLIGENT-TECHNOLOGY.

Vytvorte model

Ak chcete vytvoriť model, vykonajte nasledujúce kroky:

  1. Prihláste sa do VIT webmiesto: VIT Model Generation Tool
  2. Kliknite na kartu GENEROVAŤ MODEL.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (30)
  3. Vyberte SW platformu a verziu ako „Linux BSP“ a „LF6.1.55_2.2.0“. Tiež vyberte príslušné možnosti pre Device ako „i.MX93“ a Language ako „English“.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (31)
  4. Pridajte prebúdzacie slová, ktoré fungujú ako spúšťač, ktorý VIT povie, kedy má začať počúvať hlasový príkaz. Keď sa vytvorí nové prebúdzacie slovo alebo príkaz, zobrazí sa výzva na nastavenie hodnoty pre „Citlivosť“. Tento parameter zvyšuje mieru rozpoznávania, čo znamená, že ak je to kladná hodnota, je ľahšie ho zistiť, ale môže viesť k väčšiemu počtu falošných detekcií. Namiesto zápornej hodnoty používanej na zabránenie zámene medzi kľúčovými slovami ponechajte hodnotu citlivosti na 0. Naprample, tu sa pridáva fráza „ahoj viedol“.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (32)
  5. Pridajte hlasové povely, ktoré sa majú použiť, a odstráňte tie, ktoré sa nepoužívajú.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (33)
  6. Kliknite na tlačidlo Generovať model a počkajte, kým sa tlačidlo Stiahnuť model neodomkne.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (34)
  7. Model sa odošle na záložku MOJE MODELY. Ak chcete stiahnuť najnovší model, kliknite na ikonu sťahovania.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (35)
  8. Extrahujte priečinok zip a uložte ho file VIT_Model_en obsahujúci priečinok VIT_package.

Kompilácia VIT voice_ui_app ako samostatnej aplikácie
Voice_ui_app je bývalýampsúbor vytvorený pre úložisko imx-voiceui. Táto aplikácia používa model na zisťovanie prebúdzacích slov a príkazov. Pomôcka použitá v tomto dokumente je argumentom „oznámiť“. Tento argument, keď zistí prebudenie alebo príkaz, otvorí Python file WakeWordNotify alebo WWCommandNotify so systémovým argumentom pomocou identifikátora (ID). Toto ID pomáha rozlišovať medzi spúšťačmi.

Ak chcete vytvoriť aplikáciu voice_ui_app na hostiteľovi a pomôcť ju priradiť k predchádzajúcemu vytvorenému modelu, vykonajte tieto kroky:

  1. Klonujte úložisko VIT vrátane verzie vetvy pomocou nasledujúceho príkazu:
    $ git klon https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0
  2. Vytvorte zálohu originálu file, pomocou nasledujúceho príkazu:
    $ cd /imx-voiceui
    $ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h
  3. Nastavte predtým nainštalovaný reťazec nástrojov:
    $ source /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
    Poznámka: Použite reťazec nástrojov vytvorený spoločnosťou Yocto.
  4. Zostavte svoj projekt pomocou nasledujúceho príkazu:
    $ make all VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55
  5. Po zostavení projektu sa vygeneruje adresár s názvom release. Skopírujte file voice_ui_app v tomto adresári do EVK:
    $ scp release/voice_ui_app root@ :/home/root

Pomocou parametra -notify
Skript vyvolaný aplikáciou voice_ui_app pri odovzdaní príznaku „-notify“ musí byť v ceste /usr/bin/. Použite priložený files do /usr/bin/ a skopírujte tieto skripty do EVK.

$ scp WakeWordNotify root@ :/usr/bin/
$ scp WWCommandNotify root@ :/usr/bin/

The fileVo vnútri použite ID prebudeného slova/príkazu a odošlite ho cez front správ.
Po skopírovaní týchto files do EVK, použite parameter „-notify“, aby ste naznačili, že files WakeWordNotify a WWCommandNotify majú potrebné povolenia. Ak ho chcete pridať do EVK, vykonajte nasledujúci príkaz:

root@imx93evk:~# chmod a+x /usr/bin/WakeWordNotify root@imx93evk:~# chmod a+x /usr/bin/WWCommandNotify

Audio front-end
Audio front-end (AFE) sa používa ako zdroj pre rozpoznávanie hlasu VIT. Pomáha vyčistiť hluk a ozvenu pomocou zdroja a referencie reproduktora. Výsledkom je teda čistý jednokanálový zvuk mikrofónu, ktorý možno použiť na spracovanie. Ďalšie informácie nájdete v časti VOICESEEKER.
AFE nájdete vo vnútri EVK na ceste /unit_tests/nxp-afe.

Ak chcete pripraviť a spustiť program, postupujte podľa krokov v file TODO.md v nxp-afe:

  1. Uistite sa, že DTB je imx93-11×11-evk.dtb.
  2. Nainštalujte modul aloop na podporu AFE:
    root@imx93evk:~# sudo modprobe snd-aloop
  3. Vytvorte zálohu asound.conf a použite zodpovedajúci asound.conf pre dosku:
    root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
    root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf
  4. Zmeňte WakeWordEnginge tak, aby správne používal slovný nástroj VIT. Táto konfigurácia je vo vnútri file /unit_tests/nxp-afe/Config.ini.
  5. Upravte vlastnosť WakeWordEngine = VoiceSpot, ktorá používa VoiceSpot ako predvolenú hodnotu na WakeWordEngine = VIT.
  6. Ak chcete otestovať AFE, spustite voice_ui_app:
    root@imx93evk:~# ./voice_ui_app &
    Poznámka: V tomto prípade nie je potrebné pridávať parameter „-notify“.
  7. Vykonajte AFE pomocou nasledujúceho príkazu:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  8. Ak chcete zistiť, či AFE beží na pozadí, použite príkaz &. Ak chcete zistiť, aké ďalšie programy sú spustené na pozadí, použite nasledujúci príkaz:
    root@imx93evk:~# ps
  9. Ak chcete zatvoriť aplikáciu AFE alebo voice_ui_app, použite nasledujúci príkaz:
    root@imx93evk:~# pkill afe
    root@imx93evk:~# pkill voice_ui_app

Spustenie aplikácie voice_ui_app bez -notify

  1. Po vykonaní krokov v TODO.md file, spustite binárnu voice_ui_app z terminálu na EVK. Zobrazuje informácie o tom, ako prebieha VIT.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (36)
  2. Ak chcete nakŕmiť aplikáciu voice_ui_app, spustite AFE pomocou nasledujúceho príkazu:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  3. Vyslovte budiace slovo a hlasový príkaz a skontrolujte, či funguje podľa očakávania. V termináli zobrazuje prebúdzacie slovo a hlasový príkaz takto:
    – Wakeword detekované 1 HEY NXP StartOffset 16640
    – Rozpoznaný hlasový príkaz 3 ZAPNITE

Aplikácia GUI Guider VIT

Ako bolo vysvetlené vyššie, aplikácia/skript command_handler prostredníctvom oznámenia VIT odošle ID príkazu a ID prebudeného slova do frontu správ ako IPC. Potom zachytí tieto ID na simuláciu udalosti v aplikácii GUI-Guider. Obrázok 26 ukazuje, ako bola táto komunikácia vykonaná.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (37)

Poznámka: Uistite sa, že ste nakonfigurovali obslužný program tak, aby správne fungoval s vytvoreným vlastným modelom. Tieto úpravy musia byť aplikované na hostiteľovi.

Použite command_handler na simuláciu udalostí

Ak chcete použiť príkazový riadok na simuláciu udalostí, vykonajte tieto kroky:

  1. Pridajte files command_handler.ha command_handler.c do projektu GUI Guider v adresári / /vlastné/.
  2. Aby sa zhodoval s aktuálnym použitým modelom, upravte command_handler.h zmenou voice_cmd_t a voice_ww_t.
    Poznámka: Uistite sa, že v modeli sa používa rovnaké poradie.
  3. Upravte množstvo budiacich slov a príkazov v file / /custom/command_handler.h:
    #define VIT_WW_NUMBER 2
    #define VIT_CMD_NUMBER 5
  4. Inicializujte príkazové rozhranie v file / /custom/custom.c. Toto vygeneruje GUI Guider file automaticky.
    #include “command_handler.h”
  5. Funkcia definovaná ako void custom_init(lv_ui *ui) je dostupná v file /
    cesta>/custom/custom.c. Túto funkciu je možné upraviť tak, aby sa pridal kód a inicializačný príkaz start_command_handler() takto:
    void custom_init(lv_ui *ui)
    {
    /* Sem pridajte svoje kódy */
    start_command_handler();
    }
    kde:
    Start_command_handler() sa používa na vytvorenie vlákna spusteného ako handler, prijímanie správ odoslaných VIT a vykonávanie príkazov priradených command_handler_link().
  6. Ak chcete prepojiť budiace slová a príkaz VIT s objektom a udalosťou, použite nasledujúci príkaz:
    void command_handler_link(voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t udalosť);
    kde:
    • Command_handler_link() sa používa na uloženie udalosti na simuláciu spustenia VIT.
    • Vstupy, voice_ww_t a voice_cmd_t, vytvorené v kroku 2 priamo súvisia s modelom VIT.
    • Tretí argument, lv_obj_t**, sa týka vytvárania objektu GUI Guider. Najprv nájdite objekt, ktorý chcete prepojiť. Názov zodpovedá ďalšej štruktúre _ . Ak chcete zistiť, kde je definovaný, skontrolujte file generované programom GUI Guider na adrese created/gui_guider.h. Tu nájdete ďalšiu štruktúru so všetkými možnými objektmi na prepojenie.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (39)

Funkcia custom_init(lv_ui *ui) sa používa na inicializáciu na začiatku spúšťania GUI Guider. Táto štruktúra môže byť použitá na spojenie s objektom, vedieť, ako ho správne používať. Ukazovateľ danej štruktúry je *ui a ukazovateľ pre vyhľadávanie je lv_obj_t**. Preto je potrebné použiť túto štruktúru s nasledujúcim formátom:

&ui->speed_btn_1

  • Štvrtý argument, udalosť lv_event_code_t, sa týka udalosti, ktorá sa má spustiť. Zvyčajne má takúto štruktúru: LV_EVENT_ . Prostredníctvom kódu určuje, čo sa má urobiť so spustenou udalosťou viewer v file events_init.c.
    Napríkladample, btn_1 vytvorené v rýchlosti obrazovky majú tieto udalosti generované GUI Guider.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (40)

Example
Táto časť ukazuje exampSúbor tejto implementácie na pridanie hlasovej podpory do sprievodcu GUI, prepínanie miniaplikácie LED a prepínanie medzi obrazovkami GUI.

  1. Pomocou šablóny GUI vytvorenej pomocou tlačidla pridajte miniaplikácie. Napríkladample, pridajte miniaplikáciu LED.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (41)
  2. Pridajte stlačenú udalosť do btn_1 a pre zmenu pozadia pridajte konfiguráciu udalosti. V tomto prípade musí byť pozadie zvolené ako čierne, aby sa „vypol“ miniaplikácia LED. Preto je použitá udalosť stlačená > led_1 > Čierne pozadie (#000000).NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (42)
  3. Pomocou rovnakého tlačidla nakonfigurujte udalosť tak, aby bola priradená k „zapnúť“. V tomto prípade pridajte uvoľnenú udalosť do btn_1 a pridajte červenú farbu na pozadie. Preto je použitá udalosť uvoľnená > led_1 > Background red (#ff0000).NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (43)
  4. Po vytvorení GUI pridajte command_handler.c a command_handler.h do custom/priečinku.
  5. Ak chcete vytvoriť prepojenie medzi udalosťami a VIT, pridajte do custom_init() nasledujúce riadky file v custom/custom.c. Ak chcete prepínať medzi obrazovkami, pridajte ďalšie dve udalosti prepojením btn_1 na obrazovku 2.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (44)NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (45)
    kde:
    • Kombinácia budiaceho slova HEY_LED a príkazu TURN_OFF je priradená na vypnutie LED. Inými slovami, zmeňte pozadie na čierne.
    • Kombinácia budiaceho slova HEY_LED a príkazu TURN_ON je priradená na rozsvietenie LED na červenú.
    • Kombinácia budiaceho slova HEY_NXP a príkazu NEXT je priradená na prepínanie medzi obrazovkami pomocou udalosti priradenej všetkým k btn_1 a pomocou btn_before na obrazovke 2.
    • Na návrat na obrazovku 1 je priradená kombinácia budiaceho slova HEY_NXP a príkazu RETURN.
  6. Vyberte Project > Build > Yocto a zostavte projekt.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (46)
  7. Pošlite nový binárny súbor do EVK.
    Poznámka: Informačný denník poskytuje binárne umiestnenie.
    scp root@ :/home/root

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (47)

Testovanie a konfigurácia
Po dokončení sťahovania vykonajte na EVK nasledujúce kroky:

  1. Skontrolujte, či je modul snd-aloop už zavedený spustením lsmod. Ak sa modul nenájde, načítajte ho pomocou nasledujúceho príkazu:
    root@imx93evk:~# sudo modprobe snd-aloop
  2. Spustite voice_ui_app pomocou nasledujúceho príkazu:
    root@imx93evk:~# ./voice_ui_app -notify &
    kde:
    • -notify sa používa na odoslanie upozornenia do WakeWordNtfy a WWCommandNtfy.
      Poznámka: Nezabudnite skopírovať WakeWordNtfy a WWCommandNtfy do usr/bin.
    • & sa používa na spustenie na pozadí.
  3. Overte, či je VIT engine nastavený na Config.ini.
  4. Spustite AFE s libvoiceseekerlight na pozadí:
    root@imx93evk:~# cd /unit_tests/nxp-afe/
    root@imx93evk:~# ./afe libvoiceseekerlight &
  5. Otvorte aplikáciu GUI Guider pomocou nasledujúceho príkazu:
    root@imx93evk:~# ./gui_guider
    Až do tohto kroku sa na obrazovke LVDS alebo HDMI zobrazuje vytvorené GUI.NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (48)
  6. Skúste použiť predtým priradené prebúdzacie slovo a hlasový príkaz, napramppovedzte „Hey NXP“ a „Turn off“. Po vyslovení príkazu na vypnutie, v závislosti od priradeného spätného volania, GUI Guider vykoná akciu. Pre túto example, GUI Guider zmení farbu pozadia pre miniaplikáciu LED.

NXP-AN14270-Pridanie-hlasovej-podpory-do-GUI-Guider-FIG- (49)

Súvisiace zdroje

Tabuľka 2 uvádza niektoré ďalšie zdroje použité na doplnenie tohto dokumentu.

Tabuľka 2. Súvisiace zdroje

Zdroj Odkaz/ako získať
Rodina procesorov pre aplikácie i.MX 93 – Arm Cortex-A55, akcelerácia ML, energeticky efektívny MPUNXP i.MX 93 A1 (i. MX93) https://www.nxp.com/products/processors-and- mikrokontroléry/arm-procesory/i-mx-aplikácie- procesory/i-mx-9-procesory/i-mx-93-aplikacie- procesor-rodina-rameno-kortex-a55-ml-akceleracia-nakon- efektívny-mpu:i.MX93
Vstavaný Linux pre aplikačné procesory i.MX (IMXLINUX) http://www.nxp.com/IMXLINUX
Používateľská príručka GUI Guider v1.6.1 (GUIGUIDERUG) https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf
Úložisko hlasového rozhrania VIT i.MX https://github.com/nxp-imx/imx-voiceui

Poznámka o zdrojovom kóde v dokumente

ExampKód zobrazený v tomto dokumente má nasledujúce autorské práva a licenciu BSD-3-Clause:
Copyright 2023-2024 NXP Redistribúcia a používanie v zdrojovej a binárnej forme, s úpravami alebo bez nich, sú povolené za predpokladu, že sú splnené nasledujúce podmienky:

  1. Redistribúcie zdrojového kódu musia obsahovať vyššie uvedené oznámenie o autorských právach, tento zoznam podmienok a nasledujúce vylúčenie zodpovednosti.
  2. Redistribúcie v binárnej forme musia reprodukovať vyššie uvedené oznámenie o autorských právach, tento zoznam podmienok a nasledujúce vylúčenie zodpovednosti v dokumentácii a/alebo iných materiáloch musia byť poskytnuté spolu s distribúciou.
  3. Meno držiteľa autorských práv ani mená jeho prispievateľov sa nesmú používať na podporu alebo propagáciu produktov odvodených z tohto softvéru bez konkrétneho predchádzajúceho písomného súhlasu.
    TENTO SOFTVÉR POSKYTUJÚ DRŽITELIA AUTORSKÝCH PRÁV A PRISPIEVATEĽOV „TAK, AKO JE“ A AKÉKOĽVEK VÝSLOVNÉ ALEBO IMPLICITNÉ ZÁRUKY VRÁTANE, ALE NIE VÝHRADNE, IMPLIKOVANÝCH ZÁRUK PREDAJNOSTI A VHODNOSTI NA KONKRÉTNU NÁPLŇU. V ŽIADNOM PRÍPADE NEBUDE DRŽITEĽ AUTORSKÝCH PRÁV ALEBO PRISPIEVATELIA ZODPOVEDNÍ ZA AKÉKOĽVEK PRIAMY, NEPRIAME, NÁHODNÉ, ŠPECIÁLNE, EXEMPLÁRNE ALEBO NÁSLEDNÉ ŠKODY (VRÁTANE, ALE NIE VÝHRADNE, OBSTARÁVANIA NÁHRADNÝCH SLUŽEB, TOVARU FILO; ALEBO PRERUŠENIE PODNIKANIA) AKO SÚ SPÔSOBENÉ A NA AKEJKOĽVEK TEÓRII ZODPOVEDNOSTI, ČI UŽ V ZMLUVNEJ ZMLUVE, PRÍMEJ ZODPOVEDNOSTI ALEBO PREČINKU (VRÁTANE NEDBALOSTI ALEBO INAK) VZNIKNUTÉM AKÝMKOĽVEK SPÔSOBOM Z POUŽÍVANIA TOHTO SOFTVÉRU, AJ SOFTVÉRU,

História revízií
Tabuľka 3 sumarizuje revízie tohto dokumentu.

ID dokumentu Dátum vydania Popis
AN14270 v.1.0 16. mája 2024 Prvé verejné vydanie

Právne informácie

Definície
Koncept — Stav konceptu na dokumente naznačuje, že obsah je stále pod internou kontrolouview a podlieha formálnemu schváleniu, ktoré môže viesť k úpravám alebo doplnkom. NXP Semiconductors neposkytuje žiadne vyhlásenia ani záruky, pokiaľ ide o presnosť alebo úplnosť informácií obsiahnutých v pracovnej verzii dokumentu a nenesie žiadnu zodpovednosť za dôsledky použitia takýchto informácií.

Vylúčenia zodpovednosti
Obmedzená záruka a zodpovednosť — Informácie v tomto dokumente sa považujú za presné a spoľahlivé. Spoločnosť NXP Semiconductors však neposkytuje žiadne vyjadrenia ani záruky, vyjadrené alebo predpokladané, pokiaľ ide o presnosť alebo úplnosť takýchto informácií a nenesie žiadnu zodpovednosť za dôsledky použitia takýchto informácií. Spoločnosť NXP Semiconductors nenesie žiadnu zodpovednosť za obsah tohto dokumentu, ak ho poskytuje zdroj informácií mimo NXP Semiconductors.
Spoločnosť NXP Semiconductors nebude v žiadnom prípade zodpovedná za žiadne nepriame, náhodné, trestné, špeciálne alebo následné škody (vrátane – bez obmedzenia – ušlého zisku, stratených úspor, prerušenia podnikania, nákladov súvisiacich s odstránením alebo výmenou akýchkoľvek produktov alebo poplatkov za prepracovanie), či už alebo takéto škody nie sú založené na deliktu (vrátane nedbanlivosti), záruke, porušení zmluvy alebo inej právnej teórii.
Bez ohľadu na akékoľvek škody, ktoré by zákazníkovi mohli z akéhokoľvek dôvodu vzniknúť, súhrnná a kumulatívna zodpovednosť spoločnosti NXP Semiconductors voči zákazníkovi za produkty opísané v tomto dokumente bude obmedzená v súlade s podmienkami komerčného predaja spoločnosti NXP Semiconductors.

Právo na zmeny — NXP Semiconductors si vyhradzuje právo kedykoľvek a bez upozornenia zmeniť informácie uverejnené v tomto dokumente, vrátane, ale nie výlučne, špecifikácií a popisov produktov. Tento dokument nahrádza a nahrádza všetky informácie poskytnuté pred jeho zverejnením.
Vhodnosť na použitie – produkty NXP Semiconductors nie sú navrhnuté, autorizované alebo zaručené ako vhodné na použitie v životne dôležitých systémoch alebo zariadeniach, ani v aplikáciách, kde možno odôvodnene očakávať zlyhanie alebo poruchu produktu NXP Semiconductors viesť k zraneniu osôb, smrti alebo vážnemu poškodeniu majetku alebo životného prostredia. Spoločnosť NXP Semiconductors a jej dodávatelia nenesú žiadnu zodpovednosť za zahrnutie a/alebo používanie produktov NXP Semiconductors v takýchto zariadeniach alebo aplikáciách, a preto je takéto zahrnutie a/alebo používanie na vlastné riziko zákazníka.

Aplikácie — Tu popísané aplikácie pre ktorýkoľvek z týchto produktov slúžia len na ilustračné účely. NXP Semiconductors neposkytuje žiadne vyhlásenie ani záruku, že takéto aplikácie budú vhodné na špecifikované použitie bez ďalšieho testovania alebo úprav.

Zákazníci sú zodpovední za dizajn a prevádzku svojich aplikácií a produktov využívajúcich produkty NXP Semiconductors a spoločnosť NXP Semiconductors nenesie žiadnu zodpovednosť za akúkoľvek pomoc s aplikáciami alebo dizajnom produktov zákazníka. Je výhradnou zodpovednosťou zákazníka určiť, či je produkt NXP Semiconductors vhodný a vhodný pre zákazníkove aplikácie a plánované produkty, ako aj pre plánovanú aplikáciu a použitie zákazníkovou treťou stranou. Zákazníci by mali poskytnúť vhodné konštrukčné a prevádzkové bezpečnostné opatrenia na minimalizáciu rizík spojených s ich aplikáciami a produktmi.

Spoločnosť NXP Semiconductors neprijíma žiadnu zodpovednosť týkajúcu sa akéhokoľvek zlyhania, poškodenia, nákladov alebo problému, ktorý je založený na akejkoľvek slabosti alebo chybe v aplikáciách alebo produktoch zákazníka alebo v aplikácii alebo použití zákazníkmi tretej strany. Zákazník je zodpovedný za vykonanie všetkých potrebných testov pre aplikácie a produkty zákazníka, ktoré používajú produkty NXP Semiconductors, aby sa predišlo chybám aplikácií a produktov alebo aplikácie alebo použitia zákazníkmi z tretích strán. NXP v tomto smere nepreberá žiadnu zodpovednosť.

Podmienky komerčného predaja — Produkty NXP Semiconductors sa predávajú v súlade so všeobecnými podmienkami komerčného predaja zverejnenými na https://www.nxp.com/profile/terms, ak nie je v platnej písomnej individuálnej dohode dohodnuté inak. V prípade uzatvorenia individuálnej zmluvy platia len podmienky príslušnej zmluvy. Spoločnosť NXP Semiconductors týmto výslovne nesúhlasí s uplatňovaním všeobecných obchodných podmienok zákazníka v súvislosti s nákupom produktov NXP Semiconductors zákazníkom.

Kontrola vývozu — Tento dokument, ako aj položky v ňom opísané môžu podliehať nariadeniam o kontrole vývozu. Vývoz môže vyžadovať predchádzajúce povolenie od príslušných orgánov.
Vhodnosť na použitie v nekvalifikovaných produktoch pre automobilový priemysel — Pokiaľ tento dokument výslovne neuvádza, že tento konkrétny produkt NXP Semiconductors je kvalifikovaný pre automobilový priemysel, tento produkt nie je vhodný na použitie v automobiloch. Nie je kvalifikovaný ani testovaný v súlade s požiadavkami automobilového testovania alebo aplikácie. Spoločnosť NXP Semiconductors nenesie žiadnu zodpovednosť za zahrnutie a/alebo používanie produktov, ktoré nie sú určené pre automobilový priemysel, do automobilových zariadení alebo aplikácií.

V prípade, že zákazník použije produkt na navrhovanie a použitie v automobilových aplikáciách podľa špecifikácií a noriem pre automobilový priemysel, zákazník (a) použije produkt bez záruky NXP Semiconductors na produkt pre takéto automobilové aplikácie, použitie a špecifikácie a ( b) vždy, keď zákazník použije produkt na automobilové aplikácie nad rámec špecifikácií NXP Semiconductors, takéto použitie bude výhradne na vlastné riziko zákazníka a (c) zákazník plne odškodní NXP Semiconductors za akúkoľvek zodpovednosť, škody alebo neúspešné reklamácie produktu vyplývajúce z návrhu a používania zákazníkom. produkt pre automobilové aplikácie nad rámec štandardnej záruky NXP Semiconductors a špecifikácií produktu NXP Semiconductors.

Preklady — Neanglická (preložená) verzia dokumentu vrátane právnych informácií v tomto dokumente slúži len na informáciu. V prípade akýchkoľvek nezrovnalostí medzi preloženou a anglickou verziou má prednosť anglická verzia.

Bezpečnosť – Zákazník chápe, že všetky produkty NXP môžu podliehať neidentifikovaným zraniteľnostiam alebo môžu podporovať zavedené bezpečnostné štandardy alebo špecifikácie so známymi obmedzeniami. Zákazník je zodpovedný za návrh a prevádzku svojich aplikácií a produktov počas ich životného cyklu, aby sa znížil vplyv týchto zraniteľností na aplikácie a produkty zákazníka. Zodpovednosť zákazníka sa vzťahuje aj na ďalšie otvorené a/alebo proprietárne technológie podporované produktmi NXP na použitie v aplikáciách zákazníka. NXP nenesie žiadnu zodpovednosť za akúkoľvek zraniteľnosť. Zákazník by mal pravidelne kontrolovať bezpečnostné aktualizácie z NXP a primerane postupovať.
Zákazník si vyberie produkty s bezpečnostnými prvkami, ktoré najlepšie spĺňajú pravidlá, predpisy a normy zamýšľanej aplikácie a urobí konečné rozhodnutia o dizajne svojich produktov a je výlučne zodpovedný za súlad so všetkými právnymi, regulačnými a bezpečnostnými požiadavkami týkajúcimi sa jeho produktov, bez ohľadu na akýchkoľvek informácií alebo podpory, ktoré môže NXP poskytnúť.

NXP má tím pre reakciu na bezpečnostné incidenty produktov (PSIRT) (dostupný na adrese PSIRT@nxp.com), ktorý riadi vyšetrovanie, hlásenie a uvoľňovanie riešení pre bezpečnostné slabiny produktov NXP.
NXP BV — NXP BV nie je prevádzkovou spoločnosťou a nedistribuuje ani nepredáva produkty.

Ochranné známky

Upozornenie: Všetky uvedené značky, názvy produktov, názvy služieb a ochranné známky sú majetkom ich príslušných vlastníkov.

NXP — slovo a logo sú ochranné známky spoločnosti NXP BV
i.MX — je ochranná známka spoločnosti NXP BV

Prosím, uvedomte si, že dôležité upozornenia týkajúce sa tohto dokumentu a tu popísaných produktov boli zahrnuté v časti „Právne informácie“.
© 2024 NXP BV Všetky práva vyhradené.
Ďalšie informácie nájdete na stránke: https://www.nxp.com

Dátum vydania: 16. máj 2024
Identifikátor dokumentu: AN14270

Dokumenty / zdroje

NXP AN14270 Pridanie hlasovej podpory do sprievodcu GUI [pdf] Používateľská príručka
AN14270 Pridanie hlasovej podpory do GUI Guider, AN14270, Pridanie hlasovej podpory do GUI Guider, do GUI Guider, GUI Guider, Guider

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *