NXP-LOGO

NXP AN14270 Додавање гласовна поддршка во GUI Guider

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

Спецификации

Име на производ: AN14270 – Додавање гласовна поддршка во GUI Guider за i.MX 93

Ревизија: 1.0

Датум: 16 мај 2024 година

Информации за производот

Апстракт: Оваа белешка за апликација го истражува интегрирањето на гласот преку премостување на технологијата за препознавање говор (VIT) со GUI Guider.

Производител: NXP Полупроводници

Во текот наview

Водич за GUI: Алатка за развој на кориснички интерфејс од NXP која користи графичка библиотека LVGL за да создаде висококвалитетни прикази со различни графички контроли, анимации и стилови.

Интелигентна технологија за глас (VIT): Алатка на NXP за дефинирање будни зборови и команди преку бесплатни онлајн алатки и софтвер за гласовна контрола.

Ред за пораки (MQUEUE): Имплементира редици за пораки POSIX 1003.1b за меѓупроцесна комуникација помеѓу GUI Guider и VIT.

Барања за хардвер, софтвер и домаќин

Категорија Опис
Хардвер Според барањата на производот
Софтвер Според барањата на производот
Домаќин Според барањата на производот

Упатство за употреба на производот

Предуслови

Трепка верзија на Linux

За да трепкате EVK со верзија на Linux:

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

Ланец со алатки со Yocto Project

  1. Креирај папка за ѓубре: $ mkdir ~/bin
  2. Преземете ја алатката за репо: $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
  3. Додадете ја папката за ѓубре во променливата PATH: $ export PATH=~/bin:$PATH
  4. Рецепти за клонирање: $ 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. За да изградите и конфигурирате: $ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy

Најчесто поставувани прашања (ЧПП)

Q: Што е VIT?
A: VIT е кратенка за Voice Intelligent Technology, алатка на NXP за дефинирање на будни зборови и команди користејќи онлајн алатки и софтвер за гласовна контрола.

Q: Што е GUI Guider?
A: GUI Guider е алатка за развој на кориснички интерфејс од NXP која користи графичка библиотека LVGL за да создаде висококвалитетни прикази со различни графички контроли, анимации и стилови.

Информации за документот

Информации Содржина
Клучни зборови AN14270, VIT, препознавање говор, меѓупроцесна комуникација (IPC), редица пораки, GUI водич
Апстракт Оваа белешка за апликација ја истражува можноста за интегрирање на гласот преку создавање мост помеѓу технологијата за препознавање говор, како што е VIT, и GUI Guider за креатор на интерфејс.

Вовед

Корисничкиот интерфејс ја ограничи употребата на алатката GUI Guider. Доволна е интеракција само преку глушец или екран на допир за некои случаи. Меѓутоа, понекогаш случајот на употреба бара да се оди подалеку од неговите ограничувања. Овој документ ја истражува можноста за интегрирање на гласот преку создавање мост помеѓу технологијата за препознавање говор, како што е VIT, и GUI Guider за креатор на интерфејс. Користи универзален начин за поврзување на сите команди за препознавање глас и буден збор со која било интеракција создадена од GUI Guider.

Во текот наview

За да ја поставите комуникацијата помеѓу командите на GUI Guider и VIT технологијата, погледнете во Дел 8. Комуникацијата се гради со користење на код создаден како управувач, кој слуша и му овозможува да симулира настани во GUI за да ја создаде интеракцијата.

Водич за GUI
GUI Guider е алатка за развој на кориснички интерфејс од NXP која обезбедува брза опција за создавање висококвалитетен приказ користејќи ја графичката библиотека LVGL. Користи различна разновидност на графички контроли, анимации и стилови, со различни конфигурации на активирањето и прилагодување со можност за некодирање. За повеќе информации за GUI Guider, погледнете во GUI Guider v1.6.1 User Guider (документ GUIGUIDERUG).

Интелигентна технологија со глас
Voice Intelligent Technology (VIT) е алатка создадена од NXP за дефинирање на будни зборови и команди користејќи бесплатни онлајн алатки, библиотека и софтверски пакет за контрола на гласот. MCUXpresso може да го користи за микро-контролери или Linux BSP може да го користи за микро-процесори.

Ред за пораки
Редици за пораки (MQUEUE) е менаџер кој го имплементира форматот на редици за пораки POSIX 1003.1b. Се користи како меѓупроцесна комуникација (IPC) за да се создаде мост помеѓу GUI Guider и VIT. Разменува податоци во форма на пораки, ги испраќа преку VIT и врши управување со скриптата
команда_ракувач.

Барања за хардвер, софтвер и домаќин

Табела 1 дава детали за хардверот, софтверот и хостот потребни за користење на VIT и GUI Guider.

Табела 1. Користени хардвер, софтвер и домаќин

Категорија Опис
Хардвер • i.MX 93 EVK

• Напојување: USB Type-C 45 W напојување за испорака (5 V/3 A)

• USB Type-C машки кабел до USB Type-A машки кабел: склопување, компатибилен со USB 3.0

• LVDSL адаптер и HDMI кабел или DY1212W-4856 LVCD LCD панел

• Внатрешен микрофон i.MX 93

Софтвер • верзија на Linux BSP: L6.1.55_2.2.0

• GUI Guider v1.6.1 верзија понатаму

• Ланец со алатки 6.1-Langdale

Домаќин • X86_64 Linux Ubuntu 20.04.6 LTS

Предуслови

Овој дел ја опишува инсталацијата на потребните различни алатки.

Трепка верзија на Linux

Пред да ги следите чекорите подолу, сменете ја конфигурацијата за подигање во режим за преземање и поврзете USB преку домаќинот. За повеќе информации, погледнете го упатството за корисникот i.MX Linux (документ IMXLUG).

За да трепкате EVK, направете ги следниве чекори:

  1. Преземете го неодамнешното издание на слики NXP Linux BSP за i.MX 93 (L6.1.55_2.2.0 или најново).
  2. За да трепкате EVK, преземете го неодамнешниот UUU: https://github.com/nxp-imx/mfgtools/releases.
  3. Поврзете го EVK со домаќинот користејќи EVK порта USB1.
  4. Користејќи го imx-image-full, поставете ги двете програми на истото file и трепкајте го EVK користејќи ја следнава команда:

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

Алтернативно, користете ја само сликата за трепкање на EVK:

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

Забелешка: Погрижете се да ги проверите игличките за багажникот.

Ланец со алатки со проектот Yocto
Yocto проектот е соработка со отворен код што помага да се создадат сопствени системи базирани на Linux. Yocto ја креира сликата што ја користи i.MX.
Осигурете се дека машината-домаќин има комплет алатки за развој на апликации (ADT) или синџир со алатки за да ја има истата околина како EVK. Осигурајте се дека е во можност да составува апликации за целната табла. За да го добиете точниот синџир на алатки, погледнете во „дел 4.5.12“ во Упатството за корисници на i.MX Linux (документ IMXLUG) и „дел 4“ во Упатството за корисници на проектот i.MX Yocto (документ IMXLXYOCTOUG).

За да го добиете синџирот со алатки на машината домаќин од околината Yocto, направете ги следниве чекори:

  1. Креирајте папка за ѓубре во домашниот директориум:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (3)
  2. Проверете дали папката ~/bin е во променливата PATH.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (4)
  3. Клонирајте ги рецептите што ќе ги користите во складиштето:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (5)
  4. За да изградите, конфигурирајте на следниов начин:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (6)
  5. За да го генерирате синџирот со алатки, поставете самостојна средина без проектот Yocto како што следува:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (7)

Водич за GUI

Овој дел објаснува за GUI Guider и како да ги користите основите за да креирате проект заснован на оваа алатка. Исто така, објаснува за различните карактеристики што треба да се користат и да се преземат напредtagе од тие карактеристики.

Додатоци и настани на Gui Guider
Кога корисникот создава проект во GUI Guider, употребата на различни графички контроли се доделува како објект кој се генерира автоматски. Овој објект има различни својства; еден од нив е Настаните. Во зависност од графичката контрола, настаните може да имаат различни предизвикувачи, а што ќе се случи зависи од целта. За прample, Слика 1 покажува што се случува ако копче го насочува екранот да го има само дејството „Load screen“.

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

Овие предмети може да се најдат на патеката /generated/gui-guider.h. Скриптата command_handler зема advantagд од настаните што ги користат виџетите што го симулираат активирањето.
За повеќе информации за графичките контроли и настани, погледнете го Упатството за користење GUI Guider v1.6.1 (документ GUIGUIDERUG).

Брз почеток
За да започнете со работа, инсталирајте го GUI Guider.

При инсталацијата на домаќинот, извршете ги следниве чекори:

  1. Преземете ја најновата верзија на GUI Guider (1.7.1 или најнова).
  2. Следете ги чекорите за преземање.
    Овде, корисникот може да избере да креира проект со официјален прampлес или локалните проекти.

За да креирате GUI проект, извршете ги следниве чекори:

  1. Отворете го GUI Guider 1.7.1.
  2. Направете проект.
  3. Изберете ја верзијата LVGL.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (9)
  4. За i.MX 93, изберете го процесорот i.MX.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (10)
  5. Изберете шаблон. За овој документ, изберете го шаблонот „ScreenTransition“.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (11)
  6. Изберете име на проект и за да креирате проект, кликнете Креирај.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (12)
  7. Мора да се појави главниот прозорец, како што е прикажано на Слика 6.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (13)

Креирање виџети, настани и предизвикувачи

За да креирате графички контроли, настани и предизвикувачи, направете ги следниве чекори:

  1. На левата страна на GUI Guider, кликнете на копчето, означено со црвено, два пати.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (14)
  2. Како резултат на тоа, копчето се проширува за да ги прикаже сите достапни виџети.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (15)
    Може да има различни графички контроли со различни својства. Оваа белешка за апликација се фокусира на копчето за тип на графичка контрола. Сепак, може да има и други видови виџети со нивните ограничувања. За повеќе информации, погледнете во „Детали за виџетот“ во Упатството за корисникот GUI Guider v1.6.1 (документ GUIGUIDERUG).
  3. Додајте го графичкиот елемент Копче со влечење на корисничкиот интерфејс од картичката за додатоци.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (16)
  4. Десен-клик на копчето за својствата и кликнете Додај настан.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (17)
  5. Се појавува прозорец кој ги прикажува сите настани што може да ги активира виџетот.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (18)
  6. Следно, прозорецот ги прикажува сите настани што активирањето може да ги активира. Овие настани може да се применат на екрани, други виџети или создавање приспособени настани.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (19)
  7. За оваа ексampле, се вчита нов екран. Кликнете на екранот за вчитување и изберете ги екраните што треба да се вчитаат.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (20)
  8. За да ја тестирате апликацијата, користете го симулаторот интегриран со GUI Guider. Се користи за избор на следното копче и типот на симулација што ќе се користи. За овој случај, користете симулатор во C.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (21)
  9. За да го вчитате новиот екран, кликнете на копчето.

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

Зграда за i.MX 93

За да изградите i.MX 93, извршете ги следниве чекори:

  1. Осигурете се дека синџирот со алатки што го користи GUI Guider е правилно инсталиран. За вкрстена проверка, проверете ја патекатаNXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (23)
  2. Од претходниот ексample, за да ја креирате апликацијата и да ја стартувате на i.MX 93, изберете Project > Build > Yocto од горната лента.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (24)
  3. За да го проверите статусот на проект, бинарна големина и дневник, изберете го табот Информации на дното на апликацијата. Проверете го дневникот со проширување на картичката Информации.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (25)
  4. Дневникот обезбедува информации за зградата вклучувајќи ја и локацијата на бинарното file. За овој случај, бинарното е на патеката / /build/gui_guider.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (26)
  5. Лоцирајте го терминалот на домаќинот и испратете го до EVK користејќи ја следнава команда:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (27)
    Забелешка: За да се користи горенаведениот пристап, неопходно е и машините, домаќинот и целта да се на иста мрежа и да се знае IP на таблата.
  6. Извршете го бинарното file на EVK користејќи ја следнава команда:NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (28)
    За прample, користејќи екран LVDS, кој го прикажува проектот изграден од GUI Guider, како што е прикажано на Слика 19.

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

VIT

Овој дел објаснува како да се користи самостоен VIT и да се генерира моделот за да се поврзе со GUI Guider. Објаснува како да се користи домаќинот за да се генерира модел со саканите карактеристики. За повеќе информации, погледнете во VOICE-INTELIgent-TECHNOLOGY.

Направете го моделот

За да го креирате моделот, извршете ги следниве чекори:

  1. Пријавете се во VIT webсајт: Алатка за генерирање на модели VIT
  2. Кликнете на јазичето ГЕНЕРИРАЈ МОДЕЛ.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (30)
  3. Изберете SW платформа и верзија како „Linux BSP“ и „LF6.1.55_2.2.0“. Исто така, изберете ги применливите опции за Уред како „i.MX93“ и Јазик како „англиски“.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (31)
  4. Додајте будни зборови, кои делуваат како активирач што му кажува на VIT кога да започне да слуша гласовна команда. Кога ќе се креира нов буден збор или команда, бара да се постави вредноста за „Чувствителност“. Овој параметар ја зголемува стапката на препознавање, што значи дека ако е позитивна вредност, полесно е да се открие, но може да резултира со повеќе лажни откривања. Наместо негативната вредност што се користи за да се избегне забуна помеѓу клучните зборови, одржувајте ја вредноста на чувствителноста како 0. На пр.ampле, овде се додава фразата „еј лед“.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (32)
  5. Додадете ги гласовните команди што ќе се користат и отстранете ги оние што не се користат.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (33)
  6. Кликнете на копчето Генерирај модел и почекајте додека не се отклучи копчето Преземи модел.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (34)
  7. Моделот се испраќа во јазичето МОИ МОДЕЛИ. За да го преземете најновиот модел, кликнете на иконата за преземање.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (35)
  8. Извлечете ја папката zip и зачувајте ја file VIT_Model_en што ја содржи папката VIT_package.

Составување VIT voice_ui_app како самостојна
Voice_ui_app е поранешенampсоздадена за складиштето imx-voiceui. Оваа апликација го користи моделот за откривање будни зборови и команди. Корисна алатка што ја користи овој документ е аргументот „notify“. Овој аргумент кога ќе открие буден збор или команда, отвора Пајтон file WakeWordNotify или WWCommandNotify со системски аргумент користејќи го идентификаторот (ID). Овој ID помага да се направи разлика помеѓу предизвикувачите.

За да ја креирате voice_ui_app на домаќинот и да помогнете да ја доделите на претходниот креиран модел, направете ги следните чекори:

  1. Клонирајте го складиштето VIT вклучувајќи ја и верзијата на филијалата, користејќи ја следнава команда:
    $ git клон https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0
  2. Направете резервна копија од оригиналот file, користејќи ја следнава команда:
    $ cd /imx-voiceui
    $ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h
  3. Поставете го претходно инсталираниот синџир со алатки:
    $ извор /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
    Забелешка: Користете го синџирот со алатки создаден од Yocto.
  4. Изградете го вашиот проект, користејќи ја следнава команда:
    $ направи ги сите VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55
  5. Откако ќе се изгради проектот, тој генерира директориум со име ослободување. Копирајте го file voice_ui_app во овој директориум до EVK:
    $ scp release/voice_ui_app root@ :/home/root

Користејќи го параметарот -notify
Скриптата повикана од voice_ui_app при поминување на знамето „-notify“, мора да биде на патеката /usr/bin/. Користете го приложеното files во /usr/bin/ и копирајте ги овие скрипти во EVK.

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

На files внатре, користете го ID-то за будење/команда и испратете го преку редот за пораки.
По копирањето на овие files на EVK, користете го параметарот „-notify“ за да имплицирате дека files WakeWordNotify и WWCommandNotify ги имаат потребните дозволи. За да го додадете на EVK, извршете ја следнава команда:

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

Аудио предниот дел
Аудио предниот дел (AFE) се користи како довод за VIT препознавање глас. Тоа помага да се исчистат шумот и ехото со користење на изворот и референцата на звучникот. Затоа, резултатот е јасно едноканално аудио микрофон што може да се користи за обработка. За повеќе информации, видете VOICESEEKER.
AFE може да се најде во EVK на патеката /unit_tests/nxp-afe.

За да ја подготвите и извршите програмата, следете ги чекорите во file TODO.md во nxp-afe:

  1. Осигурете се дека DTB е imx93-11×11-evk.dtb.
  2. Инсталирајте aloop модул за поддршка на AFE:
    root@imx93evk:~# sudo modprobe snd-aloop
  3. Направете резервна копија на asound.conf и користете ја соодветната asound.conf за таблата:
    root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
    root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf
  4. Променете го WakeWordEnginge за правилно да го користите VIT зборовниот мотор. Оваа конфигурација е внатре во file /unit_tests/nxp-afe/Config.ini.
  5. Изменете го својството WakeWordEngine = VoiceSpot што користи VoiceSpot како стандардно во WakeWordEngine = VIT.
  6. За да го тестирате AFE, извршете voice_ui_app:
    root@imx93evk:~# ./voice_ui_app &
    Забелешка: За овој случај, не е неопходно да се додаде параметарот „-notify“.
  7. Извршете го AFE, користејќи ја следнава команда:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  8. За да одредите дали AFE работи во позадина, користете ја командата &. За да знаете кои други програми работат во позадина, користете ја следнава команда:
    root@imx93evk:~# пс
  9. За да ја затворите AFE или voice_ui_app, користете ја следнава команда:
    root@imx93evk:~# pkill afe
    root@imx93evk:~# pkill voice_ui_app

Извршување на voice_ui_app без -notify

  1. Откако ќе ги следите чекорите во TODO.md file, стартувајте ја бинарната voice_ui_app од терминалот на EVK. Прикажува информации за тоа како работи VIT.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (36)
  2. За да ја нахраните voice_ui_app, извршете го AFE користејќи ја следнава команда:
    root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight &
  3. Кажете ги будни зборови и гласовна команда и проверете дали работи како што се очекува. Ги прикажува будните зборови и гласовната команда во терминалот на следниов начин:
    – Откриен е буден збор 1 HEY NXP StartOffset 16640
    – Откриена гласовна команда 3 ВКЛУЧЕТЕ

GUI Guider VIT апликација

Како што беше објаснето претходно, апликацијата/script command_handler преку известувањето VIT ги испраќа ID на командата и ID на буден збор во редот за пораки како IPC. Потоа ги доловува овие ID за да симулира настан во апликацијата GUI-Guider. Слика 26 покажува како оваа комуникација е извршена.

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

Забелешка: Погрижете се да го конфигурирате управувачот да работи правилно со креираниот сопствен модел. Овие измени мора да се применат на домаќинот.

Користете command_handler за да симулирате настани

За да го користите command_handler за симулирање настани, направете ги следните чекори:

  1. Додадете го files command_handler.h и command_handler.c на проектот GUI Guider во директориумот / /прилагодено/.
  2. За да се совпадне со користениот тековен модел, изменете ја командата command_handler.h со менување на voice_cmd_t и voice_ww_t.
    Забелешка: Погрижете се истиот редослед да се користи во моделот.
  3. Изменете ја количината на будни зборови и команди во file / /custom/command_handler.h:
    #define VIT_WW_NUMBER 2
    #define VIT_CMD_NUMBER 5
  4. Иницијализирајте го командниот интерфејс во file / /custom/custom.c. GUI Guider го генерира ова file автоматски.
    #include „command_handler.h“
  5. Функцијата дефинирана како void custom_init(lv_ui *ui) е достапна во file /
    патека>/custom/custom.c. Оваа функција може да се измени за да се додаде код и командата за иницијализатор start_command_handler() на следниов начин:
    void custom_init(lv_ui *ui)
    {
    /* Додајте ги вашите кодови овде */
    start_command_handler();
    }
    Каде:
    Start_command_handler() се користи за креирање на нишка што работи како управувач, преземање пораки испратени од VIT и извршување на команди доделени од command_handler_link().
  6. За да ги поврзете будните зборови и командата VIT со објектот и настанот, користете ја следнава команда:
    void command_handler_link (voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t настан);
    Каде:
    • Command_handler_link() се користи за зачувување на настан за симулирање за извршување VIT.
    • Влезовите, voice_ww_t и voice_cmd_t, се креирани во чекор 2 директно се однесуваат на VIT моделот.
    • Третиот аргумент, lv_obj_t**, се однесува на создавање на објект GUI Guider. Прво, лоцирајте го објектот што треба да се поврзе. Името е во согласност со следната структура _ . За да откриете каде е дефинирано, проверете го file генерирана од GUI Guider на generated/gui_guider.h. Овде, можете да ја најдете следната структура со сите можни објекти за поврзување.

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

Функцијата custom_init(lv_ui *ui) се користи за иницијализирање на почетокот на извршувањето на GUI Guider. Оваа структура може да се користи за да се поврзе со објект, знаејќи како правилно да се користи. Покажувачот на дадената структура е *ui, а покажувачот за пребарување е lv_obj_t**. Затоа, неопходно е да се користи оваа структура со следниот формат:

&ui->брзина_btn_1

  • Четвртиот аргумент, настан lv_event_code_t, се однесува на настанот што ќе се активира. Обично има структура како оваа: LV_EVENT_ . Тој одредува што да прави со активираниот настан преку кодот viewер во file events_init.в.
    За прampLe, btn_1 создадени во брзината на екранот ги имаат овие настани генерирани од GUI Guider.

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

Example
Овој дел покажува прampод оваа имплементација за додавање гласовна поддршка на GUI Guider, префрлање на LED графичката контрола и менување помеѓу екраните на GUI.

  1. Користејќи го образецот GUI креиран со копчето, додајте ги виџетите. За прampле, додадете LED графичка контрола.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (41)
  2. Додајте го притиснат настанот на btn_1 и за да ја смените позадината додадете ја конфигурацијата на настанот. За овој случај, заднината мора да биде избрана како црна за да се „исклучи“ LED-виџетот. Затоа, искористениот настан е притиснат > led_1 > Заднина црна (#000000).NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (42)
  3. Користејќи го истото копче, конфигурирајте настан за да му доделите „вклучување“. За овој случај, додајте го објавениот настан во btn_1 и додадете црвено на позадината. Затоа, користениот настан се ослободува > led_1 > Црвена заднина (#ff0000).NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (43)
  4. Откако ќе се креира GUI, додајте command_handler.c и command_handler.h во custom/папката.
  5. За да ја креирате врската помеѓу настаните и VIT, додајте ги следните линии во custom_init() во внатрешноста на file во обичај/прилагодено.в. За да се менувате помеѓу екраните, додадете уште два настани со поврзување на btn_1 за промена на екранот 2.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (44)NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (45)
    Каде:
    • Комбинацијата за будење HEY_LED и командата TURN_OFF е доделена за исклучување на ЛЕР. Со други зборови, сменете ја позадината во црна.
    • Зборот за будење HEY_LED и комбинацијата на наредбата TURN_ON е доделен за да се претвори LED во црвено.
    • Комбинацијата за будење HEY_NXP и командата NEXT е доделена да се менува помеѓу екраните користејќи го настанот доделен на сите на btn_1 и користејќи btn_before на екранот 2.
    • Зборот за будење HEY_NXP и комбинацијата на командата RETURN се доделува за враќање на екранот 1.
  6. Изберете Проект > Изградба > Јокто и изградете го проектот.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (46)
  7. Испрати го новиот бинар до ЕВК.
    Забелешка: Информацискиот дневник ја обезбедува бинарната локација.
    scp root@ :/home/root

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

Тестирање и конфигурација
Откако ќе заврши преземањето, направете ги следните чекори на EVK:

  1. Потврдете дека модулот snd-aloop е веќе вчитан со извршување на lsmod. Ако модулот не е пронајден, вчитајте го користејќи ја следнава команда:
    root@imx93evk:~# sudo modprobe snd-aloop
  2. Стартувај voice_ui_app користејќи ја следнава команда:
    root@imx93evk:~# ./voice_ui_app -извести &
    Каде:
    • -notify се користи за испраќање известување до WakeWordNtfy и WWCommandNtfy.
      Забелешка: Не заборавајте да ги копирате WakeWordNtfy и WWCommandNtfy во usr/bin.
    • На & се користи за да работи во позадина.
  3. Потврдете дека VIT моторот е поставен на Config.ini.
  4. Стартувај AFE со libvoiceseekerlight во позадина:
    root@imx93evk:~# cd /unit_tests/nxp-afe/
    root@imx93evk:~# ./afe libvoiceseekerlight &
  5. Отворете ја апликацијата GUI Guider користејќи ја следнава команда:
    root@imx93evk:~# ./gui_guider
    До овој чекор, екранот LVDS или HDMI го прикажува креираниот GUI.NXP-AN14270-Adding-Voice-Support-to-GUI-Guider-FIG- (48)
  6. Обидете се да користите претходно доделена будна збор и гласовна команда, на прampЛе, кажете „Еј NXP“ и „Исклучи“. Откако ќе ја изговорите командата за исклучување, во зависност од доделениот повратен повик, GUI Guider врши дејство. За овој ексample, GUI Guider ја менува бојата на позадината за LED графичката контрола.

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

Поврзани ресурси

Во Табела 2 се наведени некои дополнителни ресурси кои се користат за дополнување на овој документ.

Табела 2. Поврзани ресурси

Ресурс Врска/како да се добие
Семејство на процесори за апликации i.MX 93 – Arm Cortex-A55, ML забрзување, ефикасно напојување MPUNXP i.MX 93 A1 (i. MX93) https://www.nxp.com/products/processors-and- микроконтролери/arm-processors/i-mx-applications- процесори/i-mx-9-процесори/i-mx-93-апликации- processor-family-arm-cortex-a55-ml-acceleration-power- ефикасен-mpu:i.MX93
Вграден Linux за i.MX процесори со апликации (IMXLINUX) http://www.nxp.com/IMXLINUX
Упатство за корисникот GUI Guider v1.6.1 (GUIGUIDERUG) https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf
Складиште на VIT i.MX voiceUI https://github.com/nxp-imx/imx-voiceui

Забелешка за изворниот код во документот

Exampкодот прикажан во овој документ ги има следните авторски права и лиценца BSD-3-Clause:
Авторски права 2023-2024 NXP Прераспределбата и употребата во изворни и бинарни форми, со или без модификација, се дозволени под услов да се исполнети следниве услови:

  1. Прераспределбата на изворниот код мора да го задржи горенаведеното известување за авторски права, оваа листа на услови и следното одрекување.
  2. Прераспределбите во бинарна форма мора да го репродуцираат горенаведеното известување за авторски права, оваа листа на услови и следното одрекување во документацијата и/или други материјали мора да бидат обезбедени со дистрибуцијата.
  3. Ниту името на сопственикот на авторските права ниту имињата на неговите соработници не смеат да се користат за одобрување или промовирање на производи добиени од овој софтвер без конкретно претходно писмено одобрение.
    ОВОЈ СОФТВЕР ГО ОБЕЗБЕДУВААТ НОСИТЕЛИТЕ НА АВТОРСКИТЕ ПРАВА И ПРИДОНЕСИТЕЛИ „КАКО ШТО СЕ“ И КОЈА ИЗРАЗНИ ИЛИ ИММПЛИЦИРАНИ ГАРАНЦИИ, ВКЛУЧУВАЈЌИ, НО НЕ ОГРАНИЧЕНИ НА, ИММПЛИЦИРАНАТА ГАРАНЦИЈА ЗА БЕСПЛАТНА ГАРАНЦИЈА . ВО НИКОЈ СЛУЧАЈ НОСИТЕЛОТ НА АВТОРСКИТЕ ПРАВА ДА СЕ ОДГОВАРА ЗА НИКАКВА ДИРЕКТНА, ИНДИРЕКТНА, ИНЦИДЕНТАЛНА, ПОСЕБНА, ПРИМЕРНА ИЛИ ПОСЛЕДНИЧКИ ШТЕТИ (ВКЛУЧУВАЈТЕ, НО НЕ ОГРАНИЧЕНО ОГРАНИЧЕНО; НА КОРИСТЕЊЕ, ПОДАТОЦИ ИЛИ ДОБИВКИ; ИЛИ ДЕЛОВЕН ПРЕКИН) КАКО И ДА СЕ ПРЕДИЗВИКУВААТ И ЗА КОЈА ТЕОРИЈА НА ОДГОВОРНОСТ, БИЛО БИЛО ДОГОВОР, СТРОГА ОДГОВОРНОСТ ИЛИ ДЕЛОК (ВКЛУЧУВАЈТЕ ГО НЕМОРНИЦА ИЛИ ПОинаку) КОИ СЕ ПОСЛЕДУВААТ НА КОЈ НАЧИН F МОЖНОСТА ЗА ТАКВА ШТЕТА.

Историја на ревизии
Табелата 3 ги сумира ревизиите на овој документ.

ИД на документот Датум на издавање Опис
AN14270 v.1.0 16 мај 2024 година Првично јавно објавување

Правни информации

Дефиниции
Нацрт - Нацрт статус на документ покажува дека содржината е сè уште под внатрешна ревизијаview и предмет на формално одобрување, што може да резултира со измени или дополнувања. NXP Semiconductors не дава никакви забелешки или гаранции за точноста или комплетноста на информациите вклучени во нацрт верзијата на документот и нема да има одговорност за последиците од употребата на таквите информации.

Одрекувања
Ограничена гаранција и одговорност — Се верува дека информациите во овој документ се точни и сигурни. Сепак, NXP Semiconductors не дава никакви забелешки или гаранции, изразени или имплицирани, за точноста или комплетноста на таквите информации и нема да има одговорност за последиците од употребата на тие информации. NXP Semiconductors не презема никаква одговорност за содржината во овој документ доколку е обезбедена од извор на информации надвор од NXP Semiconductors.
Во никој случај NXP Semiconductors нема да биде одговорен за какви било индиректни, случајни, казнени, посебни или последователни штети (вклучувајќи – без ограничување – изгубена добивка, изгубени заштеди, прекин на бизнисот, трошоци поврзани со отстранување или замена на какви било производи или трошоци за преработка) без разлика дали или не, таквите штети се засноваат на деликт (вклучувајќи небрежност), гаранција, прекршување на договорот или која било друга правна теорија.
Без оглед на штетите што може да ги направи клиентот од која било причина, збирната и кумулативната одговорност на NXP Semiconductors кон купувачот за производите опишани овде ќе биде ограничена во согласност со Условите и условите за комерцијална продажба на NXP Semiconductors.

Право на промени — NXP Semiconductors го задржува правото да прави промени на информациите објавени во овој документ, вклучително и без ограничување спецификации и описи на производи, во секое време и без известување. Овој документ ги заменува и заменува сите информации доставени пред објавувањето на овој документ.
Соодветност за употреба - Производите на NXP Semiconductors не се дизајнирани, овластени или гарантирани да бидат соодветни за употреба во животна средина, системи или опрема кои се критични за животот или безбедноста, ниту во апликации каде што разумно може да се очекува дефект или неисправност на производот од NXP Semiconductors да резултира со лична повреда, смрт или тешка имотна или еколошка штета. NXP Semiconductors и неговите добавувачи не прифаќаат никаква одговорност за вклучување и/или употреба на производите на NXP Semiconductors во таква опрема или апликации и затоа таквото вклучување и/или користење е на сопствен ризик на клиентот.

Апликации - Апликациите што се опишани овде за кој било од овие производи се само за илустративни цели. NXP Semiconductors не дава никаква изјава или гаранција дека таквите апликации ќе бидат соодветни за наведената употреба без дополнително тестирање или модификација.

Клиентите се одговорни за дизајнот и работењето на нивните апликации и производи кои користат производи на NXP Semiconductors, а NXP Semiconductors не прифаќа никаква одговорност за каква било помош со апликации или дизајн на производи од клиентите. Единствена одговорност на купувачот е да утврди дали производот NXP Semiconductors е соодветен и погоден за апликациите на клиентот и планираните производи, како и за планираната апликација и употреба на клиентите од трета страна на клиентот. Клиентите треба да обезбедат соодветен дизајн и оперативни заштитни мерки за да ги минимизираат ризиците поврзани со нивните апликации и производи.

NXP Semiconductors не прифаќа никаква одговорност поврзана со какви било стандардни, оштетувања, трошоци или проблем што се заснова на каква било слабост или стандардно во апликациите или производите на клиентот, или апликацијата или употребата од страна на клиентите од трета страна на клиентот. Клиентот е одговорен за извршување на сите неопходни тестирања за апликациите и производите на клиентот со користење на производите на NXP Semiconductors со цел да се избегне неисполнување на стандардот на апликациите и производите или на апликацијата или употреба од страна на клиентите од трети страни на клиентот. NXP не прифаќа никаква одговорност во овој поглед.

Одредби и услови за комерцијална продажба — Производите на NXP Semiconductors се продаваат според општите услови за комерцијална продажба, објавени на https://www.nxp.com/profile/terms, освен ако поинаку не е договорено во валиден писмен индивидуален договор. Во случај да се склучи поединечен договор ќе се применуваат само условите и условите од соодветниот договор. NXP Semiconductors со ова изрично се спротивставува на примената на општите услови и услови на клиентот во однос на купувањето на производите на NXP Semiconductors од страна на клиентот.

Контрола на извозот — Овој документ како и ставките опишани овде може да подлежат на прописите за контрола на извозот. За извоз може да биде потребно претходно овластување од надлежните органи.
Соодветност за употреба во неквалификувани производи за автомобили — Освен ако овој документ изречно не наведе дека овој специфичен производ на NXP Semiconductors е квалификуван за автомобилски, производот не е соодветен за автомобилска употреба. Не е ниту квалификуван ниту тестиран во согласност со барањата за автомобилско тестирање или апликација. NXP Semiconductors не прифаќа никаква одговорност за вклучување и/или употреба на производи кои не се квалификувани за автомобили во автомобилска опрема или апликации.

Во случај клиентот да го користи производот за дизајнирање и употреба во автомобилски апликации според автомобилските спецификации и стандарди, клиентот (а) ќе го користи производот без гаранција за производот од NXP Semiconductors за такви автомобилски апликации, употреба и спецификации, и ( б) секогаш кога клиентот го користи производот за автомобилски апликации надвор од спецификациите на NXP Semiconductors, таквата употреба ќе биде исклучиво на сопствен ризик на клиентот, и (в) клиентот целосно ги обештетува NXP Semiconductors за каква било одговорност, штети или неуспешни барања за производот што произлегуваат од дизајнот и употребата на клиентот производот за автомобилски апликации надвор од стандардната гаранција на NXP Semiconductors и спецификациите на производот на NXP Semiconductors.

Преводи - Неанглиска (преведена) верзија на документ, вклучувајќи ги правните информации во тој документ, е само за референца. Англиската верзија ќе преовладува во случај на несовпаѓање помеѓу преведените и англиските верзии.

Безбедност - Клиентот разбира дека сите NXP производи може да бидат предмет на неидентификувани пропусти или може да поддржуваат воспоставени безбедносни стандарди или спецификации со познати ограничувања. Клиентот е одговорен за дизајнот и функционирањето на неговите апликации и производи во текот на нивниот животен циклус за да се намали ефектот на овие пропусти врз апликациите и производите на клиентите. Одговорноста на клиентот се протега и на други отворени и/или сопственички технологии поддржани од производите на NXP за употреба во апликациите на клиентите. NXP не прифаќа никаква одговорност за каква било ранливост. Клиентот треба редовно да ги проверува безбедносните ажурирања од NXP и соодветно да ги следи.
Клиентот ќе избере производи со безбедносни карактеристики кои најдобро ги задоволуваат правилата, прописите и стандардите на наменетата апликација и ќе ги донесе крајните одлуки за дизајн во врска со неговите производи и е единствено одговорен за усогласеноста со сите законски, регулаторни и безбедносни барања поврзани со неговите производи, без оглед на за какви било информации или поддршка што може да ги обезбеди NXP.

NXP има тим за одговор на инциденти за безбедност на производот (PSIRT) (достапен на PSIRT@nxp.com) што управува со истрагата, известувањето и ослободувањето на решенијата за безбедносните пропусти на производите на NXP.
NXP BV — NXP BV не е компанија која работи и не дистрибуира или продава производи.

Заштитни знаци

Забелешка: Сите референцирани брендови, имиња на производи, имиња на услуги и заштитни знаци се сопственост на нивните соодветни сопственици.

NXP — зборот и логото се заштитни знаци на NXP BV
i.MX — е заштитен знак на NXP B.V.

Имајте предвид дека важните известувања во врска со овој документ и производот(ите) опишани овде, се вклучени во делот „Правни информации“.
© 2024 NXP BV Сите права се задржани.
За повеќе информации, посетете: https://www.nxp.com

Датум на издавање: 16 мај 2024 година
Идентификатор на документ: AN14270

Документи / ресурси

NXP AN14270 Додавање гласовна поддршка во GUI Guider [pdf] Упатство за корисникот
AN14270 Додавање гласовна поддршка во GUI Guider, AN14270, Додавање гласовна поддршка во GUI Guider, во GUI Guider, GUI Guider, Guider

Референци

Оставете коментар

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *