Перейти к содержанию
    

Allwinner T113-s3 уделал HiFi4 DSP. Смеяться или плакать?

On 9/11/2024 at 9:57 AM, repstosw said:

Протестировал:  работает, выдаёт текст.

а какую модель использовали ? у vosk "маленькая" модель примерно 50М и я так понял в рантайме она требует 300М RAM, даже на t113-s4 только 256М

Quote

We have two types of models - big and small, small models are ideal for some limited task on mobile applications. They can run on smartphones, Raspberry Pi’s. They are also recommended for desktop applications. Small model typically is around 50Mb in size and requires about 300Mb of memory in runtime.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 minutes ago, sasamy said:

а какую модель использовали ? у vosk "маленькая" модель примерно 50М и я так понял в рантайме она требует 300М RAM, даже на t113-s4 только 256М

Под Линукс полностью собрал только Kaldi: https://habr.com/ru/articles/470696/

С ней использовал модель: kaldi-ru-0.7.tar.gz

 

Воск собирал под Виндой - libvosk и test_vosk.c.

Модель: vosk-model-small-ru-0.22.zip   (46 MB)

 

P.S. Что-то подсказывает мне, что для моих целей нужен фонетический вокодер, а не перебор слов по словарю. :lazy:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/12/2024 at 1:05 AM, repstosw said:

С ней использовал модель: kaldi-ru-0.7.tar.gz

она вообще 1.9G а RAM надо несколько гигов

On 9/12/2024 at 1:05 AM, repstosw said:

Воск собирал под Виндой - libvosk и test_vosk.c

воск и калди нормально собираются в buildroot - я добавил в свой только 3 пакета

    source "package/openfst/Config.in"
    source "package/kaldi/Config.in"
    source "package/vosk-api/Config.in"

остальное из их зависимостей есть в майнстримном и все собралось само. Но вопрос - как вы будете эмулировать posix threads на барметале..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, sasamy said:

она вообще 1.9G а RAM надо несколько гигов

 

Как я уже написал ранее:

3 hours ago, repstosw said:

нужен фонетический вокодер, а не перебор слов по словарю.

Поэтому Vosk/Kaldi уже не интересны.

 

2 hours ago, sasamy said:

Но вопрос - как вы будете эмулировать posix threads на барметале..

Обычно помогает снос этих pthreads и lpthreads.   Но это если сильно захотеть.   Например в коде с H264 - там они тоже были.  Снёс нафиг.   Ибо мультипоточность и мультизадачность в моих девайсах - не планируются.

Более продвинутые способы:  заменить специальной либой-суррогатом. В интернете есть. Но я не пробовал.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/12/2024 at 4:09 AM, repstosw said:

Обычно помогает снос этих pthreads и lpthreads.

помогает как раз их наличие - если есть 8 ядер код будет параллельно исполняться на 8 ядрах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 часов назад, repstosw сказал:

что для моих целей нужен фонетический вокодер, а не перебор слов по словарю.

Ну чтож, самое время запилить какое-то научное исследование по этому делу, думаю даже операторы связи этим тоже могут заинтересоваться)))

В принципе-то ничего сложного, проанализировать речевой поток, разбить его на повторяющиеся фонемы, один раз передать их на получающее устройство и уже там синтезировать с их помощью новый голосовой поток, вполне возможно он даже будет похож на исходный))

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/12/2024 at 9:11 AM, mantech said:

Ну чтож, самое время запилить какое-то научное исследование по этому делу

а на выходе будет очередной пук 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, sasamy said:

помогает как раз их наличие - если есть 8 ядер код будет параллельно исполняться на 8 ядрах

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

Помню, для T113-s3   делал одновременное воспроизведение двух видео H264 на одном дисплее (одно видео вверху, другое внизу дисплея). Заказчик так захотел. Без тредов всяких.

ИМХО треды - ЗЛО в embed,  они мешают портировать код на голое железо.

 

1 hour ago, mantech said:

Ну чтож, самое время запилить какое-то научное исследование по этому делу, думаю даже операторы связи этим тоже могут заинтересоваться)))

ОпСоСы как раз борятся с этим и блокируют симки. :biggrin:

 

1 hour ago, mantech said:

В принципе-то ничего сложного, проанализировать речевой поток, разбить его на повторяющиеся фонемы, один раз передать их на получающее устройство и уже там синтезировать с их помощью новый голосовой поток, вполне возможно он даже будет похож на исходный))

В русском языке всего 43 фонемы.  Фонемных пар по-больше.  Можно бить как на фонемы, так и на фонемные пары.  Основная сложность - поиск фонем в потоке, придётся делать скользящее окно, считать MFCC и сравнивать их с референсными значениями(которые должны быть получены в результате обучения с нарезок голоса): делать поиск по максимальному правдоподобию.  Ну и наверное, ещё и нормализацию по амплитуде не забыть, как вариант - АРУ.  Плюс активация по голосу VAD, чтобы отсеять шумы и всё, что не речевое.   В итоге пропадёт интонация и громкость, не говоря уже о передаче эмоций.

Одно не пойму, нафига тут питоны и нейронки?  Когда можно на голом С/C++ всё сделать: будет портируемость в промышленных масштабах. 🤣

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, repstosw сказал:

Под Линукс полностью собрал только Kaldi: https://habr.com/ru/articles/470696/

С ней использовал модель: kaldi-ru-0.7.tar.gz

 

Воск собирал под Виндой - libvosk и test_vosk.c.

Модель: vosk-model-small-ru-0.22.zip   (46 MB)

Я пытался использовать vosk. Вывод - непригоден для реальных условий "в поле". Дикторский текст распознает хорошо если например читать книжку в микрофон, как дело доходит до разговора в комнате выдает ахинею.

Хорошо работает whisper с моделью large v3  но оно дико медленное и нужны гигабайты ram, причем при работе на cpu параллелится только на 4 потока и Xeon не загружает совсем а топовой видеокарты с Cuda у меня не было.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, _3m said:

Хорошо работает whisper с моделью large v3  но оно дико медленное и нужны гигабайты ram, причем при работе на cpu параллелится только на 4 потока и Xeon не загружает совсем а топовой видеокарты с Cuda у меня не было.

Гигабайты памяти - не подходит для T113-s3.   Хотя, можно какой-нибудь 4-гиговый SPI NOR/NAND поставить - один фиг - для чтения.

 

Нашёл вот такую штуку: https://speech.fit.vutbr.cz/software/phoneme-recognizer-based-long-temporal-context

Это - именно для разбивки речевого потока на фонемы, без отсылки к громадным словарям слов.

С виду написана на C++.  Есть база для русского языка (около 27 МБ).   Пока не компилировал.

Проверил - работает достаточно сносно: phnrec -v -c PHN_RU_SPDAT_LCRC_N1500 -i test.raw -o output.txt

На входе - сырой файл(test.raw) отсчётов 8 кГц 16 бит беззнаковый:  конвертирую с помощью Audacity.

На выходе - текстовый файл(output.txt): отсчёты времени, фонемы и ещё какое-то число в конце.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, repstosw сказал:

Одно не пойму, нафига тут питоны и нейронки?

Питоны для лентяев, типа там одна команда делает больше, чем оно же на Сях, х.з. может и так, но синтаксис там жуть, как по мне... А нейронки, скорее всего, так проще делать сравнения по различающимся образам, голоса-то у нас всех разные, но общность одна, вот ее и выделяют нейронки.

1 час назад, repstosw сказал:

ашёл вот такую штуку: https://speech.fit.vutbr.cz/software/phoneme-recognizer-based-long-temporal-context

Это - именно для разбивки речевого потока на фонемы, без отсылки к громадным словарям слов.

Видимо без vpn-ов не пускает, а я ими не пользуюсь принципиально)))

3 часа назад, _3m сказал:

Вывод - непригоден для реальных условий "в поле".

Ну разумеется, вы б его еще для раций попробовали, где человек-то не всегда понимает, что там набулькали))))))))

4 часа назад, sasamy сказал:

а на выходе будет очередной пук

Пукайте, не стесняйтесь, что уж там)))))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/12/2024 at 1:09 PM, repstosw said:

Проверил - работает достаточно сносно

видимо авторы так не думают если с 2009 не обновлялось, если вам надо "сносный результат" есть доступный без впн "PocketSphinx — recognizer library written in C"

https://cmusphinx.github.io/

в buildroot из коробки одной галочкой включается, но там используется предыдущая версия

https://sourceforge.net/projects/cmusphinx/files/

Изменено пользователем sasamy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый вечер, а кто-нибудь проверял работу ISP_SCALER на F1C(работа с AVC) ?

Задаю параметры и включаю MACC_ISP_CTRL_SCALER_EN, далее все по шаблону jpeg(avc), но в конце получаю прерывание от VE со статусом failed(2). При этом длинна сжатых данных больше нуля 😃 Если не было поддержки, то чип ,наверное, просто игнорировал данные регистры, а тут ошибка - что-то другое.

Реализацию подсмотрел тут: https://github.com/milosladni/sunxi-tvin2jpeg_h264/blob/master/veisp.c

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

13 hours ago, repstosw said:

Нашёл вот такую штуку: https://speech.fit.vutbr.cz/software/phoneme-recognizer-based-long-temporal-context

Это - именно для разбивки речевого потока на фонемы, без отсылки к громадным словарям слов.

С виду написана на C++.  Есть база для русского языка (около 27 МБ).   Пока не компилировал.

Успешно собралось под Виндой с помощью Mingw32.   Правда Makefile пришлось дописать :

CFLAGS += -include cstring -include limits.h -Wno-narrowing

Так как эти хедеры не всегда неявно включены в другие.

 

12 hours ago, mantech said:

Ну разумеется, вы б его еще для раций попробовали, где человек-то не всегда понимает, что там набулькали))))))))

Чтобы не было булькания, в передатчике надо делать подъём АЧХ усилителя звука в области ВЧ - примерно на 6 дБ на октаву.   А в приёмнике наоборот - спад АЧХ перед УНЧ на столько же.  Тогда звук будет звонким.  Обратите внимание, какой звук дают рации ДПС'ников:  у них голос там с дребезгом и слышен даже в шумах.  А вот гражданские рации - действительно с "бу-бу-бу..." ибо нуждаются в коррекции АЧХ. 

 

9 hours ago, sasamy said:

видимо авторы так не думают если с 2009 не обновлялось

Зачем постоянно обновлять то, что работает?

 

9 hours ago, sasamy said:

если вам надо "сносный результат" есть доступный без впн "PocketSphinx — recognizer library written in C"

https://cmusphinx.github.io/

в buildroot из коробки одной галочкой включается, но там используется предыдущая версия

https://sourceforge.net/projects/cmusphinx/files/

Это опять поиск по словарю из готовых слов.  А мне нужно разбор на фонемы.

Вопрос решён.

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 часов назад, mantech сказал:

Успешно собралось под Виндой с помощью Mingw32.   Правда Makefile пришлось дописать :

Видимо без vpn-ов не пускает, а я ими не пользуюсь принципиально)))

Кому нужно без vpn - https://github.com/rampa069/PhnRec

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...