NXP-LOGO

NXP AN14270 Afegeix suport de veu a GUI Guider

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-PRODUCT

Especificacions

Nom del producte: AN14270 – Addició de suport de veu a GUI Guider per a i.MX 93

Revisió: 1.0

Data: 16 de maig de 2024

Informació del producte

Resum: Aquesta nota d'aplicació explora la integració de la veu combinant la tecnologia de reconeixement de veu (VIT) amb GUI Guider.

Fabricant: NXP Semiconductors

Acabatview

Guia de la GUI: Una eina de desenvolupament d'interfície d'usuari de NXP que utilitza la biblioteca de gràfics LVGL per crear pantalles d'alta qualitat amb diversos ginys, animacions i estils.

Tecnologia intel·ligent de veu (VIT): Una eina de NXP per definir paraules d'activació i ordres mitjançant eines en línia gratuïtes i programari de control de veu.

Cua de missatges (MQUEUE): Implementa cues de missatges POSIX 1003.1b per a la comunicació entre processos entre GUI Guider i VIT.

Requisits de maquinari, programari i amfitrió

Categoria Descripció
Maquinari Segons els requisits del producte
Programari Segons els requisits del producte
Amfitrió Segons els requisits del producte

Instruccions d'ús del producte

Requisits previs

Versió de Linux intermitent

Per flashejar l'EVK amb la versió de Linux:

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

Cadena d'eines amb el projecte Yocto

  1. Creeu una carpeta bin: $ mkdir ~/bin
  2. Descarrega l'eina de repo: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  3. Afegeix la carpeta bin a la variable PATH: $ export PATH=~/bin:$PATH
  4. Receptes de clons: $ 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. Per construir i configurar: $ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy

Preguntes freqüents (FAQ)

Q: Què és VIT?
A: VIT significa Voice Intelligent Technology, una eina de NXP per definir paraules d'activació i ordres mitjançant eines en línia i programari de control de veu.

Q: Què és GUI Guider?
A: GUI Guider és una eina de desenvolupament d'interfície d'usuari de NXP que utilitza la biblioteca de gràfics LVGL per crear pantalles d'alta qualitat amb diversos ginys, animacions i estils.

Informació del document

Informació Contingut
Paraules clau AN14270, VIT, reconeixement de veu, comunicació entre processos (IPC), cua de missatges, guia GUI
Resum Aquesta nota d'aplicació explora la possibilitat d'integrar la veu creant un pont entre una tecnologia de reconeixement de veu, com ara VIT, i el creador d'interfícies GUI Guider.

Introducció

La interfície d'usuari ha limitat l'ús de l'eina GUI Guider. Aconseguir una interacció només mitjançant un ratolí o una pantalla tàctil pot ser suficient per a alguns casos d'ús. Tanmateix, de vegades el cas d'ús requereix anar més enllà de les seves limitacions. Aquest document explora la possibilitat d'integrar la veu creant un pont entre una tecnologia de reconeixement de veu, com ara VIT, i el creador d'interfícies GUI Guider. Utilitza una manera universal d'enllaçar totes les ordres de reconeixement de veu i una paraula d'activació a qualsevol interacció creada per GUI Guider.

Acabatview

Per establir la comunicació entre les ordres de la tecnologia GUI Guider i VIT, consulteu la Secció 8. La comunicació es construeix mitjançant un codi creat com a controlador, que escolta i li permet simular esdeveniments a la GUI per crear la interacció.

Guia GUI
GUI Guider és una eina de desenvolupament d'interfície d'usuari de NXP que ofereix una opció ràpida per crear una pantalla d'alta qualitat mitjançant la biblioteca de gràfics LVGL. Utilitza una varietat diferent de ginys, animacions i estils, amb diferents configuracions de disparador i personalització amb la possibilitat de no codificar. Per obtenir més informació sobre GUI Guider, consulteu la Guia d'usuari de GUI Guider v1.6.1 (document GUIGUIDERUG).

Tecnologia intel·ligent de veu
La tecnologia intel·ligent de veu (VIT) és una eina creada per NXP per definir paraules d'activació i ordres mitjançant eines en línia gratuïtes, biblioteca i paquet de programari de control de veu. MCUXpresso el pot utilitzar per a microcontroladors o Linux BSP el pot utilitzar per a microprocessadors.

Cua de missatges
La cua de missatges (MQUEUE) és un gestor que implementa les cues de missatges de format POSIX 1003.1b. S'utilitza com a comunicació entre processos (IPC) per crear el pont entre GUI Guider i VIT. Intercanvia dades en forma de missatges, enviant-les a través de VIT i realitzant la gestió amb el guió
gestor_de_comandes.

Requisits de maquinari, programari i host

La taula 1 proporciona detalls del maquinari, el programari i l'amfitrió necessaris per utilitzar VIT i GUI Guider.

Taula 1. Maquinari, programari i host utilitzats

Categoria Descripció
Maquinari • i.MX 93 EVK

• Font d'alimentació: font d'alimentació USB tipus C de 45 W (5 V/3 A)

• Cable USB tipus C mascle a USB tipus A mascle: muntatge, compatible amb USB 3.0

• Adaptador LVDSL i cable HDMI o panell LCD LVCD DY1212W-4856

• Micròfon intern i.MX 93

Programari • Versió de Linux BSP: L6.1.55_2.2.0

• Versió de GUI Guider v1.6.1 en endavant

• Cadena d'eines 6.1-Langdale

Amfitrió • X86_64 Linux Ubuntu 20.04.6 LTS

Requisits previs

En aquesta secció es descriu la instal·lació de les diferents eines necessàries.

Versió de Linux intermitent

Abans de seguir els passos següents, canvieu la configuració d'arrencada al mode de descàrrega i connecteu un USB a través de l'amfitrió. Per a més informació, consulteu la Guia de l'usuari i.MX Linux (document IMXLUG).

Per flashejar l'EVK, seguiu els passos següents:

  1. Baixeu la versió recent d'imatge NXP Linux BSP per a i.MX 93 (L6.1.55_2.2.0 o més recent).
  2. Per flashejar l'EVK, descarregueu el recent UUU: https://github.com/nxp-imx/mfgtools/releases.
  3. Connecteu l'EVK amb l'amfitrió mitjançant el port EVK USB1.
  4. Utilitzant l'imx-image-full, col·loqueu els dos programes al mateix file i flasheu l'EVK amb l'ordre següent:

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (1)

Alternativament, utilitzeu només la imatge per flashejar l'EVK:

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (2)

Nota: Assegureu-vos de comprovar els pins d'arrencada.

Cadena d'eines amb projecte Yocto
El projecte Yocto és una col·laboració de codi obert que ajuda a crear sistemes personalitzats basats en Linux. Yocto crea la imatge utilitzada per i.MX.
Assegureu-vos que la màquina amfitrió tingui un conjunt d'eines de desenvolupament d'aplicacions (ADT) o una cadena d'eines per tenir el mateix entorn que l'EVK. Assegureu-vos que és capaç de compilar aplicacions per a la placa de destinació. Per obtenir la cadena d'eines correcta, consulteu la "secció 4.5.12" de la Guia d'usuaris de i.MX Linux (document IMXLUG) i la "secció 4" de la Guia d'usuaris del projecte i.MX Yocto (document IXLXYOCTOUG).

Per obtenir la cadena d'eines a la màquina host des de l'entorn Yocto, seguiu els passos següents:

  1. Creeu una carpeta bin al directori d'inici:NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (3)
  2. Assegureu-vos que la carpeta ~/bin estigui a la variable PATH.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (4)
  3. Clona les receptes per utilitzar-les al repositori:NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (5)
  4. Per construir, configureu de la següent manera:NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (6)
  5. Per generar la cadena d'eines, configureu un entorn autònom sense el projecte Yocto de la manera següent:NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (7)

Guia GUI

Aquesta secció explica sobre GUI Guider i com utilitzar els conceptes bàsics per crear un projecte basat en aquesta eina. També s'explica sobre les diferents característiques a utilitzar i aprofitartage d'aquestes característiques.

Ginys i esdeveniments de Gui Guider
Quan l'usuari crea un projecte a GUI Guider, l'ús de diferents ginys s'assigna com a objecte generat automàticament. Aquest objecte té propietats diferents; un d'ells és els Esdeveniments. Segons el giny, els esdeveniments poden tenir diferents activadors i el que succeeix depèn de l'objectiu. Per exampLa figura 1 mostra què passa si un botó apunta a la pantalla per tenir només l'acció "Carregar pantalla".

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (8)

Aquests objectes es poden trobar al camí /generated/gui-guider.h. L'script command_handler s'avançatage dels esdeveniments utilitzats pels ginys que simulen el disparador.
Per obtenir més informació sobre ginys i esdeveniments, consulteu la Guia d'usuari de GUI Guider v1.6.1 (document GUIGUIDERUG).

Inici ràpid
Per començar a treballar, instal·leu el GUI Guider.

A la instal·lació de l'amfitrió, seguiu els passos següents:

  1. Baixeu la versió més recent de GUI Guider (1.7.1 o més recent).
  2. Seguiu els passos per descarregar.
    Aquí, l'usuari pot optar per crear un projecte amb examples o els projectes locals.

Per crear un projecte GUI, seguiu els passos següents:

  1. Obriu el Guia de la GUI 1.7.1.
  2. Crea un projecte.
  3. Seleccioneu la versió LVGL.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (9)
  4. Per a i.MX 93, seleccioneu el processador i.MX.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (10)
  5. Seleccioneu una plantilla. Per a aquest document, trieu la plantilla "ScreenTransition".NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (11)
  6. Trieu un nom de projecte i, per crear un projecte, feu clic a Crea.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (12)
  7. La finestra principal ha d'aparèixer, tal com es mostra a la figura 6.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (13)

