NXP AN14270 Aghjunghjendu Support Voice à GUI Guider
Specificazioni
Nome di u produttu: AN14270 - Aghjunghjendu Support Voice à GUI Guider per i.MX 93
Revisione: 1.0
Data: 16 di maghju di u 2024
Informazione di u produttu
Abstract: Questa nota di l'applicazione esplora l'integrazione di a voce cunghjuntendu a tecnulugia di ricunniscenza vocale (VIT) cù GUI Guider.
Produttore: NXP Semiconductors
Overview
Guida GUI: Un strumentu di sviluppu di l'interfaccia d'utilizatore da NXP chì usa a biblioteca grafica LVGL per creà display di alta qualità cù vari widgets, animazioni è stili.
Voice Intelligent Technology (VIT): Un strumentu di NXP per definisce e parolle di sveglia è cumandamenti attraversu strumenti in linea gratuiti è software di cuntrollu di voce.
Fila di messagi (MQUEUE): Implementa file di messagi POSIX 1003.1b per a cumunicazione inter-processu trà GUI Guider è VIT.
Requisiti di Hardware, Software è Host
categuria | Descrizzione |
---|---|
Hardware | Sicondu i bisogni di u produttu |
Software | Sicondu i bisogni di u produttu |
Host | Sicondu i bisogni di u produttu |
Istruzzioni per l'usu di u produttu
Pre-requisiti
Versione Linux lampeggiante
Per lampà l'EVK cù a versione Linux:
$ ./uuu.exe -b emmc_all .sd-flash_evk imx-image-full-imx93evk.wic
Toolchain cù u Prughjettu Yocto
- Crea un cartulare bin:
$ mkdir ~/bin
- Scaricate u strumentu repo:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
- Aghjunghjite u cartulare bin à a variabile PATH:
$ export PATH=~/bin:$PATH
- Ricette di clone:
$ 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
- Per custruisce è cunfigurà:
$ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy
Domande Frequenti (FAQ)
Q: Cosa hè VIT?
A: VIT significa Voice Intelligent Technology, un strumentu di NXP per definisce e parole di sveglia è cumandamenti utilizendu strumenti in linea è software di cuntrollu di voce.
Q: Cos'è GUI Guider?
A: GUI Guider hè un strumentu di sviluppu di l'interfaccia d'utilizatore da NXP chì usa a biblioteca grafica LVGL per creà display di alta qualità cù vari widgets, animazioni è stili.
L'infurmazione di u documentu
infurmazione | Cuntinutu |
Parole chjave | AN14270, VIT, ricunniscenza vocale, cumunicazione inter-processu (IPC), fila di messagi, GUI Guider |
Astrattu | Questa nota di l'applicazione esplora a pussibilità di integrà a voce creendu un ponte trà una tecnulugia di ricunniscenza vocale, cum'è VIT, è u creatore di l'interfaccia GUI Guider. |
Introduzione
L'interfaccia d'utilizatore hà limitatu l'usu di l'utillita GUI Guider. Avè una interazzione solu attraversu un mouse o touchscreen pò esse abbastanza per certi casi d'usu. In ogni casu, qualchì volta u casu d'usu richiede di andà oltre e so limitazioni. Stu documentu esplora a pussibilità di integrà a voce creendu un ponte trà una tecnulugia di ricunniscenza vocale, cum'è VIT, è u creatore di l'interfaccia GUI Guider. Aduprà un modu universale per ligà tutti i cumandamenti di ricunniscenza di voce è una wakeword à qualsiasi interazzione creata da GUI Guider.
Overview
Per stabilisce a cumunicazione trà GUI Guider è i cumandamenti di a tecnulugia VIT, riferite à a Sezione 8. A cumunicazione hè custruita cù un codice creatu cum'è manipulatore, chì ascolta è permette di simule avvenimenti in a GUI per creà l'interazzione.
Guider GUI
GUI Guider hè un strumentu di sviluppu di l'interfaccia d'utilizatore da NXP chì furnisce una opzione rapida per creà una visualizazione di alta qualità utilizendu a biblioteca grafica LVGL. Utiliza una varietà diversa di widgets, animazioni è stili, cù diverse cunfigurazioni di trigger è persunalizazione cù a pussibilità di ùn codificà micca. Per più infurmazione nantu à GUI Guider, riferite à GUI Guider v1.6.1 User Guide (document GUIGUIDERUG).
Tecnulugia intelligente di voce
Voice Intelligent Technology (VIT) hè una strumentu creata da NXP per definisce e parole di sveglia è cumandamenti utilizendu strumenti gratuiti in linea, libreria è pacchettu di software di cuntrollu di voce. MCUXpresso pò usà per i micro-controllers o Linux BSP pò aduprà per i micro-processori.
Coda di messagi
A fila di messagi (MQUEUE) hè un gestore chì implementa u formatu POSIX 1003.1b file di messagi. Hè adupratu cum'è cumunicazione inter-processu (IPC) per creà u ponte trà GUI Guider è VIT. Scambia dati in forma di missaghji, mandendu per via VIT è eseguisce a gestione cù u script
cumandante_handler.
Requisiti di hardware, software è host
A Tabella 1 furnisce i dettagli di u hardware, u software è l'ospite necessarii per aduprà VIT è GUI Guider.
Table 1. Hardware, software, è host utilizatu
categuria | Descrizzione |
Hardware | • i.MX 93 EVK
• Alimentazione: Alimentazione USB Type-C 45 W (5 V/3 A) • USB Type-C male à USB Type-A male cable: assemblea, USB 3.0 cumpatibile • Adattatore LVDSL è cable HDMI o pannellu LCD LVCD DY1212W-4856 • Micru internu i.MX 93 |
Software | • Versione Linux BSP: L6.1.55_2.2.0
• GUI Guider v1.6.1 versione in avanti • Toolchain 6.1-Langdale |
Host | • X86_64 Linux Ubuntu 20.04.6 LTS |
Pre-requisiti
Questa sezione descrive l'installazione di diversi strumenti necessarii.
Versione Linux lampeggiante
Prima di seguità i passi sottu, cambia a cunfigurazione di boot à u modu di scaricamentu è cunnette un USB attraversu l'ospite. Per più infurmazione, vede i.MX Linux User's Guide (document IMXLUG).
Per lampà l'EVK, fate i seguenti passi:
- Scaricate l'ultima versione di l'immagine NXP Linux BSP per i.MX 93 (L6.1.55_2.2.0 o l'ultima).
- Per lampà l'EVK, scaricate u recente UUU: https://github.com/nxp-imx/mfgtools/releases.
- Cunnette l'EVK cù l'ospite usendu u portu EVK USB1.
- Utilizendu l'imx-image-full, mette i dui prugrammi in u stessu file è lampà l'EVK cù u cumandimu seguitu:
In alternativa, utilizate solu l'imaghjini per lampassi l'EVK:
Nota: Assicuratevi di verificà i pins di boot.
Toolchain cù u prughjettu Yocto
U prughjettu Yocto hè una cullaburazione open source chì aiuta à creà sistemi persunalizati basati in Linux. Yocto crea l'imaghjina utilizata da i.MX.
Assicuratevi chì a macchina di l'ospiti hà un toolkit di sviluppu di l'applicazioni (ADT) o toolchain per avè u stessu ambiente cum'è l'EVK. Assicuratevi chì hè capace di cumpilà applicazioni per u bordu di destinazione. Per uttene u toolchain currettu, riferite à "section 4.5.12" in i.MX Linux Users Guide (document IMXLUG) è "section 4" in i.MX Yocto Project Users Guide (document IXLXYOCTOUG).
Per uttene u toolchain in a macchina host da l'ambiente Yocto, fate i seguenti passi:
- Crea un cartulare bin in u cartulare di casa:
- Assicuratevi chì u cartulare ~/bin hè in a variabile PATH.
- Clona e ricette per aduprà in u repository:
- Per custruisce, cunfigurà cusì:
- Per generà a catena di strumenti, cunfigurà un ambiente standalone senza u Prughjettu Yocto cum'è seguente:
Guider GUI
Questa sezione spiega nantu à GUI Guider è cumu utilizà i principii per creà un prughjettu basatu annantu à questu strumentu. Spiega ancu nantu à e diverse caratteristiche per aduprà è piglià avanzàtage di sti caratteristiche.
Gui Guider widgets è avvenimenti
Quandu l'utilizatore crea un prughjettu in GUI Guider, l'usu di diversi widgets hè assignatu cum'è un oggettu generatu automaticamente. Stu oggettu hà proprietà diffirenti; unu di elli hè l'Eventi. Sicondu u widget, l'avvenimenti ponu avè diversi triggers, è ciò chì succede dipende da u mira. Per esample, Figura 1 mostra ciò chì succedi s'ellu un buttone mira u screnu à avè solu l'azzione "Load screen".
Questi ogetti ponu esse truvati in u percorsu /generated/gui-guider.h. U script command_handler piglia in avanzutage di l'avvenimenti utilizati da i widgets chì simulanu u trigger.
Per più infurmazione nantu à i widgets è l'avvenimenti, riferite GUI Guider v1.6.1 User Guide (document GUIGUIDERUG).
Inizio rapidu
Per cumincià à travaglià, installate u GUI Guider.
In l'installazione di l'ospite, fate i seguenti passi:
- Scaricate a versione più recente di GUI Guider (1.7.1 o l'ultima).
- Segui i passi per scaricà.
Quì, l 'utilizatore pò sceglie à creà un prughjettu cù ex ufficialiamples o i prughjetti lucali.
Per creà un prughjettu GUI, fate i seguenti passi:
- Open GUI Guider 1.7.1.
- Crea un prughjettu.
- Selezziunà a versione LVGL.
- Per i.MX 93, selezziunate u processore i.MX.
- Sceglite un mudellu. Per stu documentu, sceglite u mudellu "ScreenTransition".
- Sceglite un Nome di Prughjettu è per creà un prughjettu, cliccate Crea.
- A finestra principale deve esse cumparisce, cum'è mostra in Figura 6.
Creazione di widgets, avvenimenti è triggers
Per creà widgets, avvenimenti è triggers, fate i seguenti passi:
- À a manca di u GUI Guider, cliccate nantu à u buttone, evidenziatu in rossu, duie volte.
- In u risultatu, u buttone espansione per vede tutti i widgets dispunibili.
Ci ponu esse varii widgets cù diverse proprietà. Questa nota di l'applicazione si concentra nantu à u buttone di tipu di widget. Tuttavia, ci ponu esse altri tipi di widgets cù e so limitazioni. Per più infurmazione, riferite à "Dettagli di u widget" in GUI Guider v1.6.1 User Guide (document GUIGUIDERUG). - Aghjunghjite u widget Button trascinendulu à l'UI da a tabulazione widgets.
- Fate un clic right nant'à u Button per e proprietà è cliccate Aggiungi avvenimentu.
- Una finestra si apre chì mostra tutti l'avvenimenti chì u widget pò attivà.
- In seguitu, a finestra mostra tutti l'avvenimenti chì u trigger pò sparà. Questi avvenimenti ponu esse appiicati à schermi, altri widgets, o creanu avvenimenti persunalizati.
- Per questu example, una nova schermu hè caricata. Cliccate u screnu di carica è selezziunate i schermi per esse caricati.
- Per pruvà l'applicazione, utilizate u simulatore integratu cù GUI Guider. Hè utilizatu per selezziunà u buttone dopu è u tipu di simulazione à aduprà. Per questu casu, utilizate un simulatore in C.
- Per carricà a nova pantalla, cliccate nantu à u buttone.
Edificiu per i.MX 93
Per custruisce i.MX 93, fate i seguenti passi:
- Assicuratevi chì a catena di strumenti utilizata da GUI Guider hè stata installata currettamente. Per verificà incruciate, verificate u percorsu
- Da u precedente example, per creà l'applicazione è eseguisce nantu à i.MX 93, selezziunate Prughjettu> Custruì> Yocto da a barra superiore.
- Per verificà u statutu di Project, Binary size, and Log, selezziunate a tabulazione Information à u fondu di l'applicazione. Verificate u log espansione a tabulazione Informazioni.
- U logu furnisce infurmazioni nantu à a custruzzione cumpresa a situazione di u binariu file. Per questu casu, u binariu hè in u percorsu / /build/gui_guider.
- Locate u terminal d'ospite è mandate à l'EVK cù u cumandimu seguitu:
Nota: Per utilizà l'approcciu sopra, hè necessariu chì e macchine, l'ospiti è u target sò in a listessa reta è l'IP di u bordu hè cunnisciutu. - Eseguite u binariu file nantu à l'EVK usendu u cumandimu seguente:
Per esample, utilizendu una schermu LVDS, chì mostra u prughjettu custruitu da GUI Guider, cum'è mostra in Figura 19.
VIT
Questa sezione spiega cumu utilizà VIT standalone è generà u mudellu per ligà cù u GUI Guider. Spiega cumu utilizà l'ospite per generà un mudellu cù e caratteristiche desiderate. Per più infurmazione, riferite à VOICE-INTELLIGENT-TECHNOLOGY.
Crea u mudellu
Per creà u mudellu, fate i seguenti passi:
- Accedi à u VIT websitu: VIT Model Generation Tool
- Cliccate nantu à a tabulazione GENERATE MODEL.
- Selezziunate a piattaforma SW è a versione cum'è "Linux BSP" è "LF6.1.55_2.2.0". Inoltre, selezziunà l'opzioni appiecabili per Device cum'è "i.MX93" è Lingua cum'è "Inglese".
- Aggiungi wakewords, chì agisce cum'è un trigger chì dice à VIT quandu principià à sente un cumandamentu di voce. Quandu una nova wakeword o cumanda hè creata, dumanda à stabilisce u valore per "Sensibilità". Stu paràmetru aumenta u ritmu di ricunniscenza, chì significa chì s'ellu hè un valore pusitivu hè più faciule di detectà, ma pò risultà in più falsi falsi. Invece di u valore negativu utilizatu per evità a cunfusione trà e parolle chjave, mantene u valore di sensibilità cum'è 0. Per esempiuample, quì, a frasa "hey led" hè aghjuntu.
- Aghjunghjite i cumandamenti di voce per esse aduprati è eliminà quelli chì ùn sò micca usati.
- Cliccate u buttone Generate mudellu è aspettate finu à chì u buttone Scaricate u mudellu hè sbloccatu.
- U mudellu hè mandatu à a tabulazione MY MODELS. Per scaricà u mudellu più recente, cliccate nantu à l'icona di scaricamentu.
- Estrai u cartulare zip è salvà u file VIT_Model_en chì cuntene u cartulare VIT_package.
Cumpilazione di VIT voice_ui_app cum'è standalone
Voice_ui_app hè un example creatu per u repository imx-voiceui. Questa applicazione usa u mudellu per detectà e parolle è cumandamenti. Una utilità utilizata da stu documentu hè l'argumentu "notificà". Questu argumentu quandu detecta una wakeword o cumanda, apre un Python file WakeWordNotify o WWCommandNotify cù un argumentu di u sistema utilizendu l'identificatore (ID). Questu ID aiuta à diferenze trà i triggers.
Per creà l'app voice_ui_app nantu à l'ospite è aiutà à assignà à u mudellu precedente creatu, fate i seguenti passi:
- Clone repository VIT inclusa a versione di filiale, usendu u cumandimu seguente:
$ git clone https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0 - Crea una copia di salvezza di l'uriginale file, usendu u cumandimu seguente:
$ cd /imx-voiceui
$ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h - Configurate a toolchain installata prima:
$ source /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
Nota: Aduprate u toolchain creatu da Yocto. - Custruite u vostru prughjettu, usendu u cumandimu seguitu:
$ fà tuttu VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55 - Una volta chì u prughjettu hè custruitu, genera un repertoriu chjamatu liberazione. Copia u file voice_ui_app in questu cartulare à l'EVK:
$ scp release/voice_ui_app root@ :/casa/root
Utilizà u paràmetru -notify
U script chjamatu da voice_ui_app quandu passa a bandiera "-notify", deve esse in a strada /usr/bin/. Aduprate l'attache files à /usr/bin/ è copià questi script à l'EVK.
$ scp WakeWordNotify root@ :/usr/bin/
$ scp WWCommandNotify root@ :/usr/bin/
U files dentru, aduprate l'ID di wakeword / cumandamentu è mandate à traversu a fila di messagi.
Dopu avè copiatu questi files à l'EVK, utilizate u paràmetru "-notify" per implicà chì u files WakeWordNotify, è WWCommandNotify, anu i permessi necessarii. Per aghjunghje nantu à l'EVK, eseguite u cumandimu seguente:
root@imx93evk:~# chmod a+x /usr/bin/WakeWordNotify root@imx93evk:~# chmod a+x /usr/bin/WWCommandNotify
Front-end audio
L'audio front-end (AFE) hè adupratu cum'è un feed per u ricunniscenza di voce VIT. Aiuta à pulisce u rumore è l'eco usendu a fonte è una riferenza di u parlante. Per quessa, u risultatu hè un audio di microfonu unicu canale chjaru chì pò esse usatu per u processu. Per più infurmazione, vede VOICESEEKER.
AFE pò esse truvatu in l'EVK à u percorsu /unit_tests/nxp-afe.
Per preparà è eseguisce u prugramma, seguitate i passi in file TODO.md in nxp-afe:
- Assicuratevi chì u DTB hè imx93-11 × 11-evk.dtb.
- Installa u modulu aloop per supportà AFE:
root@imx93evk:~# sudo modprobe snd-aloop - Crea una copia di salvezza di asound.conf è utilizate l'asound.conf currispundenti per u bordu:
root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf - Cambia u WakeWordEnginge per utilizà u mutore di parole VIT currettamente. Sta cunfigurazione hè in u file /unit_tests/nxp-afe/Config.ini.
- Mudificà a pruprietà WakeWordEngine = VoiceSpot chì usa VoiceSpot cum'è predeterminatu à WakeWordEngine = VIT.
- Per pruvà l'AFE, eseguite voice_ui_app:
root@imx93evk:~# ./voice_ui_app &
Nota: Per questu casu, ùn hè micca necessariu aghjunghje u paràmetru "-notify". - Eseguite l'AFE, usendu u cumandimu seguente:
root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight & - Per determinà se AFE funziona in u fondu, utilizate u cumandamentu &. Per sapè chì altri prugrammi sò in sfondate, utilizate u cumandimu seguitu:
root@imx93evk:~# ps - Per chjude l'AFE o voice_ui_app, utilizate u cumandimu seguente:
root@imx93evk:~# pkill afe
root@imx93evk:~# pkill voice_ui_app
Esecuzione di voice_ui_app senza -notify
- Dopu avè seguitu i passi in TODO.md file, eseguite u voice_ui_app binariu da u terminal in l'EVK. Mostra l'infurmazioni nantu à cumu funziona u VIT.
- Per alimentate l'app voice_ui_app, eseguite l'AFE cù u cumandimu seguente:
root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight & - Dite a parola di sveglia è u cumandamentu di voce è verificate s'ellu funziona cum'è previstu. Mostra a wakeword è u cumandamentu di voce in u terminal cusì:
- Wakeword hà rilevatu 1 HEY NXP StartOffset 16640
- U cumandamentu di voce rilevatu 3 TURN ON
L'applicazione GUI Guider VIT
Comu spiegatu prima, l'applicazione / script command_handler attraversu a notificazione VIT manda l'ID di cumanda è l'ID di wakeword à una fila di messagi cum'è IPC. Dopu cattura questi ID per simulà un avvenimentu in una applicazione GUI-Guider. A figura 26 mostra cumu hè stata eseguita sta cumunicazione.
Nota: Assicuratevi di cunfigurà u gestore per travaglià currettamente cù u mudellu persunalizatu creatu. Queste mudificazioni devenu esse applicate à l'ospite.
Aduprate command_handler per simulà avvenimenti
Per aduprà u command_handler per simulà l'avvenimenti, fate i seguenti passi:
- Aghjunghjite u files command_handler.h è command_handler.c à u prughjettu GUI Guider in u cartulare / /custom/.
- Per currisponde à u mudellu attuale utilizatu, mudificà u command_handler.h cambiendu voice_cmd_t è voice_ww_t.
Nota: Assicuratevi chì u listessu ordine hè utilizatu in u mudellu. - Mudificà a quantità di wakewords è cumandamenti in u file / /custom/command_handler.h:
#define VIT_WW_NUMBER 2
#define VIT_CMD_NUMBER 5 - Inizializza l'interfaccia di cumandamentu in u file / /custom/custom.c. GUI Guider genera questu file automaticamente.
#include "command_handler.h" - A funzione definita cum'è void custom_init (lv_ui *ui) hè dispunibule in u file /
percorso>/custom/custom.c. Sta funzione pò esse mudificata per aghjunghje un codice è u cumandimu inizializzatore start_command_handler() cum'è seguente:
void custom_init (lv_ui *ui)
{
/* Aghjunghjite i vostri codici quì */
start_command_handler();
}
Induve:
U start_command_handler () hè utilizatu per creà un filu chì funziona cum'è un gestore, piglià missaghji mandati da VIT, è eseguisce cumandamenti assignati da command_handler_link (). - Per ligà i VIT wakewords è u cumandamentu cù l'ughjettu è l'avvenimentu, utilizate u cumandimu seguente:
void command_handler_link (voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t event);
Induve:
• U command_handler_link () hè utilizatu per salvà un avvenimentu per simule per l'esekzione VIT.
• L'inputs, voice_ww_t è voice_cmd_t, sò creati in u passu 2 in relazione direttamente cù u mudellu VIT.
• U terzu argumentu, lv_obj_t**, riguarda a creazione di l'ughjettu GUI Guider. Prima, localizza l'ughjettu per esse ligatu. U nomu cunforma cù a struttura dopu _ . Per truvà induve hè definitu, verificate u file generatu da GUI Guider à generated/gui_guider.h. Quì, pudete truvà a struttura dopu cù tutti l'uggetti pussibuli per ligà.
A funzione custom_init(lv_ui *ui) hè aduprata per inizializà à l'iniziu di l'esecuzione di GUI Guider. Sta struttura pò esse aduprata per rapportà cù un ughjettu, sapendu cumu utilizà bè. U puntatore di a struttura data hè *ui, è u puntatore per circà hè lv_obj_t**. Per quessa, hè necessariu di utilizà sta struttura cù u prossimu formatu:
&ui->speed_btn_1
- U quartu argumentu, lv_event_code_t eventu, hè in relazione cù l'avvenimentu chì hà da esse attivatu. Di solitu hà una struttura cum'è questu: LV_EVENT_ . Determina ciò chì deve fà cù l'avvenimentu attivatu attraversu u codice viewer in file events_init.c.
Per esample, u btn_1 creatu in a velocità di u screnu anu sti avvenimenti generati da GUI Guider.
Example
Questa sezione mostra un example di sta implementazione per aghjunghje supportu di voce à u Guider GUI, cambiendu u widget LED è cambiendu trà schermi GUI.
- Utilizendu u mudellu GUI creatu cù u buttone, aghjunghje i widgets. Per esample, aghjunghje un widget LED.
- Aghjunghjite l'avvenimentu pressatu à u btn_1 è per cambià u fondu aghjunghje a cunfigurazione di l'avvenimentu. Per questu casu, u fondu deve esse sceltu cum'è neru per "spegne" u widget LED. Dunque, l'avvenimentu utilizatu hè pressatu> led_1> Fondo neru (#000000).
- Utilizendu u listessu buttone, cunfigurà un avvenimentu per assignà à "accende". Per questu casu, aghjunghje l'avvenimentu liberatu à u btn_1 è aghjunghje rossu à u fondu. Dunque, l'avvenimentu utilizatu hè liberatu> led_1> Sfondo rossu (#ff0000).
- Una volta chì a GUI hè creata, aghjunghje command_handler.c è command_handler.h à u custom / folder.
- Per creà u ligame trà l'avvenimenti è VIT, aghjunghje e seguenti linee in custom_init () in u file in custom/custom.c. Per cambià trà schermi, aghjunghje dui avvenimenti più liendu btn_1 per cambià à a schermu 2.
Induve:- A wakeword HEY_LED è a cumminazione TURN_OFF hè assignata per spegne u LED. In altre parolle, cambiate u fondu à u neru.
- U wakeword HEY_LED è u cumandamentu TURN_ON cumminazione hè assignatu per turnà u LED rossu.
- A wakeword HEY_NXP è a cumminazione NEXT hè assignata per cambià trà schermi usendu l'avvenimentu assignatu tuttu à btn_1, è utilizendu btn_before in a pantalla 2.
- A wakeword HEY_NXP è a cumminazione RETURN di cumanda hè assignata per vultà à a pantalla 1.
- Selezziunà Prughjettu> Custruì> Yocto è custruisce u prugettu.
- Mandatu u novu binariu à l'EVK.
Nota: U logu di l'infurmazioni furnisce u locu binariu.
scp root@ :/casa/root
Pruvazione è cunfigurazione
Quandu u scaricamentu hè finitu, fate i seguenti passi nantu à l'EVK:
- Verificate chì u modulu snd-aloop hè digià caricatu cù lsmod. Se u modulu ùn hè micca truvatu, caricate cù u cumandimu seguitu:
root@imx93evk:~# sudo modprobe snd-aloop - Esegui voice_ui_app usendu u cumandimu seguente:
root@imx93evk:~# ./voice_ui_app -notify &
Induve:- U -notify hè utilizatu per mandà una notificazione à WakeWordNtfy è WWCommandNtfy.
Nota: Ricurdatevi di copià WakeWordNtfy è WWCommandNtfy in usr/bin. - U & hè utilizatu per correre in fondo.
- U -notify hè utilizatu per mandà una notificazione à WakeWordNtfy è WWCommandNtfy.
- Verificate chì u mutore VIT hè stallatu nantu à u Config.ini.
- Eseguite AFE cù libvoiceseekerlight in fondo:
root@imx93evk:~# cd /unit_tests/nxp-afe/
root@imx93evk:~# ./afe libvoiceseekerlight & - Apertura l'applicazione GUI Guider cù u cumandimu seguente:
root@imx93evk:~# ./gui_guider
Finu à stu passu, u screnu LVDS, o HDMI mostra u GUI creatu. - Pruvate aduprà una wakeword previamente assignata è un cumandamentu di voce, per esempiuample, dite "Ehi NXP" è "Apaga". Dopu avè dettu u cumandamentu per u putere off, secondu a callback assignata, GUI Guider realiza una azzione. Per questu example, GUI Guider cambia u culore di fondo per u widget LED.
A Tabella 2 elenca alcune risorse supplementari aduprate per supplementà stu documentu.
Tabella 2. Risorse cunnesse
Risorsa | Link / cumu uttene |
Famiglia di Processori di Applicazioni i.MX 93 - Arm Cortex-A55, Accelerazione ML, MPUNXP Efficiente di Potenza i.MX 93 A1 (i. MX93) | https://www.nxp.com/products/processors-and- microcontrollers/arm-processors/i-mx-applicazioni- processori/i-mx-9-processori/i-mx-93-applicazioni- processore-family-arm-cortex-a55-ml-acceleration-power- efficient-mpu:i.MX93 |
Linux integratu per i Processori di Applicazioni i.MX (IMXLINUX) | http://www.nxp.com/IMXLINUX |
GUI Guider v1.6.1 User Guide (GUIGUIDERUG) | https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf |
Repository VIT i.MX voiceUI | https://github.com/nxp-imx/imx-voiceui |
Nota nantu à u codice fonte in u documentu
Exampu codice mostratu in stu documentu hà i seguenti copyright è licenza BSD-3-Clause:
Copyright 2023-2024 NXP A ridistribuzione è l'utilizazione in forme surghjenti è binari, cù o senza mudificazione, sò permessi, basta chì e seguenti cundizioni sò soddisfatte:
- I redistribuzioni di u codice fonte devenu mantene l'avvisu di copyright sopra, sta lista di cundizioni è a seguente disclaimer.
- Redistribuzioni in forma binaria deve ripruduce l'avvisu di copyright sopra, sta lista di e cundizioni è a seguente disclaimer in a documentazione è / o altri materiali deve esse furnitu cù a distribuzione.
- Nè u nome di u detentore di i diritti d'autore nè i nomi di i so cuntributori ponu esse aduprati per appruvà o prumove prudutti derivati da stu software senza permessu specificu è scrittu.
QUESTU SOFTWARE hè furnitu da i detentori di diritti d'autore è i cuntributori "cum'è" è ogni garanzia espressa o IMPLICITA, INCLUSI, MA NON LIMITATA, E GARANTIE IMPLICITE DI COMMERCIABILITÀ E IDONEITA' PER UN PUBLIC PARTICULARI SONT DISCLAIMED. IN NESSUN CASU U COPYRIGHT O CONTRIBUTORS SERÀ RESPONSABILI PER QUALSIASI DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, ESEMPLARI O CONSEGUENTI (INCLUSU, MA NON LIMITATI, L'ACQUISSIONE DI BEN SOSTITUTI O SERVIZI, PERDITA DI PROFITTI, SERVIZI; OR INTERRUPTION BUSINESS) TUTTAVIA CAUSATA E IN QUALSIASI TEORIA DI RESPONSABILITÀ, SIA IN CONTRATTU, STRICT RESPONSABILITÀ, O TORT (INCLUSU NELLIGENZA O ALTRE) SURGIENDU IN QUALSUNA MANIERA DA L'USU DI STESS SOFTWARE, ANCHE SE A POSSIBILITÀ CONSIGLIATA.
Storia di rivisione
U Tabella 3 riassume i rivisioni di stu documentu.
Document ID | Data di liberazione | Descrizzione |
AN14270 v.1.0 | 16 di maghju di u 2024 | Liberazione publica iniziale |
L'infurmazione legale
Definizioni
Draft - Un statutu di draft nantu à un documentu indica chì u cuntenutu hè sempre sottu re internuview è sottumessu à appruvazioni formale, chì pò esse risultatu in mudificazioni o aghjunte. NXP Semiconductors ùn dà alcuna rapprisintazioni o garanzie in quantu à l'accuratezza o a completezza di l'infurmazioni incluse in una versione bozza di un documentu è ùn hà micca responsabilità per e cunsequenze di l'usu di tali informazioni.
Disclaimers
Garanzia limitata è responsabilità - L'infurmazione in stu documentu hè ritenuta precisa è affidabile. Tuttavia, NXP Semiconductors ùn dà alcuna rapprisintazioni o garanzie, espresse o implicite, in quantu à l'accuratezza o a completezza di tali informazioni è ùn anu micca responsabilità per e cunsequenze di l'usu di tali informazioni. NXP Semiconductors ùn assume micca rispunsabilità per u cuntenutu di stu documentu se furnitu da una fonte d'infurmazioni fora di NXP Semiconductors.
In nessun casu, NXP Semiconductors serà rispunsevule per danni indiretti, incidentali, punitivi, speciali o cunsequenziali (inclusi - senza limitazione - prufitti persi, risparmii persi, interruzioni di l'affari, costi ligati à a rimozione Mor di rimpiazzamentu di qualsiasi prudutti o carichi di rilavorazione) sia. o micca tali danni sò basati in tort (cumpresa negligenza), garanzia, violazione di cuntrattu o qualsiasi altra teoria legale.
Malgradu qualsiasi dannu chì u cliente puderia incorre per qualsiasi ragione, a responsabilità cumulativa è cumulativa di NXP Semiconductors versu u cliente per i prudutti descritti quì serà limitata in cunfurmità cù i Termini è e cundizioni di vendita cummerciale di NXP Semiconductors.
U dirittu di fà cambiamenti - NXP Semiconductors si riserva u dirittu di fà cambiamenti à l'infurmazioni publicate in stu documentu, cumprese senza limitazione specificazioni è descrizzioni di i prudutti, in ogni mumentu è senza avvisu. Stu documentu rimpiazza è rimpiazza tutte l'infurmazioni furnite prima di a publicazione di questu.
Idoneità à l'usu - I prudutti di NXP Semiconductors ùn sò micca cuncepiti, autorizati o garantiti per esse adattati per l'usu in supportu di vita, sistemi o equipaggiamenti critichi per a vita o per a sicurezza, nè in applicazioni induve fallimentu o malfunzionamentu di un pruduttu NXP Semiconductors pò esse ragionevolmente aspettatu. per risultatu in ferite persunale, morte o danni severi à a pruprietà o à l'ambiente. NXP Semiconductors è i so fornitori ùn accettanu alcuna responsabilità per l'inclusione è / o l'usu di i prudutti NXP Semiconductors in tali equipaghji o applicazioni è per quessa, tali inclusioni è / o usu sò à u risicu di u cliente.
Applicazioni - L'applicazioni chì sò descritte quì per qualsiasi di sti prudutti sò solu per scopi illustrativi. NXP Semiconductors ùn face alcuna rappresentanza o garanzia chì tali applicazioni seranu adattate per l'usu specificatu senza più teste o mudificazione.
I clienti sò rispunsevuli di u disignu è u funziunamentu di e so applicazioni è prudutti chì utilizanu i prudutti NXP Semiconductors, è NXP Semiconductors ùn accetta micca responsabilità per qualsiasi assistenza cù applicazioni o cuncepimentu di i prudutti di i clienti. Hè a sola rispunsabilità di u cliente per determinà se u pruduttu NXP Semiconductors hè adattatu è adattatu per l'applicazioni di u cliente è i prudutti pianificati, è ancu per l'applicazione pianificata è l'usu di i clienti di terze parti di u cliente. I Clienti duveranu furnisce un disignu adattatu è salvaguardi operativi per minimizzà i risichi assuciati cù e so applicazioni è prudutti.
NXP Semiconductors ùn accetta alcuna responsabilità in relazione à qualsiasi predefinitu, dannu, costi o prublema chì hè basatu annantu à qualsiasi debule o predefinitu in l'applicazioni o i prudutti di u cliente, o l'applicazione o l'usu da i clienti di terze parti di u cliente. U Cliente hè rispunsevuli di fà tutte e teste necessarie per l'applicazioni è i prudutti di u cliente chì utilizanu i prudutti NXP Semiconductors per evità un difettu di l'applicazioni è i prudutti o di l'applicazione o l'utilizazione da i clienti di terze parti di u cliente. NXP ùn accetta alcuna responsabilità in questu rispettu.
Termini è cundizioni di vendita cummerciale - I prudutti di NXP Semiconductors sò venduti sottumessi à i termini è e cundizioni generali di vendita cummerciale, cum'è publicatu in https://www.nxp.com/profile/terms, à moins qu'il n'en soit autrement accordé dans un accord individuel écrit valide. In casu chì un accordu individuale hè cunclusu solu i termini è e cundizioni di l'accordu rispettivu sò applicati. NXP Semiconductors si oppone espressamente à applicà i termini è e cundizioni generali di u cliente in quantu à l'acquistu di i prudutti NXP Semiconductors da u cliente.
Cuntrolla di l'esportazione - Stu documentu è ancu l'articulu (s) descritti quì ponu esse sottumessi à e regule di cuntrollu di l'esportazione. L'esportazione pò esse bisognu di una autorizazione previa da l'autorità competenti.
Idoneità per l'usu in i prudutti chì ùn sò micca qualificati per l'automobile - A menu chì stu documentu dichjara espressamente chì stu pruduttu specificu NXP Semiconductors hè qualificatu per l'automobile, u pruduttu ùn hè micca adattatu per l'usu di l'automobile. Ùn hè nè qualificatu nè testatu in cunfurmità cù e teste di l'automobile o i requisiti di l'applicazione. NXP Semiconductors ùn accetta alcuna responsabilità per l'inclusione è / o l'usu di prudutti qualificati micca di l'automobile in l'equipaggiu o l'applicazioni di l'automobile.
In l'eventu chì u cliente usa u pruduttu per u disignu è l'usu in l'applicazioni automobilistiche à e specificazioni è i standard di l'automobile, u cliente (a) utilizerà u pruduttu senza a garanzia di u pruduttu di NXP Semiconductors per tali applicazioni, usu è specificazioni automobilistiche, è ( b) ogni volta chì u cliente usa u pruduttu per l'applicazioni automobilistiche al di là di e specificazioni di NXP Semiconductors, tale usu serà solu à u risicu di u cliente, è (c) u cliente indennizza cumplettamente NXP Semiconductors per qualsiasi responsabilità, danni o rivendicazioni di produttu falluti risultanti da u disignu di u cliente è l'usu di u pruduttu per l'applicazioni automobilistiche oltre a garanzia standard di NXP Semiconductors è e specificazioni di produttu di NXP Semiconductors.
Traduzioni - Una versione non-inglese (traduttu) di un documentu, cumprese l'infurmazioni legali in quellu documentu, hè solu per riferimentu. A versione inglese prevalerà in casu di qualsiasi discrepanza trà e versioni tradutte è inglesi.
Sicurezza - U Cliente capisce chì tutti i prudutti NXP ponu esse sughjetti à vulnerabilità micca identificate o ponu sustene standard di sicurezza stabiliti o specificazioni cù limitazioni cunnisciute. U Cliente hè rispunsevule per u disignu è u funziunamentu di e so applicazioni è prudutti in tuttu u so ciclu di vita per riduce l'effettu di queste vulnerabilità nantu à l'applicazioni è i prudutti di u cliente. A rispunsabilità di u Cliente si estende ancu à altre tecnulugia aperte è / o proprietarie supportate da i prudutti NXP per l'usu in l'applicazioni di u cliente. NXP ùn accetta alcuna responsabilità per alcuna vulnerabilità. U Cliente deve M cuntrollà regularmente l'aghjurnamenti di sicurezza da NXP è seguite in modu adattatu.
U Cliente selezziunà i prudutti cù caratteristiche di sicurezza chì rispondenu megliu à e regule, regulamenti è normi di l'applicazione prevista è piglià e decisioni finali di cuncepimentu riguardanti i so prudutti è hè solu rispunsevuli di u rispettu di tutti i requisiti legali, regulatori è di sicurità riguardanti i so prudutti, indipendentamente. di qualsiasi informazione o supportu chì pò esse furnitu da NXP.
NXP hà una Squadra di Risposta à Incidenti di Sicurezza di u Produttu (PSIRT) (accessibile à PSIRT@nxp.com) chì gestisce l'inchiesta, i rapporti è a liberazione di suluzione per e vulnerabilità di sicurezza di i prudutti NXP.
NXP BV - NXP BV ùn hè micca una sucietà operativa è ùn distribuisce o vende prudutti.
Marchi
Avvisu: Tutti i marchi riferiti, i nomi di i prudutti, i nomi di serviziu, è i marchi sò a pruprietà di i so rispettivi pruprietarii.
NXP - a parolla è u logo sò marchi di NXP BV
i.MX - hè una marca di NXP BV
Per piacè esse cuscenti chì avvisi impurtanti riguardanti stu documentu è u pruduttu (s) descritti quì, sò stati inclusi in a sezione "Informazioni legali".
© 2024 NXP BV Tutti i diritti riservati.
Per più infurmazione, visitate: https://www.nxp.com
Data di liberazione: 16 May 2024
Identificatore di u documentu: AN14270
Documenti / Risorse
![]() |
NXP AN14270 Aghjunghjendu Support Voice à GUI Guider [pdfGuida di l'utente AN14270 Aghjunghjenu Supportu Vocale à GUI Guider, AN14270, Aghjunghjendu Support Voice à GUI Guider, à GUI Guider, GUI Guider, Guider |