Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
MAX: starterkit.ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » SK-RK3562-SODIMM, SK-RK3562-MOD
Запуск нейросетей распознавания голоса на RK3562
Pavel Ivanchenko
Добавлено 01.10.2026 16:23
0
Сообщение: 1
Pavel Ivanchenko
Admin
4.35

Пункты: 938
Регистрация: 24.03.2009
Пол: Мужчина
Отчёт: запуск нейросетевого анализа голосовых сообщений на RK3562

1. Постановка задачи

Развернуть на плате RK3562 (NPU 1 TOPS, 4 ядра Cortex-A53, 3.8 ГБ RAM) систему распознавания русской речи с микрофона, работающую полностью локально, без интернета.

Требования:
— запись с микрофона платы;
— распознавание русской речи;
— выполнение команд по голосу (например, «запусти тест памяти» → memtester 150 1);
— максимальное использование NPU для разгрузки CPU.

2. Аппаратная и программная база

Плата: RK3562 (SoC Rockchip, NPU RKNPU2).
Драйвер NPU: версия 0.9.8.
Runtime RKNN: librknnrt.so 2.2.0 и 2.3.0.
Аудиокодек: RK809 (ALSA, устройство plughw:0,0).
Операционная система: Buildroot 2024.02, ядро Linux 6.6.89.
Виртуальная машина для кросс-компиляции: Lubuntu с установленным Buildroot-тулчейном aarch64-linux-gcc 12.3.0.

3. Протестированные ASR-модели

Были проверены четыре различных подхода к распознаванию речи.

3.1. Zipformer bilingual (китайский + английский) через sherpa-onnx

Модель: sherpa-onnx-rk3562-streaming-zipformer-bilingual-zh-en-2023-02-20.
Размер encoder: 134 МБ.
Формат: RKNN (для NPU).

Проблемы:
— готовая статическая сборка sherpa-onnx выдавала пустой результат;
— state модели застревал на значении -2.38;
— после пересборки sherpa-onnx из исходников под RKNN 2.2.0 и 2.3.0 модель заработала, но с ошибками.

Результат на эталонном WAV:
— ожидалось: 昨天是 MONDAY TODAY IS LIBRAR THE DAY AFTER TOMORROW是星期三;
— получено: 昨天是星星星星星期几三.

Вывод: INT8/FP16-квантизация RKNN разрушает точность Conformer-энкодера. Ошибки в state накапливаются за 17 чанков.

3.2. Zipformer russian (Vosk) через sherpa-onnx

Модель: sherpa-onnx-streaming-zipformer-small-ru-vosk-2025-08-16.
Размер encoder: 86 МБ.
Формат: ONNX (для CPU).

Команда запуска (одной строкой, без переменных):

cd /root/voice/sherpa-onnx-v1.12.18-rknn-linux-aarch64-static && ./bin/sherpa-onnx-alsa --tokens=/root/voice/ru_model/tokens.txt --encoder=/root/voice/ru_model/encoder.onnx --decoder=/root/voice/ru_model/decoder.onnx --joiner=/root/voice/ru_model/joiner.onnx --provider=cpu --num-threads=4 --decoding-method=greedy_search plughw:0,0

Результат — распознавание живой русской речи в streaming-режиме:
— тест один;
— -два три;
— -четыре пять-шесть;
— алло;
— здравствуйте;
— разбирает текст нормально;
— привет.

Метрики:
— RTF = 0.68–0.72 (быстрее реального времени);
— задержка после фразы: ~0.5–1 сек;
— режим: streaming (непрерывный).

Вывод: отличное качество, но работает на CPU (NPU не задействован). Готовых русских RKNN-моделей не существует.

3.3. T-one (Conformer, русский) через RKNN

Модель: t-tech/T-one.
Размер safetensors: 274 МБ.
Архитектура: Conformer CTC, 16 слоёв, d_model=384.
Формат цели: RKNN (для NPU).

Процесс конвертации:
— скачали safetensors и ONNX (138 МБ) с Hugging Face;
— привели динамические размеры к фиксированным через onnxsim (3028 → 1617 нод);
— сделали патч Clip (устранение конфликта типов INT32/INT64);
— заменили Min/Max на Identity (обход ошибки _swap_transpose_expand);
— привели INT32 к FP32 (для совместимости с RKNN);
— заменили динамические маски на константы (Expand → GreaterOrEqual → Not → Slice).

Проверенные конфигурации квантизации:
— FP16, optimization_level=3 → адир щчитыр (мусор);
— FP16, optimization_level=0 → адир щчитыр;
— FP16, без Min/Max → адир щчитыр;
— w8a8, normal → пусто (saturation);
— w8a8, mmse → пусто;
— w8a8, quantize_weight=False → пусто;
— w8a16 → ошибка _p_adjust_where_softmax;
— w16a16i → ошибка unsupported dtype;
— w8a16 (RKNN 2.3.2 + mask patch) → buffer overflow.

Финальная ошибка:
bytes_between_act: 439458 overflow, limitations: 65535.

Причина провала — три фундаментальных ограничения:

Лимит данных между слоями RKNN для RK3562 — 64 КБ. У T-one между слоями передаётся ~440 КБ из-за огромного state (219729 элементов).

Attention Conformer требует FP32-точности, а RKNN работает только в FP16 (float_dtype='float16' — единственный вариант).

Архитектурные операторы (Expand, GreaterOrEqual, Where) либо не поддерживаются RKNN, либо имеют баги.

Вывод: T-one принципиально не конвертируется в RKNN для RK3562.

3.4. Whisper-base через RKNN Model Zoo (успех)

Модель: Whisper-base (OpenAI), официально поддерживается Rockchip.
Размер encoder: 41 МБ (после конвертации).
Размер decoder: 152 МБ (после конвертации).
Формат: RKNN (для NPU).

Процесс конвертации:
— скачали ONNX-модели (encoder 78 МБ, decoder 299 МБ);
— конвертировали официальным скриптом convert.py под rk3562;
— патчили Python-скрипт для поддержки русского языка (task_code=50263, токен <|ru|>);
— добавили BPE-декодер для байтовой кириллицы;
— добавили поддержку задачи ru в C++ демо;
— реализовали decode_bpe_ru() в whisper.cc;
— исправили ошибку компоновки libfftw3f.a через флаги -fno-pie и -no-pie.

Команда запуска на плате (одной строкой):

cd /root/voice/whisper_demo && export LD_LIBRARY_PATH=./lib:$LD_LIBRARY_PATH && ./rknn_whisper_demo model/whisper_encoder_base_20s.rknn model/whisper_decoder_base_20s.rknn ru my_ru.wav

Результат:
Whisper output: Тест, тест, тест, 1, 2, 3, 4
Real Time Factor (RTF): 2.066 / 5.000 = 0.413

Метрики:
— инициализация моделей: ~500 мс;
— инференс 5 секунд аудио: 2.066 сек;
— RTF = 0.413 (быстрее реального времени в 2.4 раза);
— язык: русский;
— где работает: NPU.

Вывод: единственная модель, которая стабильно работает на NPU с русским языком.

4. Система автоматической записи через VAD

Для автоматического определения начала и конца речи использован Silero VAD из sherpa-onnx.
Модель VAD: silero_vad.onnx (629 КБ).
Бинарник: sherpa-onnx-vad-alsa.

Параметры запуска:
— silero-vad-threshold=0.5;
— silero-vad-min-silence-duration=0.8;
— устройство: plughw:0,0.

Как работает:

VAD слушает микрофон непрерывно.

Обнаруживает речь &#8594; записывает сегмент.

После паузы 0.8 сек сохраняет WAV-файл.

Скрипт-обёртка подхватывает новый WAV и отправляет его в Whisper.

Проблема: Whisper-base плохо распознаёт короткие сегменты (< 2 сек). Одиночные слова часто дают пустой результат.

Решение: склейка нескольких сегментов VAD в один WAV через буферизацию. Скрипт ждёт 3 секунды тишины, собирает все накопленные сегменты в один файл, потом отправляет в Whisper.

5. Итоговая архитектура голосового ассистента

Поток данных:

микрофон &#8594; arecord / VAD &#8594; WAV-сегменты &#8594; Whisper (NPU) &#8594; распознанный текст &#8594; grep-сопоставление &#8594; выполнение команды

Компоненты системы:
— VAD: Silero VAD на CPU;
— ASR: Whisper-base на NPU (RTF 0.41);
— сопоставление команд: shell-скрипт с grep -qE по ключевым словам;
— выполнение: стандартные утилиты (memtester, date, df, ls и др.).

6. Сравнение всех подходов

Whisper-base (RKNN, NPU):
— где работает: NPU;
— режим: пакетный;
— RTF: 0.41;
— точность: средняя;
— русский: да.

Zipformer russian (ONNX, CPU):
— где работает: CPU;
— режим: streaming;
— RTF: 0.70;
— точность: отличная;
— русский: да.

Zipformer bilingual (RKNN, NPU):
— где работает: NPU;
— режим: streaming;
— RTF: 0.28;
— точность: низкая (INT8 портит Conformer);
— русский: нет.

T-one (RKNN, NPU):
— где работает: не работает;
— причина: фундаментальные ограничения RKNN для RK3562.

7. Ключевые технические ограничения RKNN для RK3562

Максимальный объём данных между слоями: 64 КБ. Это ограничивает размер state моделей.
Поддерживаемые типы float: только float16 (FP32 недоступен).
Поддерживаемые типы квантизации: w8a8, w8a16, w16a16i. w4a16 не поддерживается.
Совместимость операторов: ограниченная. Проблемные — Expand, Where, GreaterOrEqual, Min, Max.
Известные баги RKNN-Toolkit2: _swap_transpose_expand, _p_adjust_where_softmax.

8. Итог

Задача решена: голосовое управление через нейросетевой анализ речи работает на RK3562.

Работающая связка:
— Whisper-base на NPU для распознавания русского языка;
— Silero VAD для автоматического определения речи;
— shell-скрипт для сопоставления команд.

Проверенная команда:
Голос: запусти тест памяти
Результат: распознано &#8594; запуск memtester 150 1 &#8594; PASS (0 ошибок).

Полный цикл от начала фразы до выполнения: ~5–7 секунд.

Дополнительно доказано, что модель Zipformer russian на CPU даёт лучшее качество распознавания (дословно, streaming), но нагружает CPU. Whisper-base разгружает CPU, работая на NPU, но имеет задержку 2–3 секунды и менее точный результат на коротких фразах.

Выбор между двумя решениями определяется сценарием:
— если важна точность и минимальная задержка — Zipformer russian на CPU;
— если важно разгрузить CPU и работать параллельно с другими задачами на NPU — Whisper-base на NPU.
Спуститься к концу Подняться к началу
Персональная информация
Pavel Ivanchenko
Добавлено 01.10.2026 16:29 Сообщение: 2
Pavel Ivanchenko
Admin
4.35

Пункты: 938
Регистрация: 24.03.2009
Пол: Мужчина
Отчёт: настройка виртуальной машины и сборка компонентов ASR для RK3562

1. Общая схема работы

Виртуальная машина с Lubuntu использовалась как среда разработки. На ней выполнялись три ключевые задачи: конвертация нейросетевых моделей распознавания речи в формат RKNN, кросс-компиляция исполняемых файлов под aarch64, патчинг исходного кода под конкретные модели. Готовые артефакты переносились на плату RK3562 через FTP.

2. Базовое окружение виртуальной машины

Операционная система: Lubuntu.

Тулчейн для кросс-компиляции: Buildroot 2024.02 для RK3562.
Путь к тулчейну: /home/user/src/buildroot-2024.02-rk3562-sk/output/host/bin
Кросс-компилятор: aarch64-linux-gcc версии 12.3.0.
Sysroot: /home/user/src/buildroot-2024.02-rk3562-sk/output/host/aarch64-buildroot-linux-gnu/sysroot

Менеджер окружений: Miniforge3.
Путь: /home/user/miniforge3

Причины использования Miniforge: изоляция Python-окружений из-за конфликтов зависимостей. Компоненты rknn-toolkit2 и sherpa-onnx требуют разных версий numpy, protobuf и onnx, поэтому их нельзя ставить в одну среду.

3. Окружения Python в виртуальной машине

Созданы два изолированных окружения.

3.1. Окружение rknn

Назначение: конвертация ASR-моделей Whisper и T-one в формат rknn.

Создание:
conda create -n rknn python=3.10 -y

Версия RKNN-Toolkit2: сначала 2.2.0, затем обновлена до 2.3.2.

Установка RKNN-Toolkit2 2.2.0:
pip install rknn-toolkit2/rknn-toolkit2/packages/rknn_toolkit2-2.2.0-cp310-cp310-manylinux-2-17-x86-64.manylinux2014-x86-64.whl

Обновление до 2.3.2:
pip install rknn-toolkit2-2.3.2/rknn-toolkit2/packages/x86-64/rknn_toolkit2-2.3.2-cp310-cp310-manylinux-2-17-x86-64.manylinux2014-x86-64.whl

Дополнительные пакеты:

onnx 1.16.1 (RKNN 2.3.2 требует именно эту версию или выше)

onnxoptimizer 0.2.7

onnxsim 0.7.3

soundfile 0.14.0

setuptools версии младше 81 (иначе pkg_resources удалён и RKNN не стартует)

Важный нюанс: setuptools 84.0.0 не работает с RKNN-Toolkit2. Решение:
pip install setuptools меньше 81

3.2. Базовое окружение base

Использовалось для скачивания моделей через утилиту hf, работы с git и lftp.

Ключевые утилиты:

huggingface_hub с командой hf

lftp для передачи файлов на плату

git для клонирования репозиториев

Переменные для работы с зеркалом Hugging Face:
HF_ENDPOINT указывается как https://hf-mirror.com
HF_HUB_DISABLE_XET указывается как 1

4. Установка RKNN-Toolkit2 в виртуальной машине

Использовался репозиторий rknn-toolkit2 с GitHub.

Клонирование:
git clone https://github.com/airockchip/rknn-toolkit2.git

Переключение на тег:
git checkout v2.2.0

Структура пакетов внутри репозитория:
rknpu2/runtime/Linux/librknn-api/include/rknn-api.h
rknpu2/runtime/Linux/librknn-api/aarch64/librknnrt.so

Эти файлы использовались для компиляции C++ демо и линковки sherpa-onnx и rknn-whisper-demo.

5. Кросс-компиляция исполняемых файлов

Все C++ компоненты собирались через Buildroot-тулчейн. Ниже — по компонентам.

5.1. sherpa-onnx для Zipformer

Источник: k2-fsa/sherpa-onnx.

Клонирование:
git clone https://github.com/k2-fsa/sherpa-onnx.git

Для указания путей к RKNN использовались переменные окружения. Приводим их без символов доллара, чтобы избежать проблем с копированием.

Первая переменная — путь к RKNN-Toolkit2. В реальном имени переменной используются символы подчёркивания:
SHERPA (подчёркивание) ONNX (подчёркивание) RKNN (подчёркивание) TOOLKIT2 (подчёркивание) PATH равно /home/user/npu/rknn-toolkit2

Вторая переменная — путь к библиотеке librknnrt.so:
SHERPA (подчёркивание) ONNX (подчёркивание) RKNN (подчёркивание) TOOLKIT2 (подчёркивание) LIB (подчёркивание) DIR равно /home/user/npu/rknn-toolkit2/rknpu2/runtime/Linux/librknn-api/aarch64

Третья переменная — путь к заголовкам rknn-api.h:
CPLUS (подчёркивание) INCLUDE (подчёркивание) PATH равно /home/user/npu/rknn-toolkit2/rknpu2/runtime/Linux/librknn-api/include

Записать все три переменные перед запуском cmake, каждая в отдельной строке:
export SHERPA-ONNX-RKNN-TOOLKIT2-PATH=/home/user/npu/rknn-toolkit2
export SHERPA-ONNX-RKNN-TOOLKIT2-LIB-DIR=/home/user/npu/rknn-toolkit2/rknpu2/runtime/Linux/librknn-api/aarch64
export CPLUS-INCLUDE-PATH=/home/user/npu/rknn-toolkit2/rknpu2/runtime/Linux/librknn-api/include

Внимание: в реальных именах переменных вместо дефисов должны стоять символы подчёркивания.

Команда конфигурации CMake (одной строкой):

cmake .. -DCMAKE-TOOLCHAIN-FILE=/home/user/src/buildroot-2024.02-rk3562-sk/output/host/share/buildroot/toolchainfile.cmake -DCMAKE-SYSTEM-NAME=Linux -DCMAKE-SYSTEM-PROCESSOR=aarch64 -DCMAKE-INSTALL-PREFIX=./install -DCMAKE-BUILD-TYPE=Release -DBUILD-SHARED-LIBS=OFF -DSHERPA-ONNX-ENABLE-RKNN=ON -DSHERPA-ONNX-ENABLE-PORTAUDIO=OFF -DSHERPA-ONNX-ENABLE-TESTS=OFF -DSHERPA-ONNX-ENABLE-PYTHON=OFF -DSHERPA-ONNX-ENABLE-CHECK=OFF -DSHERPA-ONNX-ENABLE-JNI=OFF -DSHERPA-ONNX-ENABLE-WEBSOCKET=OFF

Скачивание ONNX Runtime для aarch64 выполнено вручную (иначе CMake падал по SSL):
файл onnxruntime-linux-aarch64-static-lib-1.28.2-glibc2-17.zip
положить в /home/user/Downloads

Контрольная сумма SHA256 этого файла:
fba13fa68dbc9305512869bfa74f53a15e7af983c44ba8a9cbecbce5c21b33b3

Сборка:
make -j4

Результат:
bin/sherpa-onnx размером 32 МБ, статический, в зависимостях только librknnrt.so.

Особенность: сборка статическая, на плате не нужны libstdc++ и другие разделяемые библиотеки.

5.2. Демо rknn-whisper-demo для Whisper

Источник: airockchip/rknn-model-zoo.

Клонирование и выбор версии:
git clone https://github.com/airockchip/rknn-model-zoo.git
git checkout v2.3.2

Патч CMakeLists.txt для устранения ошибки компоновки libfftw3f.a (собрана без флага PIC). Добавлены три строки после project(rknn-whisper-demo):

set(CMAKE-C-FLAGS с добавлением -fno-pie)
set(CMAKE-CXX-FLAGS с добавлением -fno-pie)
set(CMAKE-EXE-LINKER-FLAGS с добавлением -no-pie)

Команды сборки:
cd /home/user/npu/rknn-model-zoo
export GCC-COMPILER=/home/user/src/buildroot-2024.02-rk3562-sk/output/host/bin/aarch64-linux
./build-linux.sh -t rk356x -a aarch64 -d whisper

Готовые компоненты для платы:
install/rk356x-linux-aarch64/rknn-whisper-demo/rknn-whisper-demo
install/rk356x-linux-aarch64/rknn-whisper-demo/lib/librknnrt.so
install/rk356x-linux-aarch64/rknn-whisper-demo/lib/librga.so

5.3. Собственные тесты ASR

Написаны вручную для отладки T-one.

test-tone.cpp — простой тест загрузки RKNN-модели.
diag-compare.cpp — сравнение выходов ONNX и RKNN на одном входе.
diag-multi.cpp — пошаговая диагностика по всем чанкам.
test-ru.cpp — тест ASR T-one с разными масштабами входа.

Сборка (пример для test-ru):

export PATH равный /home/user/src/buildroot-2024.02-rk3562-sk/output/host/bin плюс существующий PATH
aarch64-linux-gcc test-ru.cpp -o test-ru -I/home/user/npu/rknn-toolkit2/rknpu2/runtime/Linux/librknn-api/include -L/home/user/npu/rknn-toolkit2/rknpu2/runtime/Linux/librknn-api/aarch64 -lrknnrt

6. Конвертация моделей

6.1. Whisper-base в формат rknn

Исходные модели: whisper-encoder-base-20s.onnx размером 78 МБ и whisper-decoder-base-20s.onnx размером 299 МБ.
Источник: официальный скрипт download-model.sh из rknn-model-zoo.

Скачивание:
cd /home/user/npu/rknn-model-zoo/examples/whisper/model
chmod +x download-model.sh
./download-model.sh

Скрипт конвертации: rknn-model-zoo/examples/whisper/python/convert.py

Команды:
cd ../python
python convert.py ../model/whisper-encoder-base-20s.onnx rk3562
python convert.py ../model/whisper-decoder-base-20s.onnx rk3562

Результат:
whisper-encoder-base-20s.rknn размером 41 МБ
whisper-decoder-base-20s.rknn размером 152 МБ

Режим квантизации по умолчанию: FP16.

6.2. T-one в формат rknn — неудачная попытка

Источник: t-tech/T-one на Hugging Face.

Скачанные файлы:

model.safetensors размером 274 МБ

model.onnx размером 138 МБ

config.json, vocab.json и другие

Этапы подготовки ONNX-модели:

Первый этап — фиксация динамических размеров через onnxsim. Скрипт patch-fixed.py. Результат: model-fixed.onnx с числом нод 1617 вместо 3028.

Второй этап — патч Clip. Скрипт patch-clip.py. Устранение ошибки Type Error, связанной с типами INT32 и INT64 в операторе Clip.

Третий этап — замена Min и Max на Identity. Скрипт patch-min.py. Обход ошибки swap-transpose-expand в RKNN-Toolkit2.

Четвёртый этап — приведение INT32 к FP32. Скрипт patch-int32.py. Результат: model-fp32.onnx.

Пятый этап — константные маски. Скрипт patch-mask-v2.py. Замена цепочки Expand, GreaterOrEqual, Not и Slice на константы. Результат: model-mask-const.onnx.

Скрипты конвертации:

convert-tone.py — базовая конвертация FP16

convert-w8a8.py — квантизация w8a8

convert-w16.py — квантизация w16a16i, провал из-за отсутствия поддержки

Все конфигурации квантизации оказались нерабочими для RK3562.

7. Патчинг Python-скриптов для русского языка

Для Whisper добавлена поддержка русского языка. Все патчи делались в виртуальной машине.

7.1. Скрипт whisper-ru.py

Заменяет блок обработки задач. Добавляет task-code равный 50263 (токен начала русского языка). Использует файл vocab-en.txt как полный многоязычный словарь.

Запуск:
python whisper-ru.py

Результат: файл whisper-ru-patched.py.

7.2. Скрипт patch-bpe.py

Добавляет в whisper-ru-patched.py:

функцию bytes-to-unicode для обратного преобразования байтов

функцию decode-bpe для декодирования кириллицы

патч блока обработки результата с применением decode-bpe для task-code равного 50263

Запуск:
python patch-bpe.py

7.3. Патч C++ файла whisper.cc

Добавлены:

функция build-byte-decoder — карта декодирования byte-level BPE

функция decode-bpe-ru — декодирование UTF-8 в кириллицу

подключение заголовков map и string

патч блока обработки результата в функции inference-decoder-model

Запуск патча:
cd /home/user/npu/rknn-model-zoo/examples/whisper/cpp/rknpu2
python patch-ru-bpe.py

7.4. Патч main.cc

Добавлена опция ru в парсинг задач:

vocab-path равен ./model/vocab-en.txt

task-code равен 50263

8. Вспомогательные утилиты

Для подготовки тестовых данных:
prep-wav.py — конвертирует WAV в 8 кГц mono float32.
Команда: python prep-wav.py my-ru.wav my-ru-8k.raw

Для диагностики T-one:
find-int32.py — поиск операций INT32 в ONNX-графе.
analyze-expand.py — анализ узлов Expand.
trace-chain.py — трассировка цепочки потребителей тензора.
extract-all-masks.py — извлечение константных масок внимания.

9. Передача файлов на плату

Все артефакты передавались через FTP. На плате настроен FTP-сервер с адресом 192.168.0.136.

Утилита: lftp.

Пример загрузки одного файла:
lftp -u root,root 192.168.0.136
set xfer:clobber on
cd /root/voice/whisper-demo
put rknn-whisper-demo -o rknn-whisper-demo
bye

Особенность: обязательно использовать команду set xfer:clobber on, иначе lftp не перезаписывает существующие файлы.

10. Специфические артефакты для платы

После всех сборок и патчей на плату перенесены следующие файлы.

Для Whisper:

whisper-encoder-base-20s.rknn размером 41 МБ

whisper-decoder-base-20s.rknn размером 152 МБ

rknn-whisper-demo размером 1 МБ

librknnrt.so размером 7.7 МБ

librga.so размером 197 КБ

vocab-en.txt, vocab-zh.txt

mel-80-filters.txt

Для Zipformer russian, работающего на CPU:

encoder.onnx размером 86 МБ

decoder.onnx размером 2 МБ

joiner.onnx размером 1 МБ

tokens.txt

бинарник sherpa-onnx-alsa из сборки sherpa-onnx-v1.12.18-rknn-linux-aarch64-static

Для VAD:

silero-vad.onnx размером 629 КБ

бинарник sherpa-onnx-vad-alsa

11. Итоговая схема работы в виртуальной машине

Шаг 1. Скачивание исходной модели через утилиту hf или wget.
Шаг 2. Патчинг ONNX: onnxsim для фиксации размеров, замена неподдерживаемых операторов.
Шаг 3. Конвертация в RKNN через соответствующее окружение.
Шаг 4. Кросс-компиляция C++ демо через Buildroot-тулчейн.
Шаг 5. Передача артефактов на плату через lftp.
Шаг 6. Запуск на плате с настройкой переменной LD-LIBRARY-PATH.

Каждый этап выполнен для двух моделей:

Whisper-base (ASR) — конвертация в RKNN, успешно

T-one (ASR) — конвертация в RKNN, неудачно из-за архитектурных ограничений
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-RK3562-SODIMM, SK-RK3562-MOD