NXP AN14270 GUI bələdçisinə səs dəstəyinin əlavə edilməsi

Spesifikasiyalar
Məhsulun adı: AN14270 – i.MX 93 üçün GUI bələdçisinə səs dəstəyinin əlavə edilməsi
Reviziya: 1.0
Tarix: 16 may 2024-ci il
Məhsul haqqında məlumat
Xülasə: Bu proqram qeydi nitqin tanınması texnologiyasını (VIT) GUI Guider ilə birləşdirərək səsin inteqrasiyasını araşdırır.
İstehsalçı: NXP yarımkeçiricilər
Bitdiview
GUI Bələdçisi: Müxtəlif vidjetlər, animasiyalar və üslublarla yüksək keyfiyyətli displeylər yaratmaq üçün LVGL qrafik kitabxanasından istifadə edən NXP-dən istifadəçi interfeysi inkişaf etdirmə vasitəsi.
Səsli Ağıllı Texnologiya (VIT): Pulsuz onlayn alətlər və səslə idarəetmə proqramı vasitəsilə oyanıq sözlər və əmrləri müəyyən etmək üçün NXP tərəfindən bir vasitədir.
Mesaj Növbəsi (MQUEUE): GUI Guider və VIT arasında proseslərarası əlaqə üçün POSIX 1003.1b mesaj növbələrini həyata keçirir.
Avadanlıq, Proqram təminatı və Host Tələbləri
| Kateqoriya | Təsvir |
|---|---|
| Aparat | Məhsul tələblərinə uyğun olaraq |
| Proqram təminatı | Məhsul tələblərinə uyğun olaraq |
| Ev sahibi | Məhsul tələblərinə uyğun olaraq |
Məhsuldan İstifadə Təlimatları
İlkin tələblər
Flashing Linux Versiyası
EVK-ni Linux versiyası ilə yandırmaq üçün:
$ ./uuu.exe -b emmc_all .sd-flash_evk imx-image-full-imx93evk.wic
Yocto Layihəsi ilə alətlər silsiləsi
- Zibil qovluğu yaradın:
$ mkdir ~/bin - Repo alətini yükləyin:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo - PATH dəyişəninə bin qovluğu əlavə edin:
$ export PATH=~/bin:$PATH - Klon reseptləri:
$ 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 - Qurmaq və konfiqurasiya etmək üçün:
$ DISTRO=fsl-imx-fb MACHINE=imx93evk source imx-setup-release.sh -b deploy
Tez-tez verilən suallar (FAQ)
Q: VIT nədir?
A: VIT, NXP tərəfindən onlayn alətlər və səslə idarəetmə proqramından istifadə edərək oyanıq sözlər və əmrləri müəyyən etmək üçün alət olan Səsli Ağıllı Texnologiya deməkdir.
Q: GUI Guider nədir?
A: GUI Guider müxtəlif vidjetlər, animasiyalar və üslublarla yüksək keyfiyyətli displeylər yaratmaq üçün LVGL qrafik kitabxanasından istifadə edən NXP-dən istifadəçi interfeysi inkişaf etdirmə vasitəsidir.
Sənəd məlumatı
| Məlumat | Məzmun |
| Açar sözlər | AN14270, VIT, nitqin tanınması, proseslərarası rabitə (IPC), mesaj növbəsi, GUI bələdçisi |
| mücərrəd | Bu proqram qeydi VIT kimi nitqin tanınması texnologiyası ilə interfeys yaradıcısı GUI Guider arasında körpü yaratmaqla səsin inteqrasiyası imkanlarını araşdırır. |
Giriş
İstifadəçi interfeysi GUI Guider alətindən istifadəni məhdudlaşdırmışdır. Bəzi istifadə halları üçün yalnız siçan və ya toxunma ekranı vasitəsilə qarşılıqlı əlaqə əldə etmək kifayətdir. Bununla belə, bəzən istifadə halı öz məhdudiyyətlərindən kənara çıxmağı tələb edir. Bu sənəd VIT kimi nitqin tanınması texnologiyası ilə interfeys yaradıcısı GUI Guider arasında körpü yaratmaqla səsin inteqrasiyası imkanlarını araşdırır. O, bütün səs tanıma əmrlərini və oyanış sözü GUI Guider tərəfindən yaradılmış istənilən qarşılıqlı əlaqə ilə əlaqələndirmək üçün universal bir yoldan istifadə edir.
Bitdiview
GUI Guider və VIT texnologiya əmrləri arasında əlaqə qurmaq üçün Bölmə 8-ə baxın. Rabitə, qarşılıqlı əlaqə yaratmaq üçün GUI-də hadisələri dinləyən və simulyasiya etməyə imkan verən idarəedici kimi yaradılmış koddan istifadə etməklə qurulur.
GUI Bələdçisi
GUI Guider, LVGL qrafik kitabxanasından istifadə edərək yüksək keyfiyyətli displey yaratmaq üçün sürətli seçim təmin edən NXP-dən istifadəçi interfeysi inkişaf etdirmə vasitəsidir. O, müxtəlif tetik konfiqurasiyaları və kodlaşdırmamaq imkanı ilə fərdiləşdirmə ilə müxtəlif müxtəlif vidjetlər, animasiyalar və üslublardan istifadə edir. GUI Guider haqqında əlavə məlumat üçün GUI Guider v1.6.1 İstifadəçi Təlimatına (GUIGUIDERUG sənədi) baxın.
Ağıllı səs texnologiyası
Səsli Ağıllı Texnologiya (VIT) pulsuz onlayn alətlər, kitabxana və səslə idarəetmə proqram paketindən istifadə edərək oyanıq sözlər və əmrləri müəyyən etmək üçün NXP tərəfindən yaradılmış bir vasitədir. MCUXpresso onu mikro nəzarətçilər üçün istifadə edə bilər və ya Linux BSP mikroprosessorlar üçün istifadə edə bilər.
Mesaj növbəsi
Mesaj növbəsi (MQUEUE) POSIX 1003.1b mesaj növbələrinin formatını həyata keçirən menecerdir. GUI Guider və VIT arasında körpü yaratmaq üçün proseslərarası rabitə (IPC) kimi istifadə olunur. O, məlumatların mesaj şəklində mübadiləsini həyata keçirir, onları VIT vasitəsilə göndərir və skriptlə idarəetməni həyata keçirir
command_handler.
Avadanlıq, proqram təminatı və host tələbləri
Cədvəl 1 VIT və GUI Bələdçisini istifadə etmək üçün tələb olunan aparat, proqram təminatı və hostun təfərrüatlarını təqdim edir.
Cədvəl 1. İstifadə olunan aparat, proqram təminatı və host
| Kateqoriya | Təsvir |
| Aparat | • i.MX 93 EVK
• Enerji təchizatı: USB Type-C 45 Vt enerji təchizatı (5 V/3 A) • USB Type-C kişidən USB Type-A kişi kabelinə: montaj, USB 3.0 uyğun • LVDSL adapteri və HDMI kabeli və ya DY1212W-4856 LVCD LCD panel • Daxili i.MX 93 mikrofon |
| Proqram təminatı | • Linux BSP versiyası: L6.1.55_2.2.0
• GUI Guider v1.6.1 versiyası sonrakı • Alətlər silsiləsi 6.1-Langdale |
| Ev sahibi | • X86_64 Linux Ubuntu 20.04.6 LTS |
İlkin tələblər
Bu bölmə tələb olunan müxtəlif alətlərin quraşdırılmasını təsvir edir.
Flashing Linux versiyası
Aşağıdakı addımları yerinə yetirməzdən əvvəl yükləmə konfiqurasiyasını yükləmə rejiminə dəyişdirin və host vasitəsilə USB-yə qoşun. Əlavə məlumat üçün i.MX Linux İstifadəçi Təlimatına (IMXLUG sənədi) baxın.
EVK-ni yandırmaq üçün aşağıdakı addımları yerinə yetirin:
- i.MX 93 (L6.1.55_2.2.0 və ya ən son) üçün ən son NXP Linux BSP şəkil buraxılışını endirin.
- EVK-ni yandırmaq üçün son UUU-nu endirin: https://github.com/nxp-imx/mfgtools/releases.
- USB1 EVK portundan istifadə edərək EVK-nı host ilə birləşdirin.
- Imx-image-full istifadə edərək, hər iki proqramı eyni yerə qoyun file və aşağıdakı əmrdən istifadə edərək EVK-ni yandırın:

Alternativ olaraq, EVK-ni yandırmaq üçün yalnız təsvirdən istifadə edin:

Qeyd: Yükləmə pinlərini yoxladığınızdan əmin olun.
Yocto layihəsi ilə alətlər silsiləsi
Yocto layihəsi xüsusi Linux əsaslı sistemlər yaratmağa kömək edən açıq mənbəli əməkdaşlıqdır. Yocto i.MX tərəfindən istifadə edilən təsviri yaradır.
Əsas maşının EVK ilə eyni mühitə sahib olması üçün proqram inkişaf alət dəstinə (ADT) və ya alətlər silsilməsinə malik olduğundan əmin olun. Onun hədəf lövhəsi üçün proqramlar tərtib edə bildiyinə əmin olun. Düzgün alətlər silsiləsi əldə etmək üçün i.MX Linux İstifadəçilər Təlimatında (IMXLUG sənədi) “bölmə 4.5.12” və i.MX Yocto Layihəsi İstifadəçilər Təlimatında (IMXLXYOCTOUG sənədi) “bölmə 4”ə baxın.
Yocto mühitindən əsas maşındakı alətlər zəncirini əldə etmək üçün aşağıdakı addımları yerinə yetirin:
- Ev kataloqunda zibil qovluğu yaradın:

- ~/bin qovluğunun PATH dəyişənində olduğundan əmin olun.

- Anbarda istifadə etmək üçün reseptləri klonlayın:

- Qurmaq üçün aşağıdakı kimi konfiqurasiya edin:

- Alətlər silsiləsi yaratmaq üçün Yocto Layihəsi olmadan müstəqil mühiti aşağıdakı kimi qurun:

GUI Bələdçisi
Bu bölmə GUI Bələdçisi haqqında və bu alət əsasında layihə yaratmaq üçün əsaslardan necə istifadə olunacağını izah edir. O, həmçinin istifadə etmək və almaq üçün müxtəlif xüsusiyyətləri izah edirtagbu xüsusiyyətlərdən e.
Gui Guider vidjetləri və hadisələri
İstifadəçi GUI Guider-də layihə yaratdıqda, müxtəlif vidjetlərin istifadəsi avtomatik olaraq yaradılan obyekt kimi təyin edilir. Bu obyekt müxtəlif xüsusiyyətlərə malikdir; onlardan biri də Hadisələrdir. Vidcetdən asılı olaraq hadisələrin müxtəlif tetikleyiciləri ola bilər və baş verənlər hədəfdən asılıdır. məsələnample, Şəkil 1 bir düymə ekranı yalnız “Yük ekranı” hərəkətinə yönəltsə nə baş verəcəyini göstərir.

Bu obyektləri yolda tapmaq olar /generated/gui-guider.h. command_handler skripti advan alırtagTətiyi simulyasiya edən vidjetlər tərəfindən istifadə edilən hadisələrdən e.
Vidjetlər və hadisələr haqqında əlavə məlumat üçün GUI Guider v1.6.1 İstifadəçi Təlimatına baxın (GUIGUIDERUG sənədi).
Tez başlanğıc
İşə başlamaq üçün GUI Bələdçisini quraşdırın.
Host quraşdırmasında aşağıdakı addımları yerinə yetirin:
- GUI Guider-in ən son versiyasını yükləyin (1.7.1 və ya ən son).
- Yükləmək üçün addımları izləyin.
Burada istifadəçi rəsmi köhnə ilə layihə yaratmağı seçə biləramples və ya yerli layihələr.
GUI layihəsi yaratmaq üçün aşağıdakı addımları yerinə yetirin:
- GUI Bələdçisini açın 1.7.1.
- Layihə yaradın.
- LVGL versiyasını seçin.

- i.MX 93 üçün i.MX prosessorunu seçin.

- Şablon seçin. Bu sənəd üçün “ScreenTransition” şablonunu seçin.

- Layihənin adını seçin və layihə yaratmaq üçün Yarat düyməsini basın.

- Şəkil 6-da göstərildiyi kimi əsas pəncərə görünməlidir.

Vidjetlər, hadisələr və tetikler yaratmaq
Vidjetlər, hadisələr və tetikler yaratmaq üçün aşağıdakı addımları yerinə yetirin:
- GUI Bələdçisinin sol tərəfində, qırmızı ilə vurğulanmış düyməni iki dəfə basın.

- Nəticədə, düymə bütün mövcud vidjetləri göstərmək üçün genişlənir.

Fərqli xüsusiyyətlərə malik müxtəlif vidjetlər ola bilər. Bu proqram qeydi widget növü düyməsinə diqqət yetirir. Bununla belə, məhdudiyyətləri olan digər vidjet növləri də ola bilər. Əlavə məlumat üçün GUI Guider v1.6.1 İstifadəçi Təlimatında (GUIGUIDERUG sənədi) “Vidjet təfərrüatları”na baxın. - Düymə vidcetini vidjetlər tabından UI-yə sürükləməklə əlavə edin.

- Xüsusiyyətlər üçün Düyməni sağ vurun və Hadisə əlavə et düyməsini basın.

- Vidcetin işə sala biləcəyi bütün hadisələri göstərən bir pəncərə açılır.

- Sonra, pəncərə tetikleyicinin işə düşə biləcəyi bütün hadisələri göstərir. Bu hadisələr ekranlara, digər vidcetlərə və ya fərdi hadisələrin yaradılmasına tətbiq edilə bilər.

- Bunun üçün məsələnample, yeni ekran yüklənir. Yükləmə ekranına klikləyin və yüklənəcək ekranları seçin.

- Tətbiqi sınamaq üçün GUI Guider ilə inteqrasiya olunmuş simulyatordan istifadə edin. Növbəti düyməni və istifadə ediləcək simulyasiya növünü seçmək üçün istifadə olunur. Bu halda, C-də simulyatordan istifadə edin.

- Yeni ekranı yükləmək üçün Düyməni klikləyin.

i.MX 93 üçün bina
i.MX 93 qurmaq üçün aşağıdakı addımları yerinə yetirin:
- GUI Guider tərəfindən istifadə olunan alətlər zəncirinin düzgün quraşdırıldığından əmin olun. Çarpaz doğrulamaq üçün yolu yoxlayın

- Əvvəlki keçmişdənample, proqram yaratmaq və onu i.MX 93-də işə salmaq üçün yuxarı paneldən Project > Build > Yocto seçin.

- Layihənin, Binar ölçüsünün və Qeydin statusunu yoxlamaq üçün proqramın altındakı Məlumat sekmesini seçin. Məlumat sekmesini genişləndirərək jurnalı yoxlayın.

- Jurnal binarın yeri də daxil olmaqla bina məlumatlarını təqdim edir file. Bu halda, binar yoldadır / /build/gui_guider.

- Host terminalını tapın və aşağıdakı əmrdən istifadə edərək onu EVK-ya göndərin:

Qeyd: Yuxarıdakı yanaşmadan istifadə etmək üçün həm maşınların, həm hostun, həm də hədəfin eyni şəbəkədə olması və lövhənin IP-nin məlum olması lazımdır. - Binar sistemi icra edin file EVK-da aşağıdakı əmrdən istifadə edərək:

məsələnample, Şəkil 19-da göstərildiyi kimi GUI Guider tərəfindən qurulmuş layihəni göstərən LVDS ekranından istifadə etməklə.

VİT
Bu bölmə VIT-dən müstəqil istifadə və onu GUI Bələdçisi ilə əlaqələndirmək üçün modeli necə yaratmağı izah edir. İstədiyiniz xüsusiyyətlərə malik bir model yaratmaq üçün hostdan necə istifadə olunacağını izah edir. Ətraflı məlumat üçün VOICE-INTELLIGENT-TECHNOLOGY-ə baxın.
Modeli yaradın
Model yaratmaq üçün aşağıdakı addımları yerinə yetirin:
- VIT-ə daxil olun websayt: VIT Model Yaratma Aləti
- MODEL YARAT tabına klikləyin.

- “Linux BSP” və “LF6.1.55_2.2.0” kimi SW platforması və versiyasını seçin. Həmçinin, “i.MX93” kimi Cihaz və “İngilis dili” kimi Dil üçün uyğun seçimləri seçin.

- VIT-ə səsli əmri dinləməyə nə vaxt başlayacağını bildirən tetik rolunu oynayan oyanıq sözlər əlavə edin. Yeni oyanıq söz və ya əmr yaradıldıqda, o, "Həssaslıq" üçün dəyər təyin etməyi xahiş edir. Bu parametr tanınma dərəcəsini artırır, yəni müsbət dəyərdirsə, onu aşkar etmək daha asandır, lakin daha çox yanlış aşkarlamalarla nəticələnə bilər. Açar sözlər arasında qarışıqlığın qarşısını almaq üçün istifadə edilən mənfi dəyər əvəzinə həssaslıq dəyərini 0 olaraq saxlayın. Məsələnample, burada “hey led” ifadəsi əlavə olunur.

- İstifadə olunacaq səs əmrlərini əlavə edin və istifadə olunmayanları silin.

- Model yarat düyməsini klikləyin və Modeli yükləyin düyməsinin kilidi açılana qədər gözləyin.

- Model MY MODELLERİM sekmesine göndərilir. Ən son modeli yükləmək üçün endirmə işarəsinə klikləyin.

- Zip qovluğunu çıxarın və saxlayın file VIT_Paket qovluğunu ehtiva edən VIT_Model_en.
VIT voice_ui_app müstəqil olaraq tərtib edilir
Voice_ui_app köhnədirample repository imx-voiceui üçün yaradılmışdır. Bu proqram wakewords və əmrləri aşkar etmək üçün modeldən istifadə edir. Bu sənədin istifadə etdiyi köməkçi proqram “bildir” arqumentidir. Bu arqument oyanıq söz və ya əmri aşkar etdikdə Python açar file İdentifikatordan (ID) istifadə edərək sistem arqumenti ilə WakeWordNotify və ya WWCommandNotify. Bu ID tetikleyiciler arasında fərq qoymağa kömək edir.
Hostda voice_ui_app yaratmaq və onu əvvəlki yaradılmış modelə təyin etməyə kömək etmək üçün aşağıdakı addımları yerinə yetirin:
- Aşağıdakı əmrdən istifadə edərək filial versiyası daxil olmaqla VIT repozitoriyasını klonlayın:
$ git klonu https://github.com/nxp-imx/imx-voiceui -b lf-6.1.55-2.2.0 - Orijinalın ehtiyat nüsxəsini yaradın file, aşağıdakı əmrdən istifadə edərək:
$ cd /imx-voiceui
$ mv ./vit/platforms/iMX9_CortexA55/lib/VIT_Model_en.h - Əvvəllər quraşdırılmış alət zəncirini qurun:
$ mənbə /opt/fsl-imx-xwayland/6.1-langdale/environment-setup-armv8a-poky-linux
Qeyd: Yocto tərəfindən yaradılmış alət zəncirindən istifadə edin. - Aşağıdakı əmrdən istifadə edərək layihənizi qurun:
$ hamısını etmək VERSION=04_08_01 CURRENT_GCC_VERSION=10 BUILD_ARCH=CortexA55 - Layihə qurulduqdan sonra, buraxılış adlı bir kataloq yaradır. kopyalayın file səs_ui_app bu kataloqda EVK üçün:
$ scp buraxılışı/voice_ui_app root@ :/ev/root
Parametrdən istifadə edərək - bildir
“-notify” bayrağını keçərkən voice_ui_app tərəfindən çağırılan skript /usr/bin/ yolunda olmalıdır. Əlavədən istifadə edin files /usr/bin/-ə köçürün və bu skriptləri EVK-ya köçürün.
$ scp WakeWordNotify root@ :/usr/bin/
$ scp WWCommandNotify root@ :/usr/bin/
The files daxilində, wakeword/command ID-dən istifadə edin və onu mesaj növbəsi ilə göndərin.
Bunları kopyaladıqdan sonra files-ni EVK-ya göndərmək üçün “-notify” parametrindən istifadə edin files WakeWordNotify və WWCommandNotify lazımi icazələrə malikdir. Onu EVK-ya əlavə etmək üçün aşağıdakı əmri yerinə yetirin:
root@imx93evk:~# chmod a+x /usr/bin/WakeWordNotify root@imx93evk:~# chmod a+x /usr/bin/WWCommandNotify
Audio ön hissə
Audio front-end (AFE) VIT səsin tanınması üçün yem kimi istifadə olunur. Mənbədən və natiqin istinadından istifadə edərək səs-küyü və əks-sədanı təmizləməyə kömək edir. Beləliklə, nəticə emal üçün istifadə edilə bilən aydın bir kanallı mikrofon səsidir. Əlavə məlumat üçün VOICESEEKER-ə baxın.
AFE EVK daxilində /unit_tests/nxp-afe yolunda tapıla bilər.
Proqramı hazırlamaq və icra etmək üçün aşağıdakı addımları izləyin file nxp-afe-də TODO.md:
- DTB-nin imx93-11×11-evk.dtb olduğundan əmin olun.
- AFE-ni dəstəkləmək üçün aloop modulunu quraşdırın:
root@imx93evk:~# sudo modprobe snd-aloop - asound.conf ehtiyat nüsxəsini yaradın və lövhə üçün müvafiq asound.conf istifadə edin:
root@imx93evk:~# mv /etc/asound.conf /etc/asound-o.conf
root@imx93evk:~# cp /unit_tests/nxp-afe/asound.conf_imx93 /etc/asound.conf - VIT söz mühərrikindən düzgün istifadə etmək üçün WakeWordEnge-i dəyişdirin. Bu konfiqurasiya içəridədir file /unit_tests/nxp-afe/Config.ini.
- WakeWordEngine = VIT üçün defolt olaraq VoiceSpot istifadə edən WakeWordEngine = VoiceSpot xüsusiyyətini dəyişdirin.
- AFE-ni sınamaq üçün voice_ui_app proqramını icra edin:
root@imx93evk:~# ./voice_ui_app &
Qeyd: Bu halda “-bildiriş” parametrini əlavə etmək lazım deyil. - Aşağıdakı əmrdən istifadə edərək AFE-ni yerinə yetirin:
root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight & - AFE-nin fonda işlədiyini müəyyən etmək üçün & əmrindən istifadə edin. Digər hansı proqramların arxa planda işlədiyini bilmək üçün aşağıdakı əmrdən istifadə edin:
root@imx93evk:~# ps - AFE və ya voice_ui_app-ı bağlamaq üçün aşağıdakı əmrdən istifadə edin:
root@imx93evk:~# pkill afe
root@imx93evk:~# pkill voice_ui_app
Voice_ui_app -notify olmadan işləyir
- TODO.md-dəki addımları izlədikdən sonra file, EVK-dakı terminaldan binar voice_ui_app proqramını işə salın. Bu, VIT-in necə işlədiyi barədə məlumatları göstərir.

- Voice_ui_app-ı qidalandırmaq üçün aşağıdakı əmrdən istifadə edərək AFE-ni yerinə yetirin:
root@imx93evk:~# /unit_tests/nxp-afe/afe libvoiceseekerlight & - Oyanış sözü və səs əmrini deyin və onun gözlənildiyi kimi işlədiyini yoxlayın. Terminalda oyanıq sözü və səs əmrini aşağıdakı kimi göstərir:
– Wakeword 1 HEY NXP StartOffset 16640 aşkarlandı
– Səs əmri aşkar edildi 3 ON
GUI Guider VIT tətbiqi
Daha əvvəl izah edildiyi kimi, proqram/skript command_handler VIT bildirişi vasitəsilə IPC kimi mesaj növbəsinə əmr identifikatorunu və oyanıq söz identifikatorunu göndərir. Daha sonra GUI-Guider proqramında hadisəni simulyasiya etmək üçün bu ID-ləri çəkir. Şəkil 26 bu rabitənin necə həyata keçirildiyini göstərir.

Qeyd: İşləyicini yaradılmış xüsusi modellə düzgün işləmək üçün konfiqurasiya etdiyinizə əmin olun. Bu dəyişikliklər hostda tətbiq edilməlidir.
Hadisələri simulyasiya etmək üçün command_handler istifadə edin
Hadisələri simulyasiya etmək üçün command_handler istifadə etmək üçün aşağıdakı addımları yerinə yetirin:
- əlavə edin files command_handler.h və command_handler.c qovluqdakı GUI Guider layihəsinə / /xüsusi/.
- İstifadə olunan cari modelə uyğunlaşdırmaq üçün, voice_cmd_t və voice_ww_t dəyişdirərək command_handler.h-ni dəyişdirin.
Qeyd: Modeldə eyni sıranın istifadə olunduğundan əmin olun.
- Oyanıq sözlərin və əmrlərin sayını dəyişdirin file / /custom/command_handler.h:
#VIT_WW_NUMBER 2-ni təyin edin
#VIT_CMD_NUMBER 5-i təyin edin - Əmr interfeysini işə salın file / /custom/custom.c. GUI Guider bunu yaradır file avtomatik.
# "command_handler.h" daxil edin - void custom_init(lv_ui *ui) kimi təyin olunan funksiya burada mövcuddur file /
yol>/custom/custom.c. Bu funksiya kod və başlatma əmrini start_command_handler() əlavə etmək üçün aşağıdakı kimi dəyişdirilə bilər:
etibarsız custom_init(lv_ui *ui)
{
/* Kodlarınızı buraya əlavə edin */
start_command_handler();
}
Harada:
start_command_handler() işləyici kimi işləyən mövzu yaratmaq, VIT tərəfindən göndərilən mesajları götürmək və command_handler_link() tərəfindən təyin edilmiş əmrləri yerinə yetirmək üçün istifadə olunur. - VIT wakewords və əmrini obyekt və hadisə ilə əlaqələndirmək üçün aşağıdakı əmrdən istifadə edin:
void command_handler_link(voice_ww_t WW_Id, voice_cmd_t CMD, lv_obj_t** obj, lv_event_code_t hadisəsi);
Harada:
• VIT icrası üçün simulyasiya etmək üçün hadisəni saxlamaq üçün command_handler_link() istifadə olunur.
• Voice_ww_t və voice_cmd_t daxiletmələri 2-ci addımda yaradılmışdır və birbaşa VIT modeli ilə bağlıdır.
• Üçüncü arqument, lv_obj_t**, GUI Guider obyektinin yaradılmasına aiddir. Əvvəlcə əlaqələndiriləcək obyekti tapın. Ad növbəti quruluşa uyğun gəlir _ . Harada təyin olunduğunu tapmaq üçün, yoxlayın file genered/gui_guider.h ünvanında GUI Guider tərəfindən yaradılıb. Burada əlaqə qurmaq üçün bütün mümkün obyektlərlə növbəti strukturu tapa bilərsiniz.

custom_init(lv_ui *ui) funksiyası GUI Bələdçisinin icrasının başlanğıcında işə salmaq üçün istifadə olunur. Bu strukturdan düzgün istifadə etməyi bilməklə onu obyektlə əlaqələndirmək üçün istifadə etmək olar. Verilmiş strukturun göstəricisi *ui, axtarış üçün göstərici isə lv_obj_t**-dir. Buna görə də, bu strukturu aşağıdakı formatla istifadə etmək lazımdır:
&ui->sürət_btn_1
- Dördüncü arqument, lv_event_code_t hadisəsi, işə salınacaq hadisə ilə əlaqədardır. Adətən belə bir quruluşa malikdir: LV_EVENT_ . Kod vasitəsilə tetiklenen hadisə ilə nə edəcəyini müəyyənləşdirir viewer in file hadisələr_init.c.
məsələnample, ekran sürətində yaradılmış btn_1 bu hadisələri GUI Guider tərəfindən yaradılmışdır.

Example
Bu bölmə keçmişi nümayiş etdirirampLED vidjetini dəyişdirərək və GUI ekranları arasında dəyişən GUI Bələdçisinə səs dəstəyi əlavə etmək üçün bu tətbiqdən istifadə edin.
- Düymə ilə yaradılmış GUI şablonundan istifadə edərək, vidjetləri əlavə edin. məsələnample, bir LED widgetı əlavə edin.

- Btn_1-ə basılan hadisəni əlavə edin və fonu dəyişdirmək üçün hadisənin konfiqurasiyasını əlavə edin. Bu halda, LED vidcetini “söndürmək” üçün fon qara rəngdə seçilməlidir. Buna görə də, istifadə edilən hadisə sıxılır > led_1 > Fon qara (#000000).

- Eyni düymədən istifadə edərək, hadisəni "yandırmaq" üçün təyin etmək üçün konfiqurasiya edin. Bu halda, buraxılmış hadisəni btn_1-ə əlavə edin və fona qırmızı əlavə edin. Buna görə də istifadə edilən hadisə buraxıldı > led_1 > Fon qırmızı (#ff0000).

- GUI yaradıldıqdan sonra, xüsusi/qovluqa command_handler.c və command_handler.h əlavə edin.
- Hadisələr və VIT arasında əlaqə yaratmaq üçün custom_init() daxilində aşağıdakı sətirləri əlavə edin file custom/custom.c. Ekranlar arasında dəyişiklik etmək üçün btn_1 ilə əlaqələndirərək ekran 2-yə daha iki hadisə əlavə edin.


Harada:- HEY_LED oyandırma sözü və TURN_OFF əmr birləşməsi LED-i söndürmək üçün təyin edilmişdir. Başqa sözlə, fonu qara rəngə dəyişdirin.
- HEY_LED oyandırma sözü və TURN_ON əmri kombinasiyası LED-i qırmızıya çevirmək üçün təyin edilib.
- HEY_NXP və NEXT əmri kombinasiyası hamısı btn_1-ə təyin edilmiş hadisədən və 2-ci ekranda btn_before istifadə edərək ekranlar arasında dəyişiklik etmək üçün təyin edilir.
- HEY_NXP və RETURN əmri kombinasiyası 1-ci ekrana qayıtmaq üçün təyin edilib.
- Layihə > Qurmaq > Yocto seçin və layihəni qurun.

- Yeni binar faylı EVK-ya göndərdi.
Qeyd: Məlumat jurnalı ikili yeri təmin edir.
scp kök@ :/ev/root

Test və konfiqurasiya
Yükləmə başa çatdıqdan sonra EVK-da aşağıdakı addımları yerinə yetirin:
- lsmod işlədərək snd-aloop modulunun artıq yükləndiyini yoxlayın. Modul tapılmadıqda, onu aşağıdakı əmrdən istifadə edərək yükləyin:
root@imx93evk:~# sudo modprobe snd-aloop - Aşağıdakı əmrdən istifadə edərək voice_ui_app-ı işə salın:
root@imx93evk:~# ./voice_ui_app -bildirin və
Harada:- -notify WakeWordNtfy və WWCommandNtfy-ə bildiriş göndərmək üçün istifadə olunur.
Qeyd: WakeWordNtfy və WWCommandNtfy-ni usr/bin-ə köçürməyi unutmayın. - & fonda işləmək üçün istifadə olunur.
- -notify WakeWordNtfy və WWCommandNtfy-ə bildiriş göndərmək üçün istifadə olunur.
- VIT mühərrikinin Config.ini-də quraşdırıldığını yoxlayın.
- Arxa fonda libvoiceseekerlight ilə AFE-ni işə salın:
root@imx93evk:~# cd /unit_tests/nxp-afe/
root@imx93evk:~# ./afe libvoiceseekerlight & - Aşağıdakı əmrdən istifadə edərək GUI Guider proqramını açın:
root@imx93evk:~# ./gui_guider
Bu addıma qədər, LVDS ekranı və ya HDMI yaradılmış GUI-ni göstərir.
- Əvvəllər təyin edilmiş oyanıq söz və səs əmrindən istifadə etməyə çalışın, məsələnample, “Hey NXP” və “Söndür” deyin. Təyin edilmiş geri çağırışdan asılı olaraq enerjinin söndürülməsi əmrini dedikdən sonra GUI Guider hərəkəti yerinə yetirir. Bunun üçün məsələnample, GUI Guider LED vidceti üçün fon rəngini dəyişir.

Cədvəl 2 bu sənədi tamamlamaq üçün istifadə olunan bəzi əlavə resursları sadalayır.
Cədvəl 2. Müvafiq resurslar
| Resurs | Link/necə əldə etmək olar |
| i.MX 93 Tətbiq Prosessor Ailəsi – Arm Cortex-A55, ML Sürətləndirmə, Güc Effektiv MPUNXP i.MX 93 A1 (i. MX93) | https://www.nxp.com/products/processors-and- mikro nəzarətçilər/arm-prosessorlar/i-mx-proqramlar- prosessorlar/i-mx-9-prosessorlar/i-mx-93-proqramlar- prosessor-aile-qolu-korteks-a55-ml-sürətləndirici-gücü- səmərəli-mpu:i.MX93 |
| i.MX Proqram Prosessorları üçün quraşdırılmış Linux (IMXLINUX) | http://www.nxp.com/IMXLINUX |
| GUI Guider v1.6.1 İstifadəçi Təlimatı (GUIGUIDERUG) | https://www.nxp.com/docs/en/user-guide/ GUIGUIDERUG-1.6.1.pdf |
| VIT i.MX səsli istifadəçi interfeysi deposu | https://github.com/nxp-imx/imx-voiceui |
Sənəddəki mənbə kodu haqqında qeyd edin
ExampBu sənəddə göstərilən kodun aşağıdakı müəllif hüququ və BSD-3-Maddə lisenziyası var:
Müəllif hüququ 2023-2024 NXP Yenidən bölüşdürülməsi və mənbə və binar formalarda istifadəsinə, dəyişdirilməklə və ya dəyişdirilmədən aşağıdakı şərtlər yerinə yetirildiyi təqdirdə icazə verilir:
- Mənbə kodunun yenidən paylanması yuxarıdakı müəllif hüququ bildirişini, bu şərtlər siyahısını və aşağıdakı imtina bildirişini saxlamalıdır.
- İkili formada təkrar paylamalar yuxarıda göstərilən müəllif hüququ bildirişini, bu şərtlərin siyahısını və sənədlərdə və/və ya digər materiallarda aşağıdakı imtina bildirişini əks etdirməlidir.
- Müəllif hüququ sahibinin adı və ya töhfə verənlərin adları, əvvəlcədən yazılı icazə alınmadan bu proqram təminatından əldə edilmiş məhsulları təsdiqləmək və ya tanıtmaq üçün istifadə edilə bilməz.
BU PROQRAM MÜƏLLİF HÜQUQ SAHİBLƏRİ VƏ ƏMƏKÇİLƏR TƏRƏFİNDƏN “OLDUĞU KİMİ” VƏ TİCARƏ İLİŞKİLİ MÜQAVİLƏLƏRİN DÜZEYİ ZƏMANƏTLƏRİ O cümlədən, lakin bununla məhdudlaşmır . HEÇ BİR HALDA MÜƏLLİF HÜQUQ SAHİBİ VƏ YA TƏFƏKHÜCƏLƏR HƏR BİRBAŞA, DOLAYI, TASADİF, XÜSUSİ, NÜMUNƏLƏR VƏ NƏTİCƏLƏRİ ZƏRƏRLƏ MƏSULİYYƏT EDİLMƏZ (O cümlədən, MƏHDUDİYYƏT OLMAYAN; İSTİFADƏNİN, MƏLUMATLARIN VƏ YA MƏNFƏTİN İTKİSİ; VƏ YA BİZNESİN KESİLMƏSİ) SƏBƏB OLDUĞUNDA VƏ HƏR HƏR MƏSULİYYƏT NƏZƏRİYYƏSİ ÜZRƏ, MÜQAVİLƏDƏ, CƏT MƏSULİYYƏT VƏ YA HƏR BAŞQA HƏR HƏR YOLDA YOXDUR BELƏ ZƏRƏNİN MÜMKÜNLÜĞÜ.
Təftiş tarixi
Cədvəl 3 bu sənədə düzəlişləri ümumiləşdirir.
| Sənəd ID | Buraxılış tarixi | Təsvir |
| AN14270 v.1.0 | 16 may 2024-ci il | İlkin ictimai buraxılış |
Hüquqi məlumat
Təriflər
Qaralama — Sənəddəki qaralama statusu məzmunun hələ də daxili revizyon altında olduğunu göstərirview və dəyişikliklər və ya əlavələrlə nəticələnə bilən rəsmi təsdiqə tabedir. NXP Semiconductors, sənədin qaralama variantına daxil edilmiş məlumatların düzgünlüyünə və ya tamlığına dair heç bir təqdimat və ya zəmanət vermir və belə məlumatdan istifadənin nəticələrinə görə heç bir məsuliyyət daşımır.
İmtina etmələr
Məhdud zəmanət və məsuliyyət — Bu sənəddəki məlumatın dəqiq və etibarlı olduğuna inanılır. Bununla belə, NXP Semiconductors bu cür məlumatların düzgünlüyünə və ya tamlığına dair açıq və ya nəzərdə tutulan heç bir ifadə və ya zəmanət vermir və belə məlumatdan istifadənin nəticələrinə görə heç bir məsuliyyət daşımır. NXP Semiconductors, NXP Semiconductors xaricində məlumat mənbəyi tərəfindən təmin edildiyi təqdirdə bu sənəddəki məzmuna görə heç bir məsuliyyət daşımır.
Heç bir halda NXP Yarımkeçiriciləri hər hansı dolayı, təsadüfi, cəza, xüsusi və ya nəticə etibarilə zərərlərə görə məsuliyyət daşımır (o cümlədən – məhdudiyyətsiz – itirilmiş mənfəət, itirilmiş qənaət, biznesin dayandırılması, hər hansı məhsulun çıxarılması və ya yenidən işlənməsi ilə bağlı xərclər). və ya belə zərərlər dələduzluq (səhlənkarlıq daxil olmaqla), zəmanət, müqavilənin pozulması və ya hər hansı digər hüquqi nəzəriyyəyə əsaslanmır.
Müştərinin hər hansı səbəbdən vura biləcəyi hər hansı ziyana baxmayaraq, NXP Yarımkeçiricilərinin burada təsvir edilən məhsullara görə müştəri qarşısında məcmu və məcmu məsuliyyəti NXP Yarımkeçiricilərinin kommersiya satışının Qayda və şərtlərinə uyğun olaraq məhdudlaşdırılacaqdır.
Dəyişiklik etmək hüququ — NXP Semiconductors istənilən vaxt və xəbərdarlıq etmədən bu sənəddə dərc edilmiş məlumatlara, o cümlədən məhdudiyyətsiz spesifikasiyalar və məhsul təsvirlərinə dəyişiklik etmək hüququnu özündə saxlayır. Bu sənəd dərc olunmazdan əvvəl verilmiş bütün məlumatları əvəz edir və əvəz edir.
İstifadəyə uyğunluq — NXP Semiconductors məhsulları həyat dəstəyi, həyat üçün kritik və ya təhlükəsizlik baxımından kritik sistemlər və ya avadanlıqlarda, həmçinin NXP Semiconductors məhsulunun nasazlığının və ya nasazlığının ağlabatan şəkildə gözlənilə biləcəyi tətbiqlərdə istifadə üçün nəzərdə tutulmayıb, icazə verilməyib və ya zəmanət verilməyib. şəxsi zədə, ölüm və ya ciddi əmlaka və ya ətraf mühitə ziyan vurmaqla nəticələnmək. NXP Semiconductors və onun təchizatçıları NXP Semiconductors məhsullarının bu cür avadanlıq və ya tətbiqlərə daxil edilməsi və/və ya istifadəsi üçün heç bir məsuliyyət daşımır və buna görə də belə daxiletmə və/və ya istifadə riski müştərinin öz üzərinə düşür.
Tətbiqlər — Bu məhsullardan hər hansı biri üçün burada təsvir edilən proqramlar yalnız illüstrativ məqsədlər üçündür. NXP Semiconductors əlavə sınaq və ya dəyişiklik edilmədən bu cür tətbiqlərin müəyyən edilmiş istifadə üçün uyğun olacağına dair heç bir bəyanat və ya zəmanət vermir.
Müştərilər NXP Semiconductors məhsullarından istifadə edərək tətbiqlərinin və məhsullarının dizaynına və istismarına cavabdehdirlər və NXP Semiconductors proqramlar və ya müştəri məhsulunun dizaynı ilə bağlı hər hansı yardıma görə heç bir məsuliyyət daşımır. NXP Semiconductors məhsulunun müştərinin proqramlarına və planlaşdırılan məhsullarına, həmçinin müştərinin üçüncü tərəf müştəri(lər)inin planlaşdırılan tətbiqi və istifadəsi üçün uyğun olub olmadığını müəyyən etmək yalnız müştərinin məsuliyyətidir. Müştərilər tətbiqləri və məhsulları ilə bağlı riskləri minimuma endirmək üçün müvafiq dizayn və əməliyyat təminatlarını təmin etməlidirlər.
NXP Semiconductors, müştərinin tətbiqləri və ya məhsullarındakı hər hansı zəiflik və ya defolt, və ya müştərinin üçüncü tərəf müştəri(lər)i tərəfindən tətbiq və ya istifadəyə əsaslanan hər hansı defolt, zədə, xərc və ya problemlə bağlı heç bir məsuliyyət daşımır. Müştəri NXP Semiconductors məhsullarından istifadə edərək müştərinin tətbiqləri və məhsulları üçün bütün lazımi sınaqların aparılmasına cavabdehdir. NXP bu baxımdan heç bir məsuliyyət daşımır.
Kommersiya satışının şərtləri — NXP Semiconductors məhsulları kommersiya satışının ümumi şərtlərinə uyğun olaraq satılır. https://www.nxp.com/profile/terms, qüvvədə olan yazılı fərdi müqavilədə başqa hal nəzərdə tutulmayıbsa. Fərdi müqavilə bağlandıqda, yalnız müvafiq müqavilənin şərtləri tətbiq edilir. NXP Semiconductors, müştəri tərəfindən NXP Semiconductors məhsullarının alınması ilə bağlı müştərinin ümumi şərtlərinin tətbiqinə açıq şəkildə etiraz edir.
İxrac nəzarəti — Bu sənəd, eləcə də burada təsvir edilən bənd(lər) ixrac nəzarəti qaydalarına tabe ola bilər. İxrac səlahiyyətli orqanlardan əvvəlcədən icazə tələb edə bilər.
Qeyri-avtomobil keyfiyyətinə malik məhsullarda istifadə üçün uyğunluq — Bu sənəddə bu xüsusi NXP Semiconductors məhsulunun avtomobil üçün uyğun olduğu açıq şəkildə ifadə edilmədiyi halda, məhsul avtomobil istifadəsi üçün uyğun deyil. O, avtomobil sınaqlarına və ya tətbiq tələblərinə uyğun olaraq nə ixtisaslı, nə də sınaqdan keçirilmir. NXP Yarımkeçiricilər avtomobil avadanlığı və ya tətbiqlərində qeyri-avtomobil keyfiyyətinə malik məhsulların daxil edilməsi və/və ya istifadəsi üçün heç bir məsuliyyət daşımır.
Müştəri avtomobilin texniki xüsusiyyətlərinə və standartlarına uyğun dizayn və avtomobil tətbiqlərində istifadə üçün məhsuldan istifadə edərsə, müştəri (a) NXP Semiconductors zəmanəti olmadan məhsulu bu cür avtomobil tətbiqləri, istifadəsi və spesifikasiyası üçün istifadə etməlidir və ( b) müştəri məhsulu NXP Semiconductors spesifikasiyalarından kənar avtomobil tətbiqləri üçün istifadə etdikdə belə istifadə riski yalnız müştərinin üzərinə düşür və (c) müştəri NXP Semiconductors-u müştərinin dizaynı və istifadəsi nəticəsində yaranan hər hansı məsuliyyət, zərər və ya uğursuz məhsul iddialarına görə tam kompensasiya edir. NXP Semiconductors'un standart zəmanəti və NXP Semiconductors'un spesifikasiyalarından kənarda avtomobil tətbiqləri üçün məhsul.
Tərcümələr — Sənədin ingilis dilində olmayan (tərcümə edilmiş) versiyası, o cümlədən həmin sənəddəki hüquqi məlumatlar yalnız istinad üçündür. Tərcümə edilmiş və ingilis dilində olan versiyalar arasında hər hansı uyğunsuzluq olduqda ingilis versiyası üstünlük təşkil edəcəkdir.
Təhlükəsizlik — Müştəri başa düşür ki, bütün NXP məhsulları naməlum zəifliklərə məruz qala bilər və ya müəyyən edilmiş təhlükəsizlik standartlarını və ya məlum məhdudiyyətlərlə spesifikasiyaları dəstəkləyə bilər. Müştəri, bu zəifliklərin müştərinin tətbiqləri və məhsullarına təsirini azaltmaq üçün bütün həyat dövrləri boyunca tətbiqlərinin və məhsullarının dizaynına və istismarına cavabdehdir. Müştərinin məsuliyyəti həmçinin müştərinin tətbiqlərində istifadə üçün NXP məhsulları tərəfindən dəstəklənən digər açıq və/yaxud mülkiyyət texnologiyalarına da şamil edilir. NXP hər hansı zəifliyə görə heç bir məsuliyyət daşımır. Müştəri müntəzəm olaraq NXP-dən təhlükəsizlik yeniləmələrini yoxlamalı və müvafiq qaydada izləməlidir.
Müştəri nəzərdə tutulan tətbiqin qaydalarına, qaydalarına və standartlarına ən yaxşı cavab verən təhlükəsizlik xüsusiyyətlərinə malik məhsulları seçməli və məhsulları ilə bağlı son dizayn qərarlarını verməlidir və məhsulu ilə bağlı bütün qanuni, tənzimləyici və təhlükəsizlik tələblərinə uyğunluğuna görə yalnız məsuliyyət daşıyır. NXP tərəfindən təmin oluna biləcək hər hansı məlumat və ya dəstək.
NXP-nin Məhsul Təhlükəsizliyi Hadisələrinə Müdaxilə Qrupu (PSIRT) var (bu ünvandan əldə etmək olar PSIRT@nxp.com) NXP məhsullarının təhlükəsizlik zəifliklərinin təhqiqatını, hesabatını və həllini idarə edən.
NXP B.V. — NXP B.V. əməliyyat şirkəti deyil və məhsul yaymır və ya satmır.
Ticarət nişanları
Qeyd: Bütün istinad edilmiş brendlər, məhsul adları, xidmət adları və ticarət nişanları müvafiq sahiblərinin mülkiyyətidir.
NXP — söz nişanı və loqo NXP BV-nin ticarət nişanlarıdır
i.MX — NXP BV-nin ticarət nişanıdır
Nəzərə alın ki, bu sənəd və burada təsvir olunan məhsul(lar)la bağlı mühüm bildirişlər "Hüquqi məlumat" bölməsinə daxil edilib.
© 2024 NXP BV Bütün hüquqlar qorunur.
Ətraflı məlumat üçün müraciət edin: https://www.nxp.com
Buraxılış tarixi: 16 may 2024-ci il
Sənədin identifikatoru: AN14270
Sənədlər / Resurslar
![]() |
NXP AN14270 GUI bələdçisinə səs dəstəyinin əlavə edilməsi [pdf] İstifadəçi təlimatı AN14270 GUI bələdçisinə səs dəstəyinin əlavə edilməsi, AN14270, GUI bələdçisinə, GUI bələdçisinə, GUI bələdçisinə, bələdçisinə səs dəstəyinin əlavə edilməsi |