Creació de ginys, esdeveniments i activadors

Per crear ginys, esdeveniments i activadors, seguiu els passos següents:

  1. A la part esquerra de la Guia de la GUI, feu clic al botó, ressaltat en vermell, dues vegades.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (14)
  2. Com a resultat, el botó s'expandeix per mostrar tots els ginys disponibles.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (15)
    Hi pot haver diversos ginys amb diferents propietats. Aquesta nota de l'aplicació se centra en el botó de tipus de widget. Tanmateix, hi pot haver altres tipus de ginys amb les seves limitacions. Per obtenir més informació, consulteu "Detalls del widget" a la Guia d'usuari de GUI Guider v1.6.1 (document GUIGUIDERUG).
  3. Afegiu el giny del botó arrossegant-lo a la interfície d'usuari des de la pestanya de widgets.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (16)
  4. Feu clic amb el botó dret al botó de les propietats i feu clic a Afegeix un esdeveniment.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (17)
  5. Apareix una finestra que mostra tots els esdeveniments que el giny pot activar.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (18)
  6. A continuació, la finestra mostra tots els esdeveniments que el disparador pot disparar. Aquests esdeveniments es poden aplicar a pantalles, altres ginys o crear esdeveniments personalitzats.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (19)
  7. Per aquest example, es carrega una pantalla nova. Feu clic a la pantalla de càrrega i seleccioneu les pantalles que voleu carregar.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (20)
  8. Per provar l'aplicació, utilitzeu el simulador integrat amb GUI Guider. S'utilitza per seleccionar el botó següent i el tipus de simulació a utilitzar. Per a aquest cas, utilitzeu un simulador en C.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (21)
  9. Per carregar la nova pantalla, feu clic al botó.

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (22)

Edifici per a i.MX 93

Per crear i.MX 93, seguiu els passos següents:

  1. Assegureu-vos que la cadena d'eines utilitzada per GUI Guider s'ha instal·lat correctament. Per fer una verificació creuada, comproveu el camíNXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (23)
  2. De l'anterior example, per crear l'aplicació i executar-la a i.MX 93, seleccioneu Projecte > Construir > Yocto a la barra superior.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (24)
  3. Per comprovar l'estat del projecte, la mida binària i el registre, seleccioneu la pestanya Informació a la part inferior de l'aplicació. Comproveu el registre expandint la pestanya Informació.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (25)
  4. El registre proporciona informació de construcció inclosa la ubicació del binari file. En aquest cas, el binari es troba al camí / /build/gui_guider.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (26)
  5. Localitzeu el terminal amfitrió i envieu-lo a l'EVK mitjançant l'ordre següent:NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (27)
    Nota: Per utilitzar l'enfocament anterior, és necessari que les màquines, l'amfitrió i l'objectiu estiguin a la mateixa xarxa i la IP de la placa sigui coneguda.
  6. Executeu el binari file a l'EVK mitjançant l'ordre següent:NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (28)
    Per example, utilitzant una pantalla LVDS, que mostra el projecte construït per GUI Guider, tal com es mostra a la figura 19.

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (29)

VIT

Aquesta secció explica com utilitzar VIT autònom i generar el model per enllaçar-lo amb el GUI Guider. S'explica com utilitzar l'amfitrió per generar un model amb les característiques desitjades. Per obtenir més informació, consulteu TECNOLOGIA INTEL·LIGENT DE VEU.

Crea el model

Per crear el model, seguiu els passos següents:

  1. Inicieu sessió al VIT weblloc: VIT Model Generation Tool
  2. Feu clic a la pestanya GENERAR MODEL.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (30)
  3. Seleccioneu la plataforma i la versió SW com a "Linux BSP" i "LF6.1.55_2.2.0". A més, seleccioneu les opcions aplicables per al dispositiu com a "i.MX93" i l'idioma com a "anglès".NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (31)
  4. Afegiu paraules d'activació, que actuen com a activador que indica a VIT quan ha de començar a escoltar una ordre de veu. Quan es crea una paraula d'activació o una ordre nova, es demana establir el valor per a "Sensibilitat". Aquest paràmetre augmenta la taxa de reconeixement, la qual cosa significa que si és un valor positiu és més fàcil de detectar però pot provocar més deteccions falses. En lloc del valor negatiu utilitzat per evitar confusions entre paraules clau, manteniu el valor de sensibilitat com a 0. Per exempleampaquí, s'afegeix la frase "hey led".NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (32)
  5. Afegiu les ordres de veu que voleu utilitzar i elimineu les que no s'utilitzen.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (33)
  6. Feu clic al botó Genera model i espereu fins que es desbloquegi el botó Descarrega el model.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (34)
  7. El model s'envia a la pestanya ELS MEUS MODELS. Per descarregar el model més recent, feu clic a la icona de descàrrega.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (35)
  8. Extraieu la carpeta zip i deseu el fitxer file VIT_Model_ca que conté la carpeta VIT_package.

S'està compilant l'aplicació VIT voice_ui_app com a autònoma
Voice_ui_app és un exampfitxer creat per al repositori imx-voiceui. Aquesta aplicació utilitza el model per detectar paraules d'activació i ordres. Una utilitat utilitzada per aquest document és l'argument "notificar". Aquest argument quan detecta una paraula d'activació o una ordre, obre un Python file WakeWordNotify o WWCommandNotify amb un argument del sistema amb l'identificador (ID). Aquest identificador ajuda a diferenciar els desencadenants.

Per crear l'aplicació voice_ui_app a l'amfitrió i ajudar a assignar-la al model anterior creat, seguiu els passos següents:

  1. Clonar el dipòsit VIT inclosa la versió de la branca, utilitzant l'ordre següent:
    $ git clone https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0
  2. Creeu una còpia de seguretat de l'original file, utilitzant l'ordre següent:
    $ cd /imx-voiceui
    $ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h
  3. Configureu la cadena d'eines instal·lada anteriorment:
    $ source /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
    Nota: Utilitzeu la cadena d'eines creada per Yocto.
  4. Creeu el vostre projecte amb l'ordre següent:
    $ fer-ho tot VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55
  5. Un cop construït el projecte, genera un directori anomenat release. Copia el file voice_ui_app en aquest directori a l'EVK:
    $ scp release/voice_ui_app root@ :/home/arrel

Utilitzant el paràmetre -notify
L'script cridat per voice_ui_app quan passa el senyalador "-notify" ha d'estar al camí /usr/bin/. Utilitzeu l'adjunt files a /usr/bin/ i copieu aquests scripts a l'EVK.

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

El files dins, utilitzeu l'identificador de la paraula d'activació/ordre i envieu-lo a través de la cua de missatges.
Després de copiar aquests files a l'EVK, utilitzeu el paràmetre "-notify" per implicar que el files WakeWordNotify i WWCommandNotify tenen els permisos necessaris. Per afegir-lo a l'EVK, executeu l'ordre següent:

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

Front-end d'àudio
El front-end d'àudio (AFE) s'utilitza com a font per al reconeixement de veu VIT. Ajuda a netejar el soroll i l'eco utilitzant la font i una referència de l'altaveu. Per tant, el resultat és un àudio clar del micròfon d'un sol canal que es pot utilitzar per processar. Per obtenir més informació, vegeu VOICESEEKER.
AFE es pot trobar dins de l'EVK al camí /unit_tests/nxp-afe.

Per preparar i executar el programa, seguiu els passos a file TODO.md a nxp-afe:

  1. Assegureu-vos que el DTB sigui imx93-11×11-evk.dtb.
  2. Instal·leu el mòdul aloop per donar suport a AFE:
    root@imx93evk:~# sudo modprobe snd-aloop
  3. Creeu una còpia de seguretat de asound.conf i utilitzeu l'asound.conf corresponent per al tauler:
    root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
    root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf
  4. Canvieu el WakeWordEnginge per utilitzar el motor de paraules VIT correctament. Aquesta configuració es troba dins de file /unit_tests/nxp-afe/Config.ini.
  5. Modifiqueu la propietat WakeWordEngine = VoiceSpot que utilitza VoiceSpot com a predeterminat a WakeWordEngine = VIT.
  6. Per provar l'AFE, executeu voice_ui_app:
    root@imx93evk:~# ./voice_ui_app &
    Nota: En aquest cas, no cal afegir el paràmetre “-notify”.
  7. Executeu l'AFE, utilitzant l'ordre següent:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  8. Per determinar si AFE s'executa en segon pla, utilitzeu l'ordre &. Per saber quins altres programes s'estan executant en segon pla, utilitzeu l'ordre següent:
    root@imx93evk:~# ps
  9. Per tancar l'aplicació AFE o voice_ui_app, utilitzeu l'ordre següent:
    root@imx93evk:~# pkill afe
    root@imx93evk:~# pkill voice_ui_app

S'està executant voice_ui_app sense -notify

  1. Després de seguir els passos del TODO.md file, executeu l'aplicació binari voice_ui_app des del terminal de l'EVK. Mostra informació sobre com s'executa el VIT.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (36)
  2. Per alimentar l'aplicació voice_ui_app, executeu l'AFE amb l'ordre següent:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  3. Digueu la paraula d'activació i l'ordre de veu i comproveu si funciona com s'esperava. Mostra la paraula d'activació i l'ordre de veu al terminal de la següent manera:
    – Wakeword detectat 1 HEY NXP StartOffset 16640
    – S'ha detectat l'ordre de veu 3 ACTIVA

Aplicació GUI Guider VIT

Com s'ha explicat anteriorment, l'aplicació/script command_handler mitjançant la notificació VIT envia l'ID d'ordre i l'ID de la paraula d'activació a una cua de missatges com a IPC. A continuació, captura aquests identificadors per simular un esdeveniment en una aplicació GUI-Guider. La figura 26 mostra com s'ha executat aquesta comunicació.

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (37)

Nota: Assegureu-vos de configurar el controlador perquè funcioni correctament amb el model personalitzat creat. Aquestes modificacions s'han d'aplicar a l'amfitrió.

Utilitzeu command_handler per simular esdeveniments

Per utilitzar el comandament_handler per simular esdeveniments, seguiu els passos següents:

  1. Afegeix el files command_handler.h i command_handler.c al projecte GUI Guider al directori / /personalitzat/.
  2. Perquè coincideixi amb el model actual utilitzat, modifiqueu command_handler.h canviant voice_cmd_t i voice_ww_t.
    Nota: Assegureu-vos que s'utilitza el mateix ordre al model.
  3. Modifiqueu la quantitat de paraules d'activació i ordres al fitxer file / /custom/command_handler.h:
    #define VIT_WW_NUMBER 2
    #define VIT_CMD_NUMBER 5
  4. Inicialitzar la interfície d'ordres al fitxer file / /custom/custom.c. GUI Guider genera això file automàticament.
    #include "command_handler.h"
  5. La funció definida com a void custom_init(lv_ui *ui) està disponible a file /
    camí>/custom/custom.c. Aquesta funció es pot modificar per afegir un codi i l'ordre d'inicialització start_command_handler() de la següent manera:
    void custom_init(lv_ui *ui)
    {
    /* Afegeix els teus codis aquí */
    gestor_de_comandes_inici();
    }
    On:
    El start_command_handler() s'utilitza per crear un fil que s'executa com a controlador, prendre missatges enviats per VIT i executar ordres assignades per command_handler_link().
  6. Per enllaçar les paraules d'activació i l'ordre VIT amb l'objecte i l'esdeveniment, utilitzeu l'ordre següent:
    void command_handler_link(voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t event);
    On:
    • El command_handler_link() s'utilitza per desar un esdeveniment per simular per a l'execució de VIT.
    • Les entrades, voice_ww_t i voice_cmd_t, es creen al pas 2 es relacionen directament amb el model VIT.
    • El tercer argument, lv_obj_t**, es relaciona amb la creació d'objectes de GUI Guider. Primer, localitzeu l'objecte que voleu enllaçar. El nom s'ajusta a l'estructura següent _ . Per trobar on està definit, comproveu file generat per GUI Guider a generated/gui_guider.h. Aquí, podeu trobar la següent estructura amb tots els objectes possibles per enllaçar.

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (39)

La funció custom_init(lv_ui *ui) s'utilitza per inicialitzar-se a l'inici de l'execució de GUI Guider. Aquesta estructura es pot utilitzar per relacionar-lo amb un objecte, sabent utilitzar-lo correctament. El punter de l'estructura donada és *ui, i el punter per cercar és lv_obj_t**. Per tant, cal utilitzar aquesta estructura amb el següent format:

&ui->speed_btn_1

  • El quart argument, l'esdeveniment lv_event_code_t, es relaciona amb l'esdeveniment que s'activarà. Normalment té una estructura com aquesta: LV_EVENT_ . Determina què fer amb l'esdeveniment activat mitjançant el codi vieweh en el file events_init.c.
    Per exampli, el btn_1 creat a la velocitat de la pantalla tenen aquests esdeveniments generats per GUI Guider.

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (40)

Example
Aquesta secció demostra un exampd'aquesta implementació per afegir suport de veu al GUI Guider, alternant el giny LED i canviant entre pantalles GUI.

  1. Utilitzant la plantilla GUI creada amb el botó, afegiu els ginys. Per example, afegiu un giny LED.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (41)
  2. Afegiu l'esdeveniment premut al btn_1 i per canviar el fons afegiu la configuració de l'esdeveniment. En aquest cas, el fons s'ha de seleccionar com a negre per "apagar" el giny LED. Per tant, l'esdeveniment utilitzat es prem > led_1 > Fons negre (#000000).NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (42)
  3. Amb el mateix botó, configureu un esdeveniment per assignar-lo a "activar". En aquest cas, afegiu l'esdeveniment llançat al btn_1 i afegiu vermell al fons. Per tant, l'esdeveniment utilitzat s'allibera > led_1 > Fons vermell (#ff0000).NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (43)
  4. Un cop creada la GUI, afegiu command_handler.c i command_handler.h al personalitzat/carpeta.
  5. Per crear l'enllaç entre esdeveniments i VIT, afegiu les línies següents a custom_init() dins del fitxer file en custom/custom.c. Per canviar entre pantalles, afegiu dos esdeveniments més enllaçant btn_1 per canviar a la pantalla 2.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (44)NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (45)
    On:
    • La combinació de la paraula d'activació HEY_LED i l'ordre TURN_OFF s'assigna per apagar el LED. En altres paraules, canvieu el fons a negre.
    • La paraula d'activació HEY_LED i l'ordre TURN_ON s'assignen per encendre el LED vermell.
    • La combinació de la paraula d'activació HEY_NXP i l'ordre NEXT s'assigna per canviar entre pantalles mitjançant l'esdeveniment assignat tot a btn_1 i utilitzant btn_before a la pantalla 2.
    • La combinació de la paraula activa HEY_NXP i l'ordre RETURN s'assigna per tornar a la pantalla 1.
  6. Seleccioneu Projecte > Construir > Yocto i creeu el projecte.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (46)
  7. S'ha enviat el nou binari a l'EVK.
    Nota: El registre d'informació proporciona la ubicació binària.
    scp arrel@ :/home/arrel

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (47)

Prova i configuració
Un cop finalitzada la descàrrega, realitzeu els passos següents a l'EVK:

  1. Comproveu que el mòdul snd-aloop ja estigui carregat executant lsmod. Si no es troba el mòdul, carregueu-lo amb l'ordre següent:
    root@imx93evk:~# sudo modprobe snd-aloop
  2. Executeu voice_ui_app amb l'ordre següent:
    root@imx93evk:~# ./voice_ui_app -notify &
    On:
    • El -notify s'utilitza per enviar una notificació a WakeWordNtfy i WWCommandNtfy.
      Nota: Recordeu copiar WakeWordNtfy i WWCommandNtfy a usr/bin.
    • El & s'utilitza per executar-se en segon pla.
  3. Verifiqueu que el motor VIT estigui configurat al Config.ini.
  4. Executeu AFE amb libvoiceseekerlight en segon pla:
    root@imx93evk:~# cd /unit_tests/nxp-afe/
    root@imx93evk:~# ./afe libvoiceseekerlight &
  5. Obriu l'aplicació GUI Guider mitjançant l'ordre següent:
    root@imx93evk:~# ./gui_guider
    Fins a aquest pas, la pantalla LVDS o HDMI mostra la GUI creada.NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (48)
  6. Proveu d'utilitzar una paraula d'activació i una ordre de veu assignades prèviament, per exempleample, digues "Hey NXP" i "Apaga". Després de dir l'ordre per apagar, depenent de la devolució de trucada assignada, GUI Guider realitza una acció. Per aquest example, GUI Guider canvia el color de fons del giny LED.

NXP-AN14270-Afegir-suport-de-veu-a-GUI-Guider-FIG- (49)

Recursos relacionats

La taula 2 enumera alguns recursos addicionals utilitzats per complementar aquest document.

Taula 2. Recursos relacionats

Recurs Enllaç/com obtenir
Família de processadors d'aplicacions i.MX 93: Arm Cortex-A55, acceleració ML, MPUNXP d'eficiència energètica i.MX 93 A1 (i. MX93) https://www.nxp.com/products/processors-and- microcontroladors/processadors-de-braç/aplicacions-i-mx- processadors/i-mx-9-processadors/i-mx-93-aplicacions- Família-de-processador-braç-cortex-a55-ml-potència-d'acceleració- eficient-mpu:i.MX93
Linux incrustat per a processadors d'aplicacions i.MX (IMXLINUX) http://www.nxp.com/IMXLINUX
Guia de l'usuari de GUI Guider v1.6.1 (GUIGUIDERUG) https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf
Repositori VIT i.MX voiceUI https://github.com/nxp-imx/imx-voiceui

Nota sobre el codi font del document

ExampEl codi de fitxer que es mostra en aquest document té els següents drets d'autor i llicència BSD-3-Clause:
Copyright 2023-2024 NXP Es permet la redistribució i l'ús en format font i binària, amb o sense modificació, sempre que es compleixin les condicions següents:

  1. Les redistribucions del codi font han de conservar l'avís de drets d'autor anterior, aquesta llista de condicions i l'exempció de responsabilitat següent.
  2. Les redistribucions en forma binària han de reproduir l'avís de drets d'autor anterior, aquesta llista de condicions i l'exempció de responsabilitat següent a la documentació i/o altres materials s'han de proporcionar amb la distribució.
  3. Ni el nom del titular dels drets d’autor ni els noms dels seus col·laboradors es poden utilitzar per avalar o promocionar productes derivats d’aquest programari sense permís previ i per escrit específic.
    AQUEST PROGRAMARI EL PROPORCIONEN ELS TITULARS DELS DRET D'AUTOR I ELS COL·LABORADORS "TAL CUAL" I ES RENUNCIA A QUALSEVOL GARANTIA EXPLÍCITA O IMPLÍCITA, INCLOSA, PERÒ NO LIMITADA A, LES GARANTIES IMPLÍCITES DE COMERCIABILITAT I IDONEIDAD PER A UN FINS PARTICULAR. EN CAP CAS EL TITULAR DEL DRET D'AUTOR O ELS COL·LABORADORS SERÀ RESPONSABLES DE CAP DANYS DIRECTS, INDIRECTS, INCIDENTALS, ESPECIALS, EXEMPLARS O CONSEQUENTLS (INCLOSOS, PERÒ NO LIMITAR-SE A, LA ADQUISICIÓ DE BÉNS O SERVEIS SUBSTITUTS, PÈRDUA DE DADES, UTILITZACIÓ DE DADES; O INTERRUPCIÓ DE L'EMPRESA) SIGUI QUE S'HA CAUSAT I SOBRE QUALSEVOL TEORIA DE RESPONSABILITAT, JA SIGUI AMB CONTRACTE, RESPONSABILITAT ESTRICTA O DOLT (INCLOSA LA NEGLIGÈNCIA O ALTRE MANERA) SORRIJADA DE QUALSEVOL MANERA DE L'ÚS D'AQUEST PROGRAMARI, FINS I tot SI S'AVISA.

Historial de revisions
La taula 3 resumeix les revisions d'aquest document.

ID del document Data d'estrena Descripció
AN14270 v.1.0 16 de maig de 2024 Publicació pública inicial

Informació legal

Definicions
Esborrany: l'estat d'esborrany d'un document indica que el contingut encara es troba sota revisió internaview i subjecte a aprovació formal, que pot donar lloc a modificacions o addicions. NXP Semiconductors no ofereix cap representació ni garantia sobre l'exactitud o la integritat de la informació inclosa en una versió esborrany d'un document i no serà responsable de les conseqüències de l'ús d'aquesta informació.

Exempcions de responsabilitat
Garantia i responsabilitat limitades — Es considera que la informació d'aquest document és precisa i fiable. Tanmateix, NXP Semiconductors no ofereix cap representació ni garantia, expressa o implícita, sobre l'exactitud o la integritat d'aquesta informació i no tindrà cap responsabilitat per les conseqüències de l'ús d'aquesta informació. NXP Semiconductors no assumeix cap responsabilitat pel contingut d'aquest document si el proporciona una font d'informació fora de NXP Semiconductors.
En cap cas, NXP Semiconductors serà responsable de cap dany indirecte, incidental, punitiu, especial o conseqüent (incloent, sense limitació, la pèrdua de guanys, la pèrdua d'estalvi, la interrupció del negoci, els costos relacionats amb l'eliminació de la substitució de qualsevol producte o els càrrecs de reelaboració), tant si o no, aquests danys es basen en danys (inclosa negligència), garantia, incompliment de contracte o qualsevol altra teoria legal.
Sense perjudici de qualsevol dany en què el client pugui incórrer per qualsevol motiu, la responsabilitat acumulada i acumulada de NXP Semiconductors envers el client pels productes aquí descrits es limitarà d'acord amb els Termes i condicions de venda comercial de NXP Semiconductors.

Dret a fer canvis — NXP Semiconductors es reserva el dret de fer canvis a la informació publicada en aquest document, incloses, entre altres, especificacions i descripcions de productes, en qualsevol moment i sense previ avís. Aquest document substitueix i substitueix tota la informació subministrada abans de la seva publicació.
Idoneïtat per al seu ús: els productes NXP Semiconductors no estan dissenyats, autoritzats o garantits perquè siguin adequats per al seu ús en sistemes o equips crítics per a la vida o per a la seguretat, ni en aplicacions on es pugui esperar raonablement el fracàs o el mal funcionament d'un producte NXP Semiconductors. provocar danys personals, mort o danys greus a la propietat o al medi ambient. NXP Semiconductors i els seus proveïdors no accepten cap responsabilitat per la inclusió i/o l'ús dels productes de NXP Semiconductors en aquests equips o aplicacions i, per tant, aquesta inclusió i/o ús corre pel propi risc del client.

Aplicacions: les aplicacions que es descriuen aquí per a qualsevol d'aquests productes només tenen finalitats il·lustratives. NXP Semiconductors no fa cap representació ni garantia que aquestes aplicacions siguin adequades per a l'ús especificat sense més proves o modificacions.

Els clients són responsables del disseny i el funcionament de les seves aplicacions i productes que utilitzen els productes de NXP Semiconductors, i NXP Semiconductors no assumeix cap responsabilitat per cap assistència amb les aplicacions o el disseny del producte del client. És responsabilitat exclusiva del client determinar si el producte NXP Semiconductors és adequat i apte per a les aplicacions del client i els productes previstos, així com per a l'aplicació i l'ús planificats dels clients de tercers del client. Els clients haurien de proporcionar les garanties de disseny i funcionament adequades per minimitzar els riscos associats amb les seves aplicacions i productes.

NXP Semiconductors no accepta cap responsabilitat relacionada amb cap defecte, dany, cost o problema que es basen en qualsevol debilitat o defecte en les aplicacions o productes del client, o l'aplicació o l'ús per part dels clients tercers del client. El client és responsable de fer totes les proves necessàries per a les aplicacions i els productes del client que utilitzen els productes de NXP Semiconductors per tal d'evitar un defecte de les aplicacions i els productes o de l'aplicació o l'ús per part dels clients de tercers del client. NXP no accepta cap responsabilitat en aquest sentit.

Termes i condicions de venda comercial: els productes de NXP Semiconductors es venen subjectes als termes i condicions generals de venda comercial, tal com es publiquen a https://www.nxp.com/profile/terms, tret que s'acordi el contrari en un acord individual escrit vàlid. En cas que es conclogui un acord individual, només s'aplicaran els termes i condicions del conveni respectiu. NXP Semiconductors s'oposa expressament a l'aplicació dels termes i condicions generals del client pel que fa a la compra dels productes de NXP Semiconductors per part del client.

Control d'exportació: aquest document, així com els articles aquí descrits, poden estar subjectes a les regulacions de control d'exportacions. L'exportació pot requerir una autorització prèvia de les autoritats competents.
Idoneïtat per al seu ús en productes no qualificats per a automoció: tret que aquest document indiqui expressament que aquest producte específic de NXP Semiconductors està qualificat per a automoció, el producte no és adequat per a ús automotriu. No està qualificat ni provat d'acord amb les proves d'automoció o els requisits d'aplicació. NXP Semiconductors no assumeix cap responsabilitat per la inclusió i/o l'ús de productes qualificats no per a automoció en equips o aplicacions d'automoció.

En el cas que el client utilitzi el producte per dissenyar-lo i utilitzar-lo en aplicacions d'automoció segons les especificacions i estàndards d'automoció, el client (a) ha d'utilitzar el producte sense la garantia de NXP Semiconductors del producte per a aquestes aplicacions, ús i especificacions d'automoció, i ( b) sempre que el client utilitzi el producte per a aplicacions d'automoció més enllà de les especificacions de NXP Semiconductors, aquest ús serà exclusivament per compte del client, i (c) el client indemnitzarà totalment NXP Semiconductors per qualsevol responsabilitat, dany o reclamació de producte fallida derivada del disseny i l'ús del client. el producte per a aplicacions d'automoció més enllà de la garantia estàndard de NXP Semiconductors i les especificacions de producte de NXP Semiconductors.

Traduccions: una versió no anglesa (traduïda) d'un document, inclosa la informació legal d'aquest document, només té caràcter de referència. La versió anglesa prevaldrà en cas de discrepància entre la versió traduïda i la versió anglesa.

Seguretat: el client entén que tots els productes NXP poden estar subjectes a vulnerabilitats no identificades o poden suportar estàndards o especificacions de seguretat establertes amb limitacions conegudes. El client és responsable del disseny i el funcionament de les seves aplicacions i productes al llarg dels seus cicles de vida per reduir l'efecte d'aquestes vulnerabilitats en les aplicacions i productes del client. La responsabilitat del client també s'estén a altres tecnologies obertes i/o patentades suportades pels productes NXP per utilitzar-les a les aplicacions del client. NXP no assumeix cap responsabilitat per cap vulnerabilitat. El client hauria de comprovar regularment les actualitzacions de seguretat de NXP i fer un seguiment adequat.
El client ha de seleccionar productes amb característiques de seguretat que compleixin millor les normes, regulacions i estàndards de l'aplicació prevista i prendre les decisions últimes de disseny sobre els seus productes i és l'únic responsable del compliment de tots els requisits legals, reglamentaris i de seguretat relacionats amb els seus productes, independentment de de qualsevol informació o suport que pugui proporcionar NXP.

NXP té un equip de resposta a incidents de seguretat del producte (PSIRT) (podeu accedir a PSIRT@nxp.com) que gestiona la investigació, els informes i el llançament de solucions a les vulnerabilitats de seguretat dels productes NXP.
NXP B.V. — NXP B.V. no és una empresa operativa i no distribueix ni ven productes.

Marques comercials

Avís: Totes les marques de referència, noms de productes, noms de serveis i marques comercials són propietat dels seus respectius propietaris.

NXP: la marca verbal i el logotip són marques comercials de NXP BV
i.MX: és una marca comercial de NXP BV

Tingueu en compte que a la secció "Informació legal" s'han inclòs avisos importants sobre aquest document i els productes aquí descrits.
© 2024 NXP BV Tots els drets reservats.
Per a més informació, visiteu: https://www.nxp.com

Data de publicació: 16 de maig de 2024
Identificador del document: AN14270

Documents/Recursos

NXP AN14270 Afegeix suport de veu a GUI Guider [pdfGuia de l'usuari
AN14270 Addició de suport de veu a GUI Guider, AN14270, Addició de suport de veu a GUI Guider, GUI Guider, GUI Guider, Guider

Referències

Deixa un comentari

La teva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats *