NXP-LOGO

NXP AN14270 Ajoute sipò vwa nan GUI Guider

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-PRODUCT

Espesifikasyon

Non pwodwi: AN14270 - Ajoute sipò vwa nan GUI Guider pou i.MX 93

Revizyon: 1.0

Dat: 16 me 2024

Enfòmasyon sou pwodwi

Résumé: Nòt aplikasyon sa a eksplore entegre vwa lè li mete teknoloji rekonesans lapawòl (VIT) ak GUI Guider.

Manifakti: NXP Semiconductors

Plis paseview

Gid GUI: Yon zouti devlopman koòdone itilizatè soti nan NXP ki sèvi ak bibliyotèk grafik LVGL pou kreye ekspozisyon bon jan kalite ak divès kalite widgets, animasyon, ak estil.

Teknoloji Entelijan Vwa (VIT): Yon zouti pa NXP pou defini wakeword ak kòmandman atravè zouti gratis sou entènèt ak lojisyèl kontwòl vwa.

File keu mesaj (MQUEUE): Aplike keu mesaj POSIX 1003.1b pou kominikasyon ant pwosesis ant GUI Guider ak VIT.

Materyèl, Lojisyèl, ak Kondisyon Lame

Kategori Deskripsyon
Materyèl Dapre kondisyon pwodwi yo
Lojisyèl Dapre kondisyon pwodwi yo
Lame Dapre kondisyon pwodwi yo

Enstriksyon Itilizasyon Pwodwi

Pre-kondisyon

Kliche vèsyon Linux

Pou flash EVK a ak vèsyon Linux:

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

Toolchain ak Yocto Project

  1. Kreye yon katab bin: $ mkdir ~/bin
  2. Telechaje zouti repo: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  3. Ajoute katab bin nan varyab PATH: $ export PATH=~/bin:$PATH
  4. Resèt klonaj: $ 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. Pou konstwi ak konfigirasyon: $ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy

Kesyon yo poze souvan (FAQ)

Q: ki sa ki VIT?
A: VIT la vle di Voice Intelligent Technology, yon zouti pa NXP pou defini wakewords ak kòmandman lè l sèvi avèk zouti sou entènèt ak lojisyèl kontwòl vwa.

Q: Ki sa ki GUI Guider?
A: GUI Guider se yon zouti devlopman koòdone itilizatè ki soti nan NXP ki sèvi ak bibliyotèk grafik LVGL pou kreye ekspozisyon bon jan kalite ak divès kalite widgets, animasyon, ak estil.

Dokiman enfòmasyon

Enfòmasyon Kontni
Mo kle AN14270, VIT, rekonesans lapawòl, kominikasyon entè-pwosesis (IPC), keu mesaj, GUI Guider
Résumé Nòt aplikasyon sa a eksplore posiblite pou entegre vwa pa kreye yon pon ant yon teknoloji rekonesans lapawòl, tankou VIT, ak koòdone kreyatè GUI Guider.

Entwodiksyon

Koòdone itilizatè a limite itilizasyon zouti GUI Guider la. Jwenn yon entèraksyon sèlman atravè yon sourit oswa yon ekran tactile ka ase pou kèk ka itilize. Sepandan, pafwa ka itilize a mande pou ale pi lwen pase limit li yo. Dokiman sa a eksplore posibilite pou entegre vwa pa kreye yon pon ant yon teknoloji rekonesans lapawòl, tankou VIT, ak koòdone kreyatè GUI Guider la. Li itilize yon fason inivèsèl pou lye tout kòmandman rekonesans vwa yo ak yon wakeword ak nenpòt entèraksyon ki kreye pa GUI Guider.

Plis paseview

Pou mete kominikasyon ki genyen ant GUI Guider ak kòmandman teknoloji VIT, al gade nan Seksyon 8. Kominikasyon an se bati lè l sèvi avèk yon kòd ki te kreye kòm yon moun k ap okipe, ki koute epi pèmèt li simulation evènman nan entèraksyon an pou kreye entèraksyon an.

GUI Guider
GUI Guider se yon zouti devlopman koòdone itilizatè soti nan NXP ki bay yon opsyon rapid pou kreye yon ekspozisyon bon jan kalite lè l sèvi avèk bibliyotèk grafik LVGL. Li sèvi ak yon varyete diferan nan widgets, animasyon, ak estil, ak diferan konfigirasyon deklanche ak personnalisation ak posibilite pou pa kodaj. Pou plis enfòmasyon sou GUI Guider, al gade nan Gid Itilizatè GUI Guider v1.6.1 (dokiman GUIGUIDERUG).

Teknoloji entèlijan vwa
Teknoloji Entelijan Vwa (VIT) se yon zouti NXP kreye pou defini mo ak kòmandman lè l sèvi avèk zouti gratis sou entènèt, bibliyotèk, ak pake lojisyèl kontwòl vwa. MCUXpresso ka sèvi ak li pou mikwo-kontwolè oswa Linux BSP ka itilize li pou mikwo-prosesè.

Keu mesaj
File keu mesaj (MQUEUE) se yon manadjè ki aplike fòma keu mesaj POSIX 1003.1b. Yo itilize li kòm kominikasyon entè-pwosesis (IPC) pou kreye pon ant GUI Guider ak VIT. Li fè echanj done nan fòm mesaj, voye li atravè VIT ak fè jesyon an ak script la
komand_handler.

Materyèl, lojisyèl, ak kondisyon lame

Tablo 1 bay detay sou pyès ki nan konpitè, lojisyèl, ak lame ki nesesè pou itilize VIT ak GUI Guider.

Tablo 1. Materyèl, lojisyèl, ak lame yo itilize

Kategori Deskripsyon
Materyèl • i.MX 93 EVK

• Ekipman pou pouvwa: USB Type-C 45 W pouvwa-livrezon ekipman (5 V/3 A)

• USB tip-C gason pou USB tip-A gason kab: asanble, USB 3.0 konfòm

• LVDSL adaptè ak HDMI kab oswa DY1212W-4856 LVCD LCD panèl

• Mikwofòn entèn i.MX 93

Lojisyèl • Linux BSP vèsyon: L6.1.55_2.2.0

• GUI Guider v1.6.1 vèsyon pi devan

• Toolchain 6.1-Langdale

Lame • X86_64 Linux Ubuntu 20.04.6 LTS

Pre-kondisyon

Seksyon sa a dekri enstalasyon diferan zouti ki nesesè yo.

Flache vèsyon Linux

Anvan ou swiv etap ki anba yo, chanje konfigirasyon bòt la nan mòd download la epi konekte yon USB atravè lame a. Pou plis enfòmasyon, al gade nan Gid Itilizatè i.MX Linux (dokiman IMXLUG).

Pou flash EVK a, fè etap sa yo:

  1. Telechaje dènye lage imaj NXP Linux BSP pou i.MX 93 (L6.1.55_2.2.0 oswa dènye).
  2. Pou flash EVK a, telechaje UUU ki sot pase a: https://github.com/nxp-imx/mfgtools/releases.
  3. Konekte EVK a ak lame a lè l sèvi avèk EVK pò USB1.
  4. Sèvi ak imx-image-full la, mete tou de pwogram yo nan menm bagay la file epi flash EVK la lè l sèvi avèk lòd sa a:

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (1)

Altènativman, sèvi ak sèlman imaj la pou flash EVK la:

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (2)

Nòt: Asire w tcheke broch bòt yo.

Chèn zouti ak pwojè Yocto
Pwojè Yocto se yon kolaborasyon sous louvri ki ede kreye sistèm koutim ki baze sou Linux. Yocto kreye imaj ki itilize pa i.MX.
Asire ke machin lame a gen yon zouti devlopman aplikasyon (ADT) oswa chèn zouti pou gen menm anviwònman ak EVK la. Asire li se kapab konpile aplikasyon pou tablo sib la. Pou jwenn chèn zouti ki kòrèk la, al gade nan "seksyon 4.5.12" nan Gid Itilizatè i.MX Linux (dokiman IMXLUG) ak "seksyon 4" nan Gid Itilizatè Pwojè i.MX Yocto (dokiman IXLXYOCTOUG).

Pou jwenn chèn zouti sou machin lame a soti nan anviwònman Yocto, fè etap sa yo:

  1. Kreye yon katab bin nan anyè kay la:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (3)
  2. Asire w ke katab ~/bin la nan varyab PATH la.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (4)
  3. Klone resèt yo pou itilize nan depo a:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (5)
  4. Pou konstwi, konfigirasyon jan sa a:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (6)
  5. Pou jenere chèn zouti a, mete kanpe yon anviwònman otonòm san yo pa Pwojè Yocto a jan sa a:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (7)

GUI Guider

Seksyon sa a eksplike sou GUI Guider ak kijan pou itilize baz yo pou kreye yon pwojè ki baze sou zouti sa a. Li eksplike tou sou diferan karakteristik yo itilize ak pran avantage nan karakteristik sa yo.

Gui Guider widgets ak evènman yo
Lè itilizatè a kreye yon pwojè nan GUI Guider, se itilizasyon diferan widgets kòm yon objè ki te pwodwi otomatikman. Objè sa a gen pwopriyete diferan; youn nan yo se Evènman yo. Tou depan de widje a, evènman yo ka gen diferan deklanche, ak sa k ap pase depann sou sib la. Pou egzanpample, Figi 1 montre sa k ap pase si yon bouton vize ekran an gen sèlman aksyon an "Chajman ekran".

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (8)

Objè sa yo ka jwenn nan chemen an /generated/gui-guider.h. Command_handler script la pran avanstage nan evènman yo itilize pa widgets yo similye deklanche a.
Pou plis enfòmasyon sou widgets ak evènman, gade GUI Guider v1.6.1 Gid Itilizatè (dokiman GUIGUIDERUG).

Demaraj rapid
Pou kòmanse travay, enstale GUI Guider la.

Sou enstalasyon lame, fè etap sa yo:

  1. Telechaje vèsyon ki pi resan GUI Guider (1.7.1 oswa dènye).
  2. Swiv etap sa yo pou telechaje.
    Isit la, itilizatè a ka chwazi yo kreye yon pwojè ak ansyen ofisyèlamples oswa pwojè lokal yo.

Pou kreye yon pwojè GUI, fè etap sa yo:

  1. Louvri GUI Guider 1.7.1.
  2. Kreye yon pwojè.
  3. Chwazi vèsyon LVGL la.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (9)
  4. Pou i.MX 93, chwazi processeur i.MX la.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (10)
  5. Chwazi yon modèl. Pou dokiman sa a, chwazi modèl "ScreenTransition".NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (11)
  6. Chwazi yon Non Pwojè epi pou kreye yon pwojè, klike sou Kreye.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (12)
  7. Fenèt prensipal la dwe parèt, jan yo montre nan Figi 6.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (13)

Kreye widgets, evènman, ak deklanche

Pou kreye widgets, evènman, ak deklanche, fè etap sa yo:

  1. Sou bò gòch GUI Guider a, klike sou bouton an, make an wouj, de fwa.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (14)
  2. Kòm yon rezilta, bouton an elaji pou montre tout widgets ki disponib yo.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (15)
    Ka gen plizyè widgets ak diferan propriétés. Nòt aplikasyon sa a konsantre sou bouton ki kalite widget. Sepandan, kapab genyen lòt kalite widgets ak limit yo. Pou plis enfòmasyon, al gade nan "Detay Widget" nan Gid Itilizatè GUI Guider v1.6.1 (dokiman GUIGUIDERUG).
  3. Ajoute Widget bouton an lè w trennen l nan UI a soti nan tab Widgets.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (16)
  4. Dwa-klike sou bouton an pou pwopriyete yo epi klike sou Ajoute evènman.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (17)
  5. Yon fenèt parèt ki montre tout evènman widje a ka deklanche.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (18)
  6. Apre sa, fenèt la montre tout evènman deklanche a ka tire. Evènman sa yo ka aplike nan ekran, lòt widgets, oswa kreye evènman koutim.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (19)
  7. Pou ansyen sa aample, yon nouvo ekran chaje. Klike sou ekran chaj la epi chwazi ekran yo dwe chaje.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (20)
  8. Pou teste aplikasyon an, sèvi ak similatè ki entegre ak GUI Guider. Yo itilize li pou chwazi bouton kap vini an ak kalite simulation pou itilize. Pou ka sa a, sèvi ak yon similatè nan C.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (21)
  9. Pou chaje nouvo ekran an, klike sou bouton.

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (22)

Bati pou i.MX 93

Pou konstwi i.MX 93, fè etap sa yo:

  1. Asire w ke chèn zouti itilize pa GUI Guider te enstale kòrèkteman. Pou verifye kwaze, tcheke chemen anNXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (23)
  2. Soti nan ansyen ansyen anample, pou kreye aplikasyon an epi kouri li sou i.MX 93, chwazi Pwojè > Konstwi > Yocto nan ba anlè a.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (24)
  3. Pou tcheke estati Pwojè, gwosè Binè, ak Log, chwazi tab Enfòmasyon ki nan pati anba aplikasyon an. Tcheke jounal la lè w agrandi tab Enfòmasyon an.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (25)
  4. Jounal la bay enfòmasyon bilding ki gen ladan kote binè a file. Pou ka sa a, binè a se nan chemen an / /build/gui_guider.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (26)
  5. Jwenn tèminal lame a epi voye li bay EVK lè l sèvi avèk lòd sa a:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (27)
    Nòt: Pou itilize apwòch ki anwo a, li nesesè ke tou de machin yo, lame, ak sib yo sou rezo a menm ak IP tablo a li te ye.
  6. Egzekite binè a file sou EVK a lè l sèvi avèk lòd sa a:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (28)
    Pou egzanpample, lè l sèvi avèk yon ekran LVDS, ki montre pwojè a bati pa GUI Guider, jan yo montre nan Figi 19.

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (29)

VIT

Seksyon sa a eksplike kijan pou itilize VIT otonòm epi jenere modèl la pou konekte li ak GUI Guider la. Li eksplike ki jan yo sèvi ak lame a jenere yon modèl ak karakteristik yo vle. Pou plis enfòmasyon, gade nan VOICE-INTELLIGENT-TECHNOLOGY.

Kreye modèl la

Pou kreye modèl la, fè etap sa yo:

  1. Konekte nan VIT la websit: VIT Model Generation Tool
  2. Klike sou tab GENERE MODÈL la.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (30)
  3. Chwazi platfòm SW ak vèsyon kòm "Linux BSP" ak "LF6.1.55_2.2.0". Epitou, chwazi opsyon ki aplikab yo pou Aparèy kòm "i.MX93" ak Lang kòm "Angle".NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (31)
  4. Ajoute wakewords, ki aji kòm yon deklanche ki di VIT lè yo kòmanse koute yon lòd vwa. Lè yon nouvo wakeword oswa kòmand kreye, li mande yo mete valè a pou "Sansiblite". Paramèt sa a ogmante pousantaj rekonesans, ki vle di si se yon valè pozitif li pi fasil pou detekte men li ka lakòz plis deteksyon fo. Olye de valè negatif yo itilize pou evite konfizyon ant mo kle yo, kenbe valè sansiblite a kòm 0. Pa egzanpample, isit la, yo ajoute fraz "hey led".NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (32)
  5. Ajoute kòmandman vwa yo dwe itilize epi elimine sa yo pa itilize yo.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (33)
  6. Klike sou bouton Jenere modèl la epi tann jiskaske bouton Download modèl la debloke.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (34)
  7. Yo voye modèl la nan tab MODÈL MWEN yo. Pou telechaje modèl ki pi resan an, klike sou ikòn telechaje a.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (35)
  8. Ekstrè dosye postal la epi sove a file VIT_Model_en ki gen dosye VIT_package.

Konpile VIT voice_ui_app kòm otonòm
Voice_ui_app se yon ansyenample kreye pou depo imx-voiceui la. Aplikasyon sa a sèvi ak modèl la pou detekte mo ak kòmandman. Yon sèvis piblik yo itilize nan dokiman sa a se agiman "notize". Agiman sa a lè li detekte yon wakeword oswa yon lòd, ouvè yon Python file WakeWordNotify oswa WWCommandNotify ak yon agiman sistèm lè l sèvi avèk idantifyan an (ID). ID sa a ede fè diferans ant deklannche yo.

Pou kreye voice_ui_app sou lame a epi ede w bay li nan modèl anvan yo te kreye a, fè etap sa yo:

  1. Klone depo VIT ki gen ladan vèsyon branch lan, lè l sèvi avèk lòd sa a:
    $ git clone https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0
  2. Kreye yon backup nan orijinal la file, lè l sèvi avèk lòd sa a:
    $ cd /imx-voiceui
    $mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h
  3. Mete chèn zouti ki te deja enstale a:
    $ sous /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
    Nòt: Sèvi ak chèn zouti ki te kreye pa Yocto.
  4. Bati pwojè ou a, lè l sèvi avèk lòd sa a:
    $ fè tout VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55
  5. Yon fwa yo bati pwojè a, li jenere yon anyè ki rele lage. Kopi a file voice_ui_app nan anyè sa a pou EVK la:
    $ scp lage/voice_ui_app rasin@ :/kay/rasin

Sèvi ak paramèt -notify la
Script ki rele voice_ui_app lè w ap pase drapo "-notify" la, dwe nan chemen /usr/bin/. Sèvi ak atache a files nan /usr/bin/ epi kopye scripts sa yo nan EVK la.

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

La files andedan, sèvi ak wakeword / ID kòmand epi voye li nan keu mesaj la.
Apre kopye sa yo files pou EVK a, sèvi ak paramèt "-notify" pou vle di ke a files WakeWordNotify, ak WWCommandNotify, gen otorizasyon ki nesesè yo. Pou ajoute li sou EVK a, egzekite lòd sa a:

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

Adyo devan-fen
Odyo front-end (AFE) yo itilize kòm yon manje pou rekonesans vwa VIT. Li ede netwaye bri ak eko lè l sèvi avèk sous la ak yon referans nan oratè a. Se poutèt sa, rezilta a se yon odyo klè yon sèl mikwofòn chanèl ki ka itilize pou pwosesis. Pou plis enfòmasyon, gade VOICESEEKER.
Ou ka jwenn AFE andedan EVK nan chemen /unit_tests/nxp-afe.

Pou prepare ak egzekite pwogram nan, swiv etap sa yo nan file TODO.md nan nxp-afe:

  1. Asire w ke DTB a se imx93-11×11-evk.dtb.
  2. Enstale modil aloop pou sipòte AFE:
    root@imx93evk:~# sudo modprobe snd-aloop
  3. Kreye yon backup nan asound.conf epi sèvi ak asound.conf ki koresponn lan pou tablo a:
    root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
    root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf
  4. Chanje WakeWordEnginge pou itilize motè mo VIT kòrèkteman. Konfigirasyon sa a se anndan an file /unit_tests/nxp-afe/Config.ini.
  5. Modifye pwopriyete WakeWordEngine = VoiceSpot ki sèvi ak VoiceSpot kòm yon default nan WakeWordEngine = VIT.
  6. Pou teste AFE a, egzekite voice_ui_app:
    root@imx93evk:~# ./voice_ui_app &
    Nòt: Pou ka sa a, li pa nesesè pou ajoute paramèt "-notify".
  7. Egzekite AFE a, lè l sèvi avèk lòd sa a:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  8. Pou detèmine si AFE kouri nan background nan, sèvi ak lòd la &. Pou konnen ki lòt pwogram yo ap kouri nan background nan, sèvi ak lòd sa a:
    root@imx93evk:~# ps
  9. Pou fèmen AFE oswa voice_ui_app, sèvi ak lòd sa a:
    root@imx93evk:~# pkill afe
    root@imx93evk:~# pkill voice_ui_app

Kouri voice_ui_app san -notify

  1. Apre ou fin swiv etap sa yo nan TODO.md la file, kouri binè voice_ui_app soti nan tèminal la sou EVK la. Li montre enfòmasyon sou fason VIT la ap kouri.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (36)
  2. Pou nouri voice_ui_app a, egzekite AFE a lè l sèvi avèk lòd sa a:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  3. Di wakeword la ak vwa kòmand epi tcheke si li ap travay jan yo espere. Li montre wakeword la ak lòd vwa a nan tèminal la jan sa a:
    – Wakeword detekte 1 HEY NXP StartOffset 16640
    – Kòmand vwa detekte 3 TURN ON

GUI Guider VIT aplikasyon

Jan sa eksplike pi bonè, aplikasyon/script command_handler atravè notifikasyon VIT voye ID kòmand ak ID wakeword nan yon keu mesaj kòm IPC. Lè sa a, li kaptire ID sa yo pou simulation yon evènman nan yon aplikasyon GUI-Guider. Figi 26 montre kouman kominikasyon sa a te egzekite.

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (37)

Nòt: Asire w konfigirasyon moun k ap okipe a pou l travay kòrèkteman ak modèl koutim ki te kreye a. Modifikasyon sa yo dwe aplike sou lame a.

Sèvi ak command_handler pou simulation evènman yo

Pou itilize command_handler pou simulation evènman, fè etap sa yo:

  1. Ajoute la files command_handler.h ak command_handler.c nan pwojè GUI Guider nan anyè / /koutòm/.
  2. Pou koresponn ak modèl aktyèl yo itilize a, modifye command_handler.h pa chanje voice_cmd_t ak voice_ww_t.
    Nòt: Asire w ke yo itilize menm lòd la nan modèl la.
  3. Modifye kantite wakewords ak kòmandman nan file / /custom/command_handler.h:
    #defini VIT_WW_NUMBER 2
    #defini VIT_CMD_NUMBER 5
  4. Inisyalize koòdone nan lòd nan la file / /custom/custom.c. GUI Guider jenere sa a file otomatikman.
    #include "command_handler.h"
  5. Fonksyon defini kòm void custom_init(lv_ui *ui) ki disponib nan file /
    chemen>/custom/custom.c. Fonksyon sa a ka modifye pou ajoute yon kòd ak lòd inisyalize start_command_handler() jan sa a:
    void custom_init (lv_ui *ui)
    {
    /* Ajoute kòd ou yo isit la */
    start_command_handler();
    }
    Ki kote:
    Start_command_handler() yo itilize pou kreye yon fil kouri kòm yon moun kap okipe, pran mesaj VIT voye, epi egzekite kòmandman command_handler_link ().
  6. Pou konekte mo ak lòd VIT yo ak objè a ak evènman an, sèvi ak lòd sa a:
    void command_handler_link(voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t evènman);
    Ki kote:
    • Command_handler_link() yo itilize pou sove yon evènman pou simulation pou egzekisyon VIT.
    • Antre yo, voice_ww_t ak voice_cmd_t, yo kreye nan etap 2 gen rapò dirèkteman ak modèl VIT la.
    • Twazyèm agiman an, lv_obj_t**, gen rapò ak kreyasyon objè GUI Guider. Premyèman, lokalize objè a yo dwe lye. Non an konfòm ak estrikti kap vini an _ . Pou jwenn kote li defini, tcheke la file ki te pwodwi pa GUI Guider nan generated/gui_guider.h. Isit la, ou ka jwenn pwochen estrikti a ak tout objè yo posib pou lyen.

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (39)

Yo itilize fonksyon custom_init(lv_ui *ui) pou inisyalize nan kòmansman ekzekisyon GUI Guider. Ou ka itilize estrikti sa a pou w gen rapò ak yon objè, pou w konnen kijan pou w sèvi ak li kòrèkteman. Pointeur nan estrikti yo bay la se *ui, ak konsèy pou rechèch la se lv_obj_t**. Se poutèt sa, li nesesè yo sèvi ak estrikti sa a ak fòma kap vini an:

&ui->speed_btn_1

  • Katriyèm agiman an, evènman lv_event_code_t, gen rapò ak evènman an ki pral deklanche. Li anjeneral gen yon estrikti tankou sa a: LV_EVENT_ . Li detèmine kisa yo dwe fè ak evènman an deklanche atravè kòd la viewer nan la file events_init.c.
    Pou egzanpample, btn_1 ki te kreye nan vitès ekran an gen evènman sa yo ki te pwodwi pa GUI Guider.

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (40)

Example
Seksyon sa a montre yon ansyenampLe nan aplikasyon sa a pou ajoute sipò vwa nan GUI Guider a, baskile widje ki ap dirije a ak chanje ant ekran GUI.

  1. Sèvi ak modèl entèfas ki te kreye ak bouton an, ajoute widgets yo. Pou egzanpample, ajoute yon widget ki ap dirije.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (41)
  2. Ajoute evènman an bourade nan btn_1 la epi chanje background nan ajoute konfigirasyon evènman an. Pou ka sa a, yo dwe chwazi background nan kòm nwa pou "fèmen" widje ki ap dirije a. Se poutèt sa, evènman yo itilize a peze > led_1 > Fond nwa (#000000).NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (42)
  3. Sèvi ak menm bouton an, konfigirasyon yon evènman yo bay li nan "vire sou". Pou ka sa a, ajoute evènman an lage nan btn_1 la epi ajoute wouj nan background nan. Se poutèt sa, evènman yo itilize a lage > led_1 > Jan nou koumanse wouj (#ff0000).NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (43)
  4. Yon fwa yo kreye entèfas la, ajoute command_handler.c ak command_handler.h nan koutim/dosye a.
  5. Pou kreye lyen ki genyen ant evènman yo ak VIT, ajoute liy sa yo nan custom_init() andedan file nan koutim / koutim.c. Pou chanje ant ekran, ajoute de lòt evènman lè w konekte btn_1 pou chanje nan ekran 2.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (44)NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (45)
    Ki kote:
    • Wakeword HEY_LED ak konbinezon TURN_OFF kòmand yo asiyen pou etenn LED la. Nan lòt mo, chanje background nan nwa.
    • Wakeword HEY_LED ak konbinezon TURN_ON kòmand yo asiyen pou vire LED wouj la.
    • Wakeword HEY_NXP ak konbinezon NEXT kòmand yo asiyen pou chanje ant ekran lè l sèvi avèk evènman yo asiyen tout nan btn_1, epi lè l sèvi avèk btn_before nan ekran 2.
    • Wakeword HEY_NXP ak konbinezon RETURN kòmand yo asiyen pou retounen nan ekran 1.
  6. Chwazi Pwojè > Bati > Yocto epi bati pwojè a.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (46)
  7. Voye nouvo binè a nan EVK la.
    Nòt: Jounal enfòmasyon an bay kote binè a.
    scp rasin@ :/kay/rasin

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (47)

Tès ak konfigirasyon
Yon fwa telechajman an fini, fè etap sa yo sou EVK la:

  1. Verifye ke modil snd-aloop la deja chaje lè w ap kouri lsmod. Si yo pa jwenn modil la, chaje li lè l sèvi avèk lòd sa a:
    root@imx93evk:~# sudo modprobe snd-aloop
  2. Kouri voice_ui_app lè l sèvi avèk lòd sa a:
    root@imx93evk:~# ./voice_ui_app -notify &
    Ki kote:
    • Yo itilize -notify la pou voye yon notifikasyon bay WakeWordNtfy ak WWCommandNtfy.
      Nòt: Sonje kopye WakeWordNtfy ak WWCommandNtfy nan usr/bin.
    • & a itilize kouri nan background nan.
  3. Verifye ke motè VIT la mete sou Config.ini la.
  4. Kouri AFE ak libvoiceseekerlight nan background nan:
    root@imx93evk:~# cd /unit_tests/nxp-afe/
    root@imx93evk:~# ./afe libvoiceseekerlight &
  5. Louvri aplikasyon GUI Guider lè l sèvi avèk lòd sa a:
    root@imx93evk:~# ./gui_guider
    Jiska etap sa a, ekran LVDS oswa HDMI montre entèfas ki te kreye a.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (48)
  6. Eseye itilize yon wakeword ak vwa kòmandman te deja asiyen, pou egzanpample, di "Hey NXP" ak "Etenn". Apre li fin di kòmandman pou koupe pouvwa a, tou depann de callback la asiyen, GUI Guider fè yon aksyon. Pou ansyen sa aample, GUI Guider chanje koulè background pou widget ki ap dirije a.

NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (49)

Resous ki gen rapò

Tablo 2 bay lis kèk resous adisyonèl yo itilize pou konplete dokiman sa a.

Tablo 2. Resous ki gen rapò

Resous Link/kijan pou w jwenn
Fanmi Processeur Aplikasyon i.MX 93 – Arm Cortex-A55, ML Akselerasyon, Power Efficient MPUNXP i.MX 93 A1 (i. MX93) https://www.nxp.com/products/processors-and- mikrokontroleur/prosesè-bra/aplikasyon-i-mx- processeurs/i-mx-9-proseseur/i-mx-93-aplikasyon- processeur-fanmi-bra-cortex-a55-ml-akselerasyon-pouvwa- efikas-mpu:i.MX93
Embedded Linux pou i.MX aplikasyon processeurs (IMXLINUX) http://www.nxp.com/IMXLINUX
GUI Guider v1.6.1 Gid itilizatè (GUIGUIDERUG) https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf
VIT i.MX depo voiceUI https://github.com/nxp-imx/imx-voiceui

Remak sou kòd sous la nan dokiman an

ExampKòd ki montre nan dokiman sa a gen dwa sa yo ak lisans BSD-3-Clause:
Copyright 2023-2024 NXP Redistribisyon ak itilizasyon nan fòm sous ak fòm binè, avèk oswa san modifikasyon, yo pèmèt si kondisyon sa yo satisfè:

  1. Redistribisyon nan kòd sous yo dwe kenbe avi dwadotè ki pi wo a, lis kondisyon sa a ak egzijans sa a.
  2. Redistribisyon yo nan fòm binè yo dwe repwodui avi sou dwadotè ki anwo yo, lis kondisyon sa a ak eksklizyon sa a nan dokiman an ak/oswa lòt materyèl yo dwe bay ak distribisyon an.
  3. Ni non an nan detantè a copyright ni non yo nan kontribye li yo ka itilize andose oswa ankouraje pwodwi ki sòti nan lojisyèl sa a san pèmisyon espesifik alavans ekri.
    TITANÈ DWA DWA AK KONTRIBÈ YO KI BAY LOGISYISYÈ SA A "KÒM YO" AK NENPÒT GARANTI EXPRESS OSWA ENPLIKITE, KI ENKLI, MEN SE PA LIMIMITE A, GARANTI ENPLIKITE AK MARCHANDISITE AK APTITE POU YON OBJEKTIF PARTIKILÈ. NAN OKENN TITLÈ DWA DWA A OSWA KONTRIBYE A PAP RESPONSYON POU NENPÒT DOmaj DIRÈK, ENDRÈK, AK ENSIDAN, ESPESYAL, EGZANPLÈ, OSWA KONSEKANS (KANK, MEN SE PA LIMITE A, AKRISYON BAY RANPLÒN OSWA SÈVIS, PÈD PWOFIS, PWOFIS ; OSWA ENTÈRIPYON BIZNIS) KELTAN KOZE AK SOU NENPÒT TEORI RESPONSABILITE, KIT NAN KONTRA, RESPONSABILITÉ STRICT, OSWA OTÒT (KENKLI NEGLIJANS OSWA OTREMAN) KI DEVITE NAN NENPÒT FÒM KI SOTI DE ITILIZE LOGISYISYÈ SA A, MENM SI YO YO AVVISE POSSIBLITE SA A.

Istwa revizyon
Tablo 3 rezime revizyon dokiman sa a.

Dokiman ID Dat lage Deskripsyon
AN14270 v.1.0 16 me 2024 Premye piblikasyon piblik la

Enfòmasyon legal

Definisyon
Draft — Yon estati bouyon sou yon dokiman endike ke kontni an toujou anba re entènview ak sijè a apwobasyon fòmèl, ki ka lakòz modifikasyon oswa adisyon. NXP Semiconductors pa bay okenn reprezantasyon oswa garanti sou presizyon oswa konplè enfòmasyon ki enkli nan yon vèsyon bouyon nan yon dokiman epi yo pa dwe gen okenn responsablite pou konsekans yo nan itilizasyon enfòmasyon sa yo.

Limit responsabilite yo
Garanti limite ak responsablite — Yo kwè enfòmasyon ki nan dokiman sa a yo egzat ak serye. Sepandan, NXP Semiconductors pa bay okenn reprezantasyon oswa garanti, eksprime oswa implicite, sou presizyon oswa konplè enfòmasyon sa yo epi yo pa dwe gen okenn responsablite pou konsekans yo nan itilizasyon enfòmasyon sa yo. NXP Semiconductors pa pran okenn responsablite pou kontni ki nan dokiman sa a si yon sous enfòmasyon andeyò NXP Semiconductors bay li.
Nan okenn ka NXP Semiconductors ta dwe responsab pou nenpòt domaj endirèk, ensidan, pinitif, espesyal oswa konsekan (ki gen ladan - san limitasyon - pèdi pwofi, pèdi ekonomi, entèripsyon biznis, depans ki gen rapò ak ranplasman an retire Mor nan nenpòt pwodwi oswa chaj retravay) kit oswa ou pa domaj sa yo baze sou tort (ki gen ladan neglijans), garanti, vyolasyon kontra oswa nenpòt lòt teyori legal.
Malgre nenpòt domaj ke kliyan ta ka fè pou nenpòt ki rezon, responsablite total ak kimilatif NXP Semiconductors anvè kliyan pou pwodwi ki dekri la a ap limite an akò ak Tèm ak kondisyon pou vann komèsyal NXP Semiconductors.

Dwa pou fè chanjman — NXP Semiconductors rezève dwa pou fè chanjman nan enfòmasyon ki pibliye nan dokiman sa a, ki gen ladan espesifikasyon san limitasyon ak deskripsyon pwodwi yo, nenpòt ki lè epi san avètisman. Dokiman sa a ranplase ak ranplase tout enfòmasyon yo te bay anvan piblikasyon sa a.
Apwopriye pou itilize - Pwodwi NXP Semiconductors yo pa fèt, otorize oswa garanti yo dwe apwopriye pou itilize nan sipò lavi, sistèm oswa ekipman ki enpòtan pou lavi oswa sekirite, ni nan aplikasyon kote echèk oswa fonksyone byen nan yon pwodwi NXP Semiconductors ka rezonab. pou lakòz blesi pèsonèl, lanmò oswa domaj grav nan pwopriyete oswa anviwònman an. NXP Semiconductors ak founisè li yo pa aksepte okenn responsablite pou enklizyon ak/oswa itilizasyon pwodwi NXP Semiconductors nan ekipman oswa aplikasyon sa yo e se poutèt sa enklizyon ak/oswa itilizasyon sa yo se sou pwòp risk kliyan an.

Aplikasyon — Aplikasyon ki dekri la a pou nenpòt nan pwodwi sa yo se pou rezon ilistrasyon sèlman. NXP Semiconductors pa fè okenn reprezantasyon oswa garanti ke aplikasyon sa yo pral apwopriye pou itilizasyon an espesifye san plis tès oswa modifikasyon.

Kliyan yo responsab pou konsepsyon ak operasyon aplikasyon yo ak pwodwi yo lè l sèvi avèk pwodwi NXP Semiconductors, epi NXP Semiconductors pa aksepte okenn responsablite pou nenpòt asistans ak aplikasyon oswa konsepsyon pwodwi kliyan. Se sèl responsablite kliyan an pou detèmine si pwodwi NXP Semiconductors apwopriye ak anfòm pou aplikasyon kliyan an ak pwodwi ki planifye, osi byen ke pou aplikasyon an te planifye ak itilizasyon kliyan twazyèm pati kliyan an (yo). Kliyan yo ta dwe bay konsepsyon apwopriye ak pwoteksyon fonksyone pou minimize risk ki asosye ak aplikasyon yo ak pwodwi yo.

NXP Semiconductors pa aksepte okenn responsablite ki gen rapò ak nenpòt defo, domaj, depans oswa pwoblèm ki baze sou nenpòt feblès oswa defo nan aplikasyon oswa pwodwi kliyan an, oswa aplikasyon an oswa itilizasyon pa kliyan twazyèm pati kliyan an (yo). Kliyan responsab pou fè tout tès ki nesesè pou aplikasyon ak pwodwi kliyan yo lè l sèvi avèk pwodwi NXP Semiconductors yo nan lòd yo evite yon default aplikasyon yo ak pwodwi yo oswa aplikasyon an oswa itilizasyon pa kliyan twazyèm pati kliyan an (yo). NXP pa aksepte okenn responsablite nan respè sa a.

Tèm ak kondisyon pou vann komèsyal yo — Yo vann pwodwi NXP Semiconductors dapre tèm jeneral ak kondisyon lavant komèsyal yo, jan yo pibliye nan https://www.nxp.com/profile/terms, sof si yo dakò nan yon akò endividyèl ekri ki valab. Nan ka yon akò endividyèl konkli sèlman tèm ak kondisyon yo nan akò respektif la ap aplike. NXP Semiconductors ekspreseman objè yo aplike tèm jeneral ak kondisyon kliyan an konsènan achte nan pwodwi NXP Semiconductors pa kliyan.

Kontwòl ekspòtasyon — Dokiman sa a ansanm ak atik ki dekri la a ka sijè a règleman kontwòl ekspòtasyon. Ekspòtasyon ta ka mande yon otorizasyon davans nan men otorite konpetan.
Apwopriye pou itilize nan pwodwi ki pa kalifye pou otomobil — Sòf si dokiman sa a di ekspreseman ke pwodwi espesifik NXP Semiconductors sa a kalifye pou otomobil, pwodwi a pa apwopriye pou itilizasyon otomobil. Li pa ni kalifye ni teste an akò ak tès otomobil oswa kondisyon aplikasyon an. NXP Semiconductors pa aksepte okenn responsablite pou enklizyon ak/oswa itilizasyon pwodwi ki kalifye ki pa otomobil nan ekipman oswa aplikasyon otomobil.

Nan ka kliyan sèvi ak pwodwi a pou konsepsyon ak itilize nan aplikasyon otomobil nan espesifikasyon otomobil ak estanda, kliyan (a) dwe itilize pwodwi a san yo pa garanti NXP Semiconductors nan pwodwi a pou aplikasyon otomobil sa yo, itilizasyon ak espesifikasyon, ak ( b) chak fwa kliyan itilize pwodwi a pou aplikasyon pou otomobil ki depase espesifikasyon NXP Semiconductors, itilizasyon sa a dwe sèlman sou pwòp risk kliyan yo, epi (c) kliyan konplètman. dedomaje NXP Semiconductors pou nenpòt responsablite, domaj oswa reklamasyon pwodwi echwe ki soti nan konsepsyon kliyan ak itilizasyon pwodwi a pou aplikasyon pou otomobil ki depase garanti estanda NXP Semiconductors ak espesifikasyon pwodwi NXP Semiconductors.

Tradiksyon — Yon vèsyon ki pa angle (tradwi) nan yon dokiman, ki gen ladan enfòmasyon legal ki nan dokiman sa a, se pou referans sèlman. Vèsyon anglè a pral genyen an ka ta gen okenn diferans ant vèsyon an tradui ak anglè.

Sekirite - Kliyan konprann ke tout pwodwi NXP yo ka sijè a frajilite yo pa idantifye oswa yo ka sipòte estanda sekirite etabli oswa espesifikasyon ak limit li te ye. Kliyan responsab pou konsepsyon ak operasyon aplikasyon li yo ak pwodwi pandan tout sik lavi yo pou diminye efè frajilite sa yo sou aplikasyon ak pwodwi kliyan yo. Responsablite Kliyan an pwolonje tou nan lòt teknoloji ouvè ak/oswa propriétaires sipòte pa pwodwi NXP pou itilize nan aplikasyon kliyan yo. NXP pa aksepte okenn responsablite pou nenpòt vilnerabilite. Kliyan ta dwe tcheke mizajou sekirite nan NXP regilyèman epi fè yon swivi kòmsadwa.
Kliyan dwe chwazi pwodwi ki gen karakteristik sekirite ki pi byen satisfè règ, règleman, ak estanda aplikasyon an gen entansyon epi pran desizyon final konsepsyon konsènan pwodwi li yo epi li se sèl responsab pou konfòmite ak tout kondisyon legal, regilasyon, ak sekirite ki gen rapò ak pwodwi li yo, kèlkeswa. nenpòt enfòmasyon oswa sipò ke NXP ka bay.

NXP gen yon Ekip Repons Ensidan Sekirite Pwodui (PSIRT) (ki ka jwenn nan PSIRT@nxp.com) ki jere ankèt la, rapò, ak lage solisyon nan vilnerabilite sekirite nan pwodwi NXP.
NXP BV — NXP BV se pa yon konpayi opere epi li pa distribye oswa vann pwodwi yo.

Mak komèsyal yo

Avi: Tout mak referans, non pwodwi, non sèvis, ak mak komèsyal yo se pwopriyete pwopriyetè respektif yo.

NXP — mak ak logo se mak komèsyal NXP BV
i.MX — se yon mak komèsyal nan NXP BV

Tanpri konnen byen ke avi enpòtan konsènan dokiman sa a ak pwodwi (yo) ki dekri la a, yo te enkli nan seksyon 'Enfòmasyon legal'.
© 2024 NXP BV Tout dwa rezève.
Pou plis enfòmasyon, tanpri vizite: https://www.nxp.com

Dat lage: 16 me 2024
Idantifyan dokiman: AN14270

Dokiman / Resous

NXP AN14270 Ajoute sipò vwa nan GUI Guider [pdfGid Itilizatè
AN14270 Ajoute sipò vwa nan GUI Guider, AN14270, Ajoute sipò vwa nan GUI Guider, nan GUI Guider, GUI Guider, Guider

Referans

Kite yon kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo make *