NXP-LOGO

NXP AN14270 Přidání hlasové podpory do průvodce GUI

NXP-AN14270-Přidání-hlasové-podpory-pro-GUI-Guider-PRODUCT

Specifikace

Název produktu: AN14270 – Přidání hlasové podpory do GUI Guider pro i.MX 93

Revize: 1.0

Datum: 16. května 2024

Informace o produktu

Abstraktní: Tato poznámka k aplikaci zkoumá integraci hlasu pomocí přemostění technologie rozpoznávání řeči (VIT) s GUI Guider.

Výrobce: Polovodiče NXP

Nadview

Průvodce GUI: Nástroj pro vývoj uživatelského rozhraní od NXP, který využívá grafickou knihovnu LVGL k vytváření vysoce kvalitních displejů s různými widgety, animacemi a styly.

Voice Intelligent Technology (VIT): Nástroj od NXP pro definování budicích slov a příkazů prostřednictvím bezplatných online nástrojů a softwaru pro hlasové ovládání.

Fronta zpráv (MQUEUE): Implementuje fronty zpráv POSIX 1003.1b pro meziprocesovou komunikaci mezi GUI Guider a VIT.

Požadavky na hardware, software a hostitele

Kategorie Popis
Železářské zboží Podle požadavků na produkt
Software Podle požadavků na produkt
Hostitel Podle požadavků na produkt

Návod k použití produktu

Předběžné požadavky

Blikající verze Linuxu

Chcete-li flashovat EVK s verzí Linux:

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

Toolchain s Yocto Project

  1. Vytvořte složku bin: $ mkdir ~/bin
  2. Stáhněte si repo nástroj: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  3. Přidat složku bin do proměnné PATH: $ export PATH=~/bin:$PATH
  4. Recepty na klonování: $ 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. Postup sestavení a konfigurace: $ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy

Často kladené otázky (FAQ)

Q: Co je VIT?
A: VIT je zkratka pro Voice Intelligent Technology, nástroj od NXP pro definování probuzených slov a příkazů pomocí online nástrojů a softwaru pro ovládání hlasem.

Q: Co je GUI Guider?
A: GUI Guider je nástroj pro vývoj uživatelského rozhraní od NXP, který využívá grafickou knihovnu LVGL k vytváření vysoce kvalitních displejů s různými widgety, animacemi a styly.

Informace o dokumentu

Informace Obsah
Klíčová slova AN14270, VIT, rozpoznávání řeči, meziprocesová komunikace (IPC), fronta zpráv, průvodce GUI
Abstraktní Tato poznámka k aplikaci zkoumá možnost integrace hlasu vytvořením mostu mezi technologií rozpoznávání řeči, jako je VIT, a průvodcem GUI pro tvůrce rozhraní.

Zavedení

Uživatelské rozhraní omezilo použití nástroje GUI Guider. Pro některé případy použití může stačit získání interakce pouze prostřednictvím myši nebo dotykové obrazovky. Někdy však případ použití vyžaduje překročit svá omezení. Tento dokument zkoumá možnost integrace hlasu vytvořením mostu mezi technologií rozpoznávání řeči, jako je VIT, a průvodcem GUI pro tvorbu rozhraní. Používá univerzální způsob, jak propojit všechny příkazy rozpoznávání hlasu a probouzecí slovo s jakoukoli interakcí vytvořenou programem GUI Guider.

Nadview

Chcete-li nastavit komunikaci mezi GUI Guider a příkazy technologie VIT, viz Sekce 8. Komunikace je vytvořena pomocí kódu vytvořeného jako handler, který naslouchá a umožňuje mu simulovat události v GUI za účelem vytvoření interakce.

Průvodce GUI
GUI Guider je nástroj pro vývoj uživatelského rozhraní od NXP, který poskytuje rychlou možnost vytvoření vysoce kvalitního zobrazení pomocí grafické knihovny LVGL. Využívá různé druhy widgetů, animací a stylů s různými konfiguracemi spouštění a přizpůsobením s možností nekódování. Další informace o nástroji GUI Guider naleznete v uživatelské příručce GUI Guider v1.6.1 (dokument GUIGUIDERUG).

Hlasová inteligentní technologie
Voice Intelligent Technology (VIT) je nástroj vytvořený společností NXP k definování probuzených slov a příkazů pomocí bezplatných online nástrojů, knihovny a softwarového balíčku pro hlasové ovládání. MCUXpresso jej může použít pro mikroprocesory nebo Linux BSP jej může použít pro mikroprocesory.

Fronta zpráv
Fronta zpráv (MQUEUE) je správce, který implementuje formát front zpráv POSIX 1003.1b. Používá se jako meziprocesová komunikace (IPC) k vytvoření mostu mezi GUI Guider a VIT. Vyměňuje si data ve formě zpráv, odesílá je přes VIT a provádí správu pomocí skriptu
obsluha_příkazů.

Požadavky na hardware, software a hostitele

Tabulka 1 uvádí podrobnosti o hardwaru, softwaru a hostiteli, které jsou nutné k použití nástroje VIT a GUI Guider.

Tabulka 1. Použitý hardware, software a hostitel

Kategorie Popis
Železářské zboží • i.MX 93 EVK

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

• Kabel USB Type-C samec na USB Type-A samec: sestava, kompatibilní s USB 3.0

• LVDSL adaptér a HDMI kabel nebo DY1212W-4856 LVCD LCD panel

• Interní mikrofon i.MX 93

Software • Verze Linux BSP: L6.1.55_2.2.0

• GUI Guider v1.6.1 a novější

• Toolchain 6.1-Langdale

Hostitel • X86_64 Linux Ubuntu 20.04.6 LTS

Předběžné požadavky

Tato část popisuje instalaci různých požadovaných nástrojů.

Blikající verze Linuxu

Před provedením níže uvedených kroků změňte konfiguraci spouštění na režim stahování a připojte USB přes hostitele. Další informace naleznete v uživatelské příručce i.MX Linux (dokument IMXLUG).

Pro flashování EVK proveďte následující kroky:

  1. Stáhněte si nejnovější vydání obrazu NXP Linux BSP pro i.MX 93 (L6.1.55_2.2.0 nebo nejnovější).
  2. Chcete-li flashovat EVK, stáhněte si poslední UUU: https://github.com/nxp-imx/mfgtools/releases.
  3. Připojte EVK k hostiteli pomocí EVK portu USB1.
  4. Pomocí imx-image-full umístěte oba programy do stejného file a flashujte EVK pomocí následujícího příkazu:

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (1)

Případně použijte k flashování EVK pouze obrázek:

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (2)

Poznámka: Ujistěte se, že jste zkontrolovali zaváděcí kolíky.

Toolchain s projektem Yocto
Projekt Yocto je open source spolupráce, která pomáhá vytvářet vlastní systémy založené na Linuxu. Yocto vytváří obrázek používaný i.MX.
Ujistěte se, že hostitelský počítač má sadu nástrojů pro vývoj aplikací (ADT) nebo toolchain, aby mělo stejné prostředí jako EVK. Ujistěte se, že je schopen kompilovat aplikace pro cílovou desku. Chcete-li získat správný nástrojový řetězec, podívejte se na „sekci 4.5.12“ v Uživatelské příručce i.MX Linux (dokument IMXLUG) a „sekci 4“ v Uživatelské příručce projektu i.MX Yocto (dokument IMXLXYOCTOUG).

Chcete-li získat toolchain na hostitelském počítači z prostředí Yocto, proveďte následující kroky:

  1. Vytvořte složku bin v domovském adresáři:NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (3)
  2. Ujistěte se, že složka ~/bin je v proměnné PATH.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (4)
  3. Naklonujte recepty pro použití v úložišti:NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (5)
  4. Chcete-li sestavit, nakonfigurujte následovně:NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (6)
  5. Chcete-li vygenerovat toolchain, nastavte samostatné prostředí bez projektu Yocto následovně:NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (7)

Průvodce GUI

Tato část vysvětluje program GUI Guider a jak používat základy k vytvoření projektu založeného na tomto nástroji. Vysvětluje také různé vlastnosti, které lze použít a využíttage těchto vlastností.

Widgety a události Gui Guider
Když uživatel vytvoří projekt v GUI Guider, použití různých widgetů je přiřazeno jako objekt generovaný automaticky. Tento objekt má různé vlastnosti; jednou z nich jsou Události. V závislosti na widgetu mohou mít události různé spouštěče a to, co se stane, závisí na cíli. Napřample, Obrázek 1 ukazuje, co se stane, když tlačítko zacílí na obrazovku tak, aby měla pouze akci „Načíst obrazovku“.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (8)

Tyto objekty lze nalézt v cestě /generated/gui-guider.h. Skript command_handler má pokroktage z událostí používaných widgety simulujícími spouštěč.
Další informace o widgetech a událostech naleznete v uživatelské příručce GUI Guider v1.6.1 (dokument GUIGUIDERUG).

Rychlý start
Chcete-li začít pracovat, nainstalujte průvodce GUI.

Při instalaci hostitele proveďte následující kroky:

  1. Stáhněte si nejnovější verzi GUI Guider (1.7.1 nebo nejnovější).
  2. Postupujte podle pokynů ke stažení.
    Zde si uživatel může zvolit vytvoření projektu s oficiálním examples nebo místní projekty.

Chcete-li vytvořit projekt GUI, proveďte následující kroky:

  1. Otevřete průvodce GUI 1.7.1.
  2. Vytvořte projekt.
  3. Vyberte verzi LVGL.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (9)
  4. Pro i.MX 93 vyberte procesor i.MX.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (10)
  5. Vyberte šablonu. Pro tento dokument vyberte šablonu „ScreenTransition“.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (11)
  6. Zvolte Název projektu a pro vytvoření projektu klikněte na Vytvořit.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (12)
  7. Musí se objevit hlavní okno, jak je znázorněno na obrázku 6.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (13)

Vytváření widgetů, událostí a spouštěčů

Chcete-li vytvořit widgety, události a spouštěče, proveďte následující kroky:

  1. Na levé straně průvodce GUI klikněte dvakrát na tlačítko zvýrazněné červeně.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (14)
  2. V důsledku toho se tlačítko rozbalí a zobrazí všechny dostupné widgety.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (15)
    Mohou existovat různé widgety s různými vlastnostmi. Tato poznámka k aplikaci se zaměřuje na tlačítko typu widgetu. Mohou však existovat i jiné typy widgetů s jejich omezeními. Další informace naleznete v části „Podrobnosti o widgetu“ v uživatelské příručce GUI Guider v1.6.1 (dokument GUIGUIDERUG).
  3. Přidejte widget Button přetažením do uživatelského rozhraní z karty widgetů.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (16)
  4. Klikněte pravým tlačítkem na tlačítko pro vlastnosti a klikněte na Přidat událost.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (17)
  5. Zobrazí se okno se všemi událostmi, které může widget spustit.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (18)
  6. Dále se v okně zobrazí všechny události, které může spouštěč spustit. Tyto události lze použít na obrazovky, jiné widgety nebo vytváření vlastních událostí.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (19)
  7. Pro tento example, načte se nová obrazovka. Klepněte na obrazovku načtení a vyberte obrazovky, které chcete načíst.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (20)
  8. K testování aplikace použijte simulátor integrovaný s GUI Guider. Slouží k výběru dalšího tlačítka a typu simulace, která se má použít. Pro tento případ použijte simulátor v C.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (21)
  9. Chcete-li načíst novou obrazovku, klepněte na tlačítko.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (22)

Budova pro i.MX 93

Chcete-li sestavit i.MX 93, proveďte následující kroky:

  1. Ujistěte se, že toolchain používaný GUI Guider byl správně nainstalován. Chcete-li provést křížové ověření, zkontrolujte cestuNXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (23)
  2. Z předchozího exampChcete-li vytvořit aplikaci a spustit ji na i.MX 93, vyberte Project > Build > Yocto z horní lišty.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (24)
  3. Chcete-li zkontrolovat stav projektu, binární velikosti a protokolu, vyberte kartu Informace ve spodní části aplikace. Zkontrolujte protokol rozbalením karty Informace.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (25)
  4. Protokol poskytuje informace o budově včetně umístění binárního souboru file. V tomto případě je binární soubor v cestě / /build/gui_guider.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (26)
  5. Vyhledejte hostitelský terminál a odešlete jej do EVK pomocí následujícího příkazu:NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (27)
    Poznámka: Chcete-li použít výše uvedený přístup, je nutné, aby oba stroje, hostitel a cíl byly ve stejné síti a aby byla známa IP adresa desky.
  6. Spusťte binární soubor file na EVK pomocí následujícího příkazu:NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (28)
    Napřample pomocí obrazovky LVDS, která ukazuje projekt vytvořený programem GUI Guider, jak je znázorněno na obrázku 19.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (29)

VIT

Tato část vysvětluje, jak používat samostatný VIT a vygenerovat model pro jeho propojení s průvodcem GUI. Vysvětluje, jak pomocí hostitele vygenerovat model s požadovanými charakteristikami. Další informace naleznete v části VOICE-INTELLIGENT-TECHNOLOGY.

Vytvořte model

Chcete-li vytvořit model, proveďte následující kroky:

  1. Přihlaste se do VIT webmísto: VIT Model Generation Tool
  2. Klepněte na kartu GENEROVAT MODEL.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (30)
  3. Vyberte SW platformu a verzi jako „Linux BSP“ a „LF6.1.55_2.2.0“. Vyberte také použitelné možnosti pro Zařízení jako „i.MX93“ a Jazyk jako „Angličtina“.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (31)
  4. Přidejte probouzecí slova, která fungují jako spouštěč, který říká VIT, kdy má začít poslouchat hlasový příkaz. Když je vytvořeno nové probuzení nebo příkaz, požádá o nastavení hodnoty pro „Citlivost“. Tento parametr zvyšuje míru rozpoznávání, což znamená, že pokud je kladná hodnota, je snazší ji detekovat, ale může mít za následek více falešných detekcí. Místo záporné hodnoty používané k zamezení záměny mezi klíčovými slovy ponechte hodnotu citlivosti 0. Napřample, zde je přidána fráze „ahoj vedl“.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (32)
  5. Přidejte hlasové příkazy, které chcete použít, a odstraňte ty, které se nepoužívají.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (33)
  6. Klikněte na tlačítko Generovat model a počkejte, dokud se tlačítko Stáhnout model neodemkne.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (34)
  7. Model je odeslán do záložky MOJE MODELY. Chcete-li stáhnout nejnovější model, klikněte na ikonu stahování.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (35)
  8. Rozbalte složku zip a uložte file VIT_Model_en obsahující složku VIT_package.

Kompilace VIT voice_ui_app jako samostatná
Voice_ui_app je exampsoubor vytvořený pro úložiště imx-voiceui. Tato aplikace používá model k detekci probuzených slov a příkazů. Obslužný program používaný v tomto dokumentu je argumentem „notify“. Tento argument, když detekuje wakeword nebo příkaz, otevře Python file WakeWordNotify nebo WWCommandNotify se systémovým argumentem pomocí identifikátoru (ID). Toto ID pomáhá rozlišovat mezi spouštěči.

Chcete-li vytvořit aplikaci voice_ui_app na hostiteli a pomoci ji přiřadit k předchozímu vytvořenému modelu, proveďte následující kroky:

  1. Klonujte úložiště VIT včetně verze větve pomocí následujícího příkazu:
    $ git clone https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0
  2. Vytvořte zálohu originálu file, pomocí následujícího příkazu:
    $ cd /imx-voiceui
    $ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h
  3. Nastavte dříve nainstalovaný toolchain:
    $ source /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
    Poznámka: Použijte toolchain vytvořený Yocto.
  4. Sestavte svůj projekt pomocí následujícího příkazu:
    $ make all VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55
  5. Jakmile je projekt sestaven, vygeneruje adresář s názvem release. Zkopírujte file voice_ui_app v tomto adresáři do EVK:
    $ scp release/voice_ui_app root@ :/home/root

Pomocí parametru -notify
Skript volaný aplikací voice_ui_app při předání příznaku „-notify“ musí být v cestě /usr/bin/. Použijte přiložený files do /usr/bin/ a zkopírujte tyto skripty do EVK.

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

The filePokud je uvnitř, použijte ID probudícího slova/příkazu a odešlete je přes frontu zpráv.
Po zkopírování těchto files do EVK, použijte parametr „-notify“, který znamená, že files WakeWordNotify a WWCommandNotify mají potřebná oprávnění. Chcete-li jej přidat do EVK, spusťte následující příkaz:

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

Audio front-end
Audio front-end (AFE) se používá jako zdroj pro rozpoznávání hlasu VIT. Pomáhá vyčistit šum a ozvěnu pomocí zdroje a reference reproduktoru. Výsledkem je tedy čistý jednokanálový mikrofonní zvuk, který lze použít ke zpracování. Další informace naleznete v části VOICESEEKER.
AFE lze nalézt uvnitř EVK na cestě /unit_tests/nxp-afe.

Chcete-li připravit a spustit program, postupujte podle kroků v file TODO.md v nxp-afe:

  1. Ujistěte se, že DTB je imx93-11×11-evk.dtb.
  2. Nainstalujte modul aloop pro podporu AFE:
    root@imx93evk:~# sudo modprobe snd-aloop
  3. Vytvořte zálohu souboru asound.conf a použijte odpovídající soubor asound.conf pro desku:
    root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
    root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf
  4. Změňte WakeWordEnginge tak, aby správně používal slovní stroj VIT. Tato konfigurace je uvnitř file /unit_tests/nxp-afe/Config.ini.
  5. Upravte vlastnost WakeWordEngine = VoiceSpot, která používá VoiceSpot jako výchozí, na WakeWordEngine = VIT.
  6. Chcete-li otestovat AFE, spusťte voice_ui_app:
    root@imx93evk:~# ./voice_ui_app &
    Poznámka: V tomto případě není nutné přidávat parametr „-notify“.
  7. Spusťte AFE pomocí následujícího příkazu:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  8. Chcete-li zjistit, zda AFE běží na pozadí, použijte příkaz &. Chcete-li zjistit, jaké další programy běží na pozadí, použijte následující příkaz:
    root@imx93evk:~# ps
  9. Chcete-li zavřít AFE nebo voice_ui_app, použijte následující příkaz:
    root@imx93evk:~# pkill afe
    root@imx93evk:~# pkill voice_ui_app

Spuštění aplikace voice_ui_app bez -notify

  1. Po provedení kroků v TODO.md file, spusťte binární voice_ui_app z terminálu na EVK. Zobrazuje informace o tom, jak probíhá VIT.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (36)
  2. Chcete-li nakrmit voice_ui_app, spusťte AFE pomocí následujícího příkazu:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  3. Vyslovte probuzení a hlasový příkaz a zkontrolujte, zda funguje podle očekávání. V terminálu zobrazuje probuzení a hlasový příkaz takto:
    – Wakeword zjištěno 1 HEY NXP StartOffset 16640
    – Detekován hlasový příkaz 3 ZAPNOUT

Aplikace GUI Guider VIT

Jak bylo vysvětleno dříve, aplikace/skript command_handler prostřednictvím oznámení VIT odešle ID příkazu a ID probouzecího slova do fronty zpráv jako IPC. Poté zachytí tato ID pro simulaci události v aplikaci GUI-Guider. Obrázek 26 ukazuje, jak byla tato komunikace provedena.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (37)

Poznámka: Ujistěte se, že nakonfigurujete obslužnou rutinu tak, aby správně fungovala s vytvořeným vlastním modelem. Tyto úpravy musí být aplikovány na hostitele.

K simulaci událostí použijte command_handler

Chcete-li použít obslužný program command_handler k simulaci událostí, proveďte následující kroky:

  1. Přidejte files command_handler.ha command_handler.c do projektu GUI Guider v adresáři / /zvyk/.
  2. Aby odpovídal aktuálnímu použitému modelu, upravte command_handler.h změnou voice_cmd_t a voice_ww_t.
    Poznámka: Ujistěte se, že v modelu je použito stejné pořadí.
  3. Upravte množství probouzecích slov a příkazů v file / /custom/command_handler.h:
    #define VIT_WW_NUMBER 2
    #define VIT_CMD_NUMBER 5
  4. Inicializujte příkazové rozhraní v file / /custom/custom.c. Toto vygeneruje GUI Guider file automaticky.
    #include „command_handler.h“
  5. Funkce definovaná jako void custom_init(lv_ui *ui) je dostupná v file /
    cesta>/custom/custom.c. Tuto funkci lze upravit přidáním kódu a příkazu inicializátoru start_command_handler() následovně:
    void custom_init(lv_ui *ui)
    {
    /* Sem přidejte své kódy */
    start_command_handler();
    }
    Kde:
    Start_command_handler() se používá k vytvoření vlákna běžícího jako handler, přijímání zpráv odeslaných VIT a provádění příkazů přiřazených příkazem command_handler_link().
  6. Chcete-li propojit budicí slova a příkaz VIT s objektem a událostí, použijte následující příkaz:
    void command_handler_link(voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t událost);
    Kde:
    • Command_handler_link() se používá k uložení události k simulaci pro provedení VIT.
    • Vstupy voice_ww_t a voice_cmd_t vytvořené v kroku 2 přímo souvisí s modelem VIT.
    • Třetí argument, lv_obj_t**, se týká vytváření objektu GUI Guider. Nejprve vyhledejte objekt, který chcete propojit. Název odpovídá následující struktuře _ . Chcete-li zjistit, kde je definováno, zkontrolujte file generované programem GUI Guider na adrese created/gui_guider.h. Zde můžete najít další strukturu se všemi možnými objekty k propojení.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (39)

Funkce custom_init(lv_ui *ui) se používá k inicializaci na začátku provádění GUI Guider. Tuto strukturu lze použít ke spojení s objektem a vědět, jak jej správně používat. Ukazatel dané struktury je *ui a ukazatel pro vyhledávání je lv_obj_t**. Proto je nutné použít tuto strukturu s následujícím formátem:

&ui->speed_btn_1

  • Čtvrtý argument, událost lv_event_code_t, se vztahuje k události, která bude spuštěna. Obvykle má takovou strukturu: LV_EVENT_ . Určuje, co dělat se spuštěnou událostí prostřednictvím kódu viewer v file events_init.c.
    Napřample, btn_1 vytvořené v rychlosti obrazovky mají tyto události generované GUI Guider.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (40)

Example
Tato část ukazuje exampsouboru této implementace pro přidání hlasové podpory do průvodce GUI, přepínání widgetu LED a přepínání mezi obrazovkami GUI.

  1. Pomocí šablony GUI vytvořené pomocí tlačítka přidejte widgety. Napřample, přidejte widget LED.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (41)
  2. Přidejte stisknutou událost do btn_1 a pro změnu pozadí přidejte konfiguraci události. V tomto případě musí být pozadí vybráno jako černé, aby se „vypnul“ widget LED. Proto je použitá událost stisknuta > led_1 > Pozadí černé (#000000).NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (42)
  3. Pomocí stejného tlačítka nakonfigurujte událost a přiřaďte jí „zapnout“. V tomto případě přidejte uvolněnou událost do btn_1 a přidejte červenou na pozadí. Proto je použitá událost uvolněna > led_1 > Pozadí červené (#ff0000).NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (43)
  4. Po vytvoření GUI přidejte command_handler.c a command_handler.h do custom/složky.
  5. Chcete-li vytvořit propojení mezi událostmi a VIT, přidejte následující řádky do custom_init() uvnitř file v custom/custom.c. Chcete-li přepínat mezi obrazovkami, přidejte další dvě události propojením btn_1 pro přechod na obrazovku 2.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (44)NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (45)
    Kde:
    • Kombinace budícího slova HEY_LED a příkazu TURN_OFF je přiřazena k vypnutí LED. Jinými slovy, změňte pozadí na černé.
    • Kombinace budícího slova HEY_LED a příkazu TURN_ON je přiřazena k rozsvícení LED červeně.
    • Kombinace budícího slova HEY_NXP a příkazu NEXT je přiřazena k přepínání mezi obrazovkami pomocí události přiřazené všem k btn_1 a pomocí btn_before na obrazovce 2.
    • Pro návrat na obrazovku 1 je přiřazena kombinace budícího slova HEY_NXP a příkazu RETURN.
  6. Vyberte Projekt > Sestavit > Yocto a sestavte projekt.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (46)
  7. Odešlete nový binární soubor do EVK.
    Poznámka: Informační protokol poskytuje binární umístění.
    scp vykořenit@ :/home/root

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (47)

Testování a konfigurace
Po dokončení stahování proveďte na EVK následující kroky:

  1. Ověřte, že modul snd-aloop je již zaveden spuštěním lsmod. Pokud modul není nalezen, načtěte jej pomocí následujícího příkazu:
    root@imx93evk:~# sudo modprobe snd-aloop
  2. Spusťte voice_ui_app pomocí následujícího příkazu:
    root@imx93evk:~# ./voice_ui_app -notify &
    Kde:
    • -notify se používá k odeslání upozornění WakeWordNtfy a WWCommandNtfy.
      Poznámka: Nezapomeňte zkopírovat WakeWordNtfy a WWCommandNtfy do usr/bin.
    • & se používá ke spuštění na pozadí.
  3. Ověřte, zda je na Config.ini nastaven VIT engine.
  4. Spusťte AFE s libvoiceseekerlight na pozadí:
    root@imx93evk:~# cd /unit_tests/nxp-afe/
    root@imx93evk:~# ./afe libvoiceseekerlight &
  5. Otevřete aplikaci GUI Guider pomocí následujícího příkazu:
    root@imx93evk:~# ./gui_guider
    Do tohoto kroku se na obrazovce LVDS nebo HDMI zobrazuje vytvořené grafické uživatelské rozhraní.NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (48)
  6. Zkuste použít dříve přiřazené probuzení a hlasový příkaz, napřampŘekněte „Hey NXP“ a „Turn off“. Po vyslovení příkazu pro vypnutí, v závislosti na přiřazeném zpětném volání, GUI Guider provede akci. Pro tento example, GUI Guider změní barvu pozadí pro widget LED.

NXP-AN14270-Přidání-hlasové-podpory-k-GUI-Guider-FIG- (49)

Související zdroje

Tabulka 2 uvádí některé další zdroje použité k doplnění tohoto dokumentu.

Tabulka 2. Související zdroje

Zdroj Odkaz/jak získat
Řada aplikačních procesorů i.MX 93 – Arm Cortex-A55, akcelerace ML, energeticky efektivní MPUNXP i.MX 93 A1 (i. MX93) https://www.nxp.com/products/processors-and- mikrokontroléry/arm-procesory/i-mx-aplikace- procesory/i-mx-9-procesory/i-mx-93-aplikace- procesor-rodina-rameno-kortex-a55-ml-akcelerace-nakon- efektivní-mpu:i.MX93
Embedded Linux for i.MX Applications Processors (IMXLINUX) http://www.nxp.com/IMXLINUX
Uživatelská příručka GUI Guider v1.6.1 (GUIGUIDERUG) https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf
Úložiště hlasového uživatelského rozhraní VIT i.MX https://github.com/nxp-imx/imx-voiceui

Poznámka ke zdrojovému kódu v dokumentu

ExampKód zobrazený v tomto dokumentu má následující autorská práva a licenci BSD-3-Clause:
Copyright 2023-2024 NXP Redistribuce a použití ve zdrojové a binární formě, s úpravami nebo bez nich, jsou povoleny za předpokladu, že jsou splněny následující podmínky:

  1. Redistribuce zdrojového kódu musí obsahovat výše uvedené upozornění na autorská práva, tento seznam podmínek a následující prohlášení o vyloučení odpovědnosti.
  2. Redistribuce v binární formě musí reprodukovat výše uvedenou poznámku o autorských právech, tento seznam podmínek a následující prohlášení o vyloučení odpovědnosti v dokumentaci a/nebo jiných materiálech musí být poskytnuty s distribucí.
  3. Jméno držitele autorských práv ani jména jeho přispěvatelů nelze použít k podpoře nebo propagaci produktů odvozených od tohoto softwaru bez zvláštního předchozího písemného souhlasu.
    TENTO SOFTWARE POSKYTUJÍ DRŽITELÉ AUTORSKÝCH PRÁV A PŘISPĚVATELÉ „TAK, JAK JE“, A JAKÉKOLI VÝSLOVNÉ NEBO PŘEDPOKLÁDANÉ ZÁRUKY, VČETNĚ, ALE NE OMEZENÉ, PŘEDPOKLÁDANÝCH ZÁRUK OBCHODOVATELNOSTI A VHODNOSTI PRO KONKRÉTNÍ NÁKUP. V ŽÁDNÉM PŘÍPADĚ NEBUDE DRŽITEL AUTORSKÝCH PRÁV NEBO PŘISPĚVATELÉ ODPOVĚDNÍ ZA JAKÉKOLI PŘÍMÉ, NEPŘÍMÉ, NÁHODNÉ, ZVLÁŠTNÍ, EXEMPLÁRNÍ NEBO NÁSLEDNÉ ŠKODY (VČETNĚ, ALE NEOMEZENO NA, ZAJIŠTĚNÍ NÁHRADNÍHO ZBOŽÍ, ZBOŽÍ FILO; NEBO PŘERUŠENÍ OBCHODNÍ ČINNOSTI), AŤ JAK ZPŮSOBUJEME A NA ZÁKLADĚ JAKÉKOLI TEORIE ODPOVĚDNOSTI, AŤ VE SMLOUVĚ, PŘÍMÉ ODPOVĚDNOSTI NEBO PŘEČINKU (VČETNĚ NEDBALOSTI ČI JINAK) VZNIKLÉM JAKÝKOLIV ZPŮSOBEM Z POUŽÍVÁNÍ TOHOTO SOFTWARU.

Historie revizí
Tabulka 3 shrnuje revize tohoto dokumentu.

ID dokumentu Datum vydání Popis
AN14270 v.1.0 16. května 2024 První veřejné vydání

Právní informace

Definice
Koncept — Stav konceptu na dokumentu označuje, že obsah je stále pod interní revizíview a podléhá formálnímu schválení, které může vést k úpravám nebo doplnění. NXP Semiconductors neposkytuje žádná prohlášení ani záruky ohledně přesnosti nebo úplnosti informací obsažených v pracovní verzi dokumentu a nenese žádnou odpovědnost za důsledky použití takových informací.

Vyloučení odpovědnosti
Omezená záruka a odpovědnost — Informace v tomto dokumentu jsou považovány za přesné a spolehlivé. Společnost NXP Semiconductors však neposkytuje žádná prohlášení ani záruky, vyjádřené nebo předpokládané, pokud jde o přesnost nebo úplnost takových informací, a nenese žádnou odpovědnost za důsledky použití takových informací. NXP Semiconductors nenese žádnou odpovědnost za obsah tohoto dokumentu, pokud je poskytnut informačním zdrojem mimo NXP Semiconductors.
Společnost NXP Semiconductors v žádném případě nenese odpovědnost za jakékoli nepřímé, náhodné, trestné, zvláštní nebo následné škody (včetně – bez omezení – ušlého zisku, ušlých úspor, přerušení podnikání, nákladů souvisejících s odstraněním nebo výměnou jakýchkoli produktů nebo nákladů na přepracování), ať už nebo takové škody nejsou založeny na protiprávním jednání (včetně nedbalosti), záruce, porušení smlouvy nebo jiné právní teorii.
Bez ohledu na jakékoli škody, které by mohly zákazníkovi z jakéhokoli důvodu vzniknout, bude souhrnná a kumulativní odpovědnost NXP Semiconductors vůči zákazníkovi za produkty popsané v tomto dokumentu omezena v souladu s podmínkami komerčního prodeje NXP Semiconductors.

Právo na změny — NXP Semiconductors si vyhrazuje právo kdykoli a bez upozornění provádět změny informací zveřejněných v tomto dokumentu, včetně, bez omezení, specifikací a popisů produktů. Tento dokument nahrazuje a nahrazuje všechny informace poskytnuté před jeho zveřejněním.
Vhodnost pro použití — Produkty NXP Semiconductors nejsou navrženy, autorizovány nebo zaručeny tak, aby byly vhodné pro použití v systémech nebo zařízeních pro podporu života, život kritických nebo kritických systémech nebo zařízeních, ani v aplikacích, kde lze důvodně očekávat selhání nebo nesprávnou funkci produktu NXP Semiconductors. způsobit zranění, smrt nebo vážné poškození majetku nebo životního prostředí. Společnost NXP Semiconductors a její dodavatelé nepřijímají žádnou odpovědnost za zahrnutí a/nebo použití produktů NXP Semiconductors v takovém zařízení nebo aplikacích, a proto je takové zahrnutí a/nebo použití na vlastní riziko zákazníka.

Aplikace — Zde popsané aplikace pro kterýkoli z těchto produktů slouží pouze pro ilustrativní účely. NXP Semiconductors neposkytuje žádné prohlášení ani záruku, že takové aplikace budou vhodné pro specifikované použití bez dalšího testování nebo úprav.

Zákazníci jsou zodpovědní za návrh a provoz svých aplikací a produktů využívajících produkty NXP Semiconductors a NXP Semiconductors nepřijímá žádnou odpovědnost za jakoukoli pomoc s aplikacemi nebo návrhem zákaznických produktů. Je výhradní odpovědností zákazníka určit, zda je produkt NXP Semiconductors vhodný a vhodný pro zákazníkovy aplikace a plánované produkty, jakož i pro plánovanou aplikaci a použití zákazníkem (zákazníků) jako třetí strana. Zákazníci by měli poskytnout vhodné konstrukční a provozní záruky, aby minimalizovali rizika spojená s jejich aplikacemi a produkty.

NXP Semiconductors nepřijímá žádnou odpovědnost související s jakýmkoli selháním, poškozením, náklady nebo problémem, který je založen na jakékoli slabosti nebo selhání v aplikacích nebo produktech zákazníka nebo v aplikaci nebo použití zákazníkem (zákazníky třetí strany) zákazníka. Zákazník je odpovědný za provedení všech nezbytných testů pro aplikace a produkty zákazníka používající produkty NXP Semiconductors, aby se vyhnul selhání aplikací a produktů nebo aplikace nebo použití zákazníkem (zákazníky třetí strany) zákazníka. NXP nenese v tomto ohledu žádnou odpovědnost.

Podmínky komerčního prodeje — Produkty NXP Semiconductors se prodávají v souladu se všeobecnými podmínkami komerčního prodeje, jak jsou zveřejněny na https://www.nxp.com/profile/terms, není-li v platné písemné individuální dohodě dohodnuto jinak. V případě uzavření individuální smlouvy platí pouze podmínky příslušné smlouvy. Společnost NXP Semiconductors tímto výslovně nesouhlasí s uplatňováním všeobecných obchodních podmínek zákazníka s ohledem na nákup produktů NXP Semiconductors zákazníkem.

Kontrola vývozu — Tento dokument, stejně jako položky zde popsané, mohou podléhat předpisům o kontrole vývozu. Vývoz může vyžadovat předchozí povolení od příslušných orgánů.
Vhodnost pro použití v produktech nekvalifikovaných pro automobilový průmysl — Pokud tento dokument výslovně neuvádí, že tento konkrétní produkt NXP Semiconductors je kvalifikovaný pro automobilový průmysl, není tento produkt vhodný pro použití v automobilech. Není kvalifikován ani testován v souladu s automobilovým testováním nebo aplikačními požadavky. Společnost NXP Semiconductors nenese žádnou odpovědnost za zahrnutí a/nebo použití jiných než automobilových kvalifikovaných produktů v automobilovém vybavení nebo aplikacích.

V případě, že zákazník použije produkt pro návrh a použití v automobilových aplikacích podle automobilových specifikací a norem, zákazník (a) použije produkt bez záruky NXP Semiconductors na produkt pro takové automobilové aplikace, použití a specifikace a ( b) kdykoli zákazník použije produkt pro automobilové aplikace nad rámec specifikací NXP Semiconductors, takové použití bude výhradně na vlastní riziko zákazníka a (c) zákazník plně odškodní společnost NXP Semiconductors za jakoukoli odpovědnost, škody nebo neúspěšné nároky na produkt vyplývající z návrhu a použití zákazníka. produkt pro automobilové aplikace nad rámec standardní záruky NXP Semiconductors a specifikace produktu NXP Semiconductors.

Překlady — Neanglická (přeložená) verze dokumentu, včetně právních informací v tomto dokumentu, je pouze orientační. V případě jakéhokoli rozporu mezi přeloženou a anglickou verzí má přednost anglická verze.

Zabezpečení — Zákazník chápe, že všechny produkty NXP mohou být předmětem neidentifikovaných zranitelností nebo mohou podporovat zavedené bezpečnostní standardy nebo specifikace se známými omezeními. Zákazník je odpovědný za návrh a provoz svých aplikací a produktů během jejich životního cyklu, aby se snížil účinek těchto zranitelností na aplikace a produkty zákazníka. Odpovědnost zákazníka se vztahuje také na další otevřené a/nebo proprietární technologie podporované produkty NXP pro použití v zákaznických aplikacích. NXP nenese žádnou odpovědnost za jakoukoli zranitelnost. Zákazník by měl pravidelně kontrolovat aktualizace zabezpečení z NXP a patřičně je sledovat.
Zákazník si musí vybrat produkty s bezpečnostními prvky, které nejlépe splňují pravidla, předpisy a normy zamýšlené aplikace a učinit konečná rozhodnutí o designu týkající se svých produktů a je výhradně odpovědný za shodu se všemi právními, regulačními a bezpečnostními požadavky týkajícími se jeho produktů, bez ohledu na jakékoli informace nebo podporu, kterou může NXP poskytnout.

NXP má tým pro reakci na bezpečnostní incidenty produktu (PSIRT) (dostupný na adrese PSIRT@nxp.com), která spravuje vyšetřování, hlášení a uvolňování řešení bezpečnostních zranitelností produktů NXP.
NXP B.V. — NXP B.V. není provozní společností a nedistribuuje ani neprodává produkty.

ochranné známky

Oznámení: Všechny odkazované značky, názvy produktů, názvy služeb a ochranné známky jsou majetkem příslušných vlastníků.

NXP — slovo a logo jsou ochranné známky společnosti NXP BV
i.MX — je ochranná známka společnosti NXP BV

Uvědomte si prosím, že důležitá upozornění týkající se tohoto dokumentu a zde popsaných produktů byla zahrnuta v části „Právní informace“.
© 2024 NXP BV Všechna práva vyhrazena.
Další informace naleznete na adrese: https://www.nxp.com

Datum vydání: 16. května 2024
Identifikátor dokumentu: AN14270

Dokumenty / zdroje

NXP AN14270 Přidání hlasové podpory do průvodce GUI [pdfUživatelská příručka
AN14270 Přidání hlasové podpory do GUI Guider, AN14270, Přidání hlasové podpory do GUI Guider, do GUI Guider, GUI Guider, Guider

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *