• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

AMR аудио кодек. Возможно ли прикрутить?

p-a-h-a

Member
Как успехи? Получилось перенести speex на esp'ху? Столкнулся с похожей ситуевиной. Нужно передавать речь с микрофона на сервак, а городить аппаратно уж слишком накладно. Просчитывал вариант STM32WB5MMG + STA013 - цена кусается очень.
Тоже жду когда кто-то это сделает. Не хватает у меня знаний. Периодически гуглю. Пока ничего. Читал что wifi помехи дает на АЦП. Мне это не важно. Я могу во флеш писать, потом отправлять.
 

fifo654

New member
Тоже жду когда кто-то это сделает. Не хватает у меня знаний. Периодически гуглю. Пока ничего. Читал что wifi помехи дает на АЦП. Мне это не важно. Я могу во флеш писать, потом отправлять.
На днях попробовал пособирать speex-1.2.1. Вроде libogg-1.3.5 собралась. Пока не ковырял дальше, так как проверить все равно пока нет возможности - нет микрофона. Заказал на али и надеюсь придет. Ты до куда продвинулся в сборке?
 

p-a-h-a

Member
На днях попробовал пособирать speex-1.2.1. Вроде libogg-1.3.5 собралась. Пока не ковырял дальше, так как проверить все равно пока нет возможности - нет микрофона. Заказал на али и надеюсь придет. Ты до куда продвинулся в сборке?
Не продвинулся, т.к. не понял как это делается, вроде только линукс или мак.....
Посмотри на эту библиотеку https://github.com/earlephilhower/ESP8266Audio В ней файлик opus_encoder.c тут https://github.com/earlephilhower/ESP8266Audio/tree/master/src/libopus
Возможно это то что нужно? Останется разобраться как заставить все работать.
Сама библиотека позиционируется как аудиоплеер разных форматов.
Тут описание https://opus-codec.org/docs/opus_api-1.3.1/group__opus__encoder.html
 

fifo654

New member
Не продвинулся, т.к. не понял как это делается, вроде только линукс или мак.....
Посмотри на эту библиотеку https://github.com/earlephilhower/ESP8266Audio В ней файлик opus_encoder.c тут https://github.com/earlephilhower/ESP8266Audio/tree/master/src/libopus
Возможно это то что нужно? Останется разобраться как заставить все работать.
Сама библиотека позиционируется как аудиоплеер разных форматов.
Тут описание https://opus-codec.org/docs/opus_api-1.3.1/group__opus__encoder.html
Похоже, что opus это хорошая альтернатива speex. Вроде бы оба заточены для IP телефонии.
 

fifo654

New member
Не продвинулся, т.к. не понял как это делается, вроде только линукс или мак.....
Посмотри на эту библиотеку https://github.com/earlephilhower/ESP8266Audio В ней файлик opus_encoder.c тут https://github.com/earlephilhower/ESP8266Audio/tree/master/src/libopus
Возможно это то что нужно? Останется разобраться как заставить все работать.
Сама библиотека позиционируется как аудиоплеер разных форматов.
Тут описание https://opus-codec.org/docs/opus_api-1.3.1/group__opus__encoder.html
Пришел китайский микрофон на MAX9812. Буду подключать. И пробовать собирать библу;) Подключайтесь
 

p-a-h-a

Member
Методом тыка получилось собрать speex под ESP32-S3. Пытаюсь кодировать синусоиду пока в буфер (массив).
Что делаю: Кодирую фрейм синусоиды (20мс) в speex, из speex декодирую в PCM и вывожу масив в Serial. На выходе не совсем то что хотелось бы видеть, но похоже. Вот пример сжатой и расжатой синусоиды 1 кГц с качеством сжатия 10, частотой дискретизации 8000гц:
1737308366398.png
Фрейм ни что иное как массив, который можно сохранять в файл.
Звук записывают обычно в два буфера. При заполнении первого буфера его отдают кодировщику с последующей записью в файл/передачей. В это время заполняют второй буфер.

То с чем пока не могу разобраться:
Не могу как либо расшифровать записанные данные в файл формата Speex на ПК.
Для коректного воспроизведения на ПК фреймы нужно не просто писать в файл а в контейнер, например ogg где нужно записывать метаданные о типе файла его свойствах и т.д.

В прикрепленном файле проект для platformio c arduino core. Кодирует синусоиду и выводит в Serial результат.
В файлике littlefs.cpp.txt попытка записи синусоиды в файл speex. После записи поднимается web сервер и можно скачать файл 192.168.ххх.ххх/download и востановленные данные 192.168.ххх.ххх/txt но с полученными файлами я ничего не смог сделать.
1737309622311.png
 
Сверху Снизу