реклама на сайте
подробности

 
 
8 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Речевой кодек для задачи, поставленной GeGel, Приводятся примеры исходного и сжатого речевым кодеком сигнала
Mister_DSP
сообщение Nov 6 2016, 12:14
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Милливольт, спасибо за поддержание темы и беседу!
Было интересно скачать и послушать образцы звуков.

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

Я пытаюсь сейчас найти свой "критерий Шеннона", компромисс своего рода между разборчивостью речи и дальностью связи, которая зависит от чувствительности приемника. Более низкий битрейт позволяет либо с-узить полосу пропускания приемника, либо увеличить спред-фактор, либо навернуть бОльший коэфициент избыточности в FEC (в RFM96 она аппаратная 5/4 ... 8/4). Забыл написать, что в ней корелляционный приемник, могущий принимать сигнал на десятки децибелл меньше шума.

Моя цель: сделать сверхдальние приемо-передатчики для служебной связи. Вопросы шифрования имеют второстепенное значение.

В вашем же проекте как я понял, основной упор идёт на протаскивание зашифрованного канала через сети GSM с устойчивостью к атакам взлома и де-анонимизации всех мастей.
Тоже интересное направление и восстребованное как и хорошими так и плохими дядьками sm.gif - крайне рисковано.

Нашёл тему про проброс канала здесь на форуме (старая) "криптофон", в гугле ищется.
Также видел репозиторий от ув. человека GeGel, он почему-то использует MELP1200 с Fixed Point - у меня эта версия на STM32 легла не очень хорошо: требуется повышение частоты в 3-4 раза или оптимизация на асме.
Взял MELP2400 c Floating Point - она на STM32 пашет реактивно с FPU.

Всё-же если можно, было бы интересно ваш кодек протестить на предмет сжатия/качества звука : у вас есть скомпилированный бинарник под Win32, который мог бы сжимать/разжимать?

На vrtp в тему добавил новый пост.

Сделал несколько звуковых проб своими модами вокодеров: test1, test2. Приложил ниже.

Codec2 на 300 bps проигрывает по качеству - звучание с MELP 489 bps лучше. ИМХО.

Прикрепленный файл  test1.zip ( 932.52 килобайт ) Кол-во скачиваний: 25

Прикрепленный файл  test2.zip ( 976.26 килобайт ) Кол-во скачиваний: 22



Ещё вопрос, встречал тут тему про кодек MELP(e), насколько ясно из темы с доступностью MELP 2400/1200 проблем особо нет, но кому-нибудь удалось достать MELPe 600 bps именно версию от Federal Standard ? Я понимаю, что можно самому доработать, но всё-ж было бы интересно взглянуть на реализацию "от первых рук".

Поиск в Гугле по именам констант/переменных закончился только упоминанием о 1200 и 2400.

Ниже выложил кодеки Codec2 300 bps с препроцессором шума и MELP 489 bps под Win32 для экспериментов. На вход требует моно файл 8 кГц 16 бит без wav-хедера (0.raw).

Прикрепленный файл  melp_489bps.zip ( 730.46 килобайт ) Кол-во скачиваний: 28


Прикрепленный файл  codec2_300bps.zip ( 918.14 килобайт ) Кол-во скачиваний: 27



Сообщение отредактировал Mister_DSP - Nov 6 2016, 11:35


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 6 2016, 14:00
Сообщение #17


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Цитата(Mister_DSP @ Nov 6 2016, 13:14) *
[

Моя цель: сделать сверхдальние приемо-передатчики для служебной связи. Вопросы шифрования имеют второстепенное значение.


Это дело почтенное...


Цитата
В вашем же проекте как я понял, основной упор идёт на протаскивание зашифрованного канала через сети GSM с устойчивостью к атакам взлома и де-анонимизации всех мастей.
Тоже интересное направление и восстребованное как и хорошими так и плохими дядьками sm.gif - крайне рисковано.


Никак нет. Нехай они все околеют, и террорюги, и борцы с ними.

Спасибо за иллюстрации - их всегда не хватает. В качестве ответа прилагаю первые звуки моего ребеночка с универсальным алфавитом. http://exfile.ru/483070 (эквалайзер пока не подключен)
Скорость около 800 без сжатия выходного цифрового потока - со сжатием получается около 300.
Т.к. пока к тестированию не готов (проклятая математика, которую как ни облизывай, все равно - дураком будешь), скажу в пояснение следующее:
Отличие разработанного мной кодека заключается в том, что кодируется не речь, а ее короткие фрагменты. При экспериментальной работе (в предположении, что общепринятая модель генерации голоса неверна) выяснилось: в речевом сигнале есть участки повышенной стационарности. Т.е. если рассматривать процесс как нестационарный (в широком(!) смысле), то при коротких реализациях можно найти особые точки, в окрестностях которых стационарность резко возрастает, и процесс можно считать эргодическим(NB!). Экспериментально установлено, что эти точки встречаются в речевом сигнале с плавающим периодом от 5 до 20 мсек, и чаще всего (но не обязательно) их период совпадает с периодом "пульса" речи. Энергетические спектры этих реализаций несут всю информацию об эргодической составляющей (математиков прошу не кривиться) процесса. А оставшаяся стохастическая компонента нам и не нужна.
Для радиосвязи получается замечательная ситуация: один раз в 5...20 мсек мы передаем номер спектра (всего-лишь!). Все остальное время можем молчать. А для демодулятора лучше будет, если мы передаем этот номер непрерывно в виде какой-то, допустим, синусоидальной посылки. Т.е. есть особая точка - передаем частоты 1 и 5 к примеру. Пока не пришла следующая точка, тогда передаем следующие частоты 2 и 11 к примеру. При такой передаче свертка этой синусоиды с ее копией, а еще проще - спектроанализатор скользящего окна на выходе демодулятора, дадут нам хорошее приближение к теоретическому оптимуму по энергии. А уж если нам известны частоты или их комбинации, которые могут встречаться, и которые не могут - то простейший корректирующий код будет несложно организовать хоть в реальном времени.
Т.е. все как-то "удобно упаковывается" для радиосвязи. И неудобно для криптографии, но тут я дилетант. Впрочем, сейчас каждый программист, не говоря о системщиках, знает криптографию вдоль и поперек, и имеет собственный метод, причем гарантированной стойкости.

Сообщение отредактировал Милливольт - Nov 6 2016, 14:02
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 6 2016, 15:02
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Ваш уровень знаний в математике(в терминологии) выше, чем мой. Я не совсем хорошо владею терминологией и некоторые моменты в посте не понял.
Предположу в своих терминах, что в вашем вокодере используется "таблично-волновой" метод синтеза речи: в режиме обучения человеческая речь нарезается на кусочки и составляется алфавит ортогональных нетривиальных речевых фрагментов фиксированной длительности (с алгоритмом отсева похожих повторов). А уже непосредственно при кодировании/декодировании идёт распознавание речевого фрагмента - сравнение его с элементами из алфавита и выбор наиболее похожего.
Классические схемы вокодеров больше "частотно-синтезные", чем "таблично-волновые". Как с музыкальными синтезаторами: FM-синтезатор и WaveTable-синтезаторы. Что-то похожее между принципами есть...

Тогда на базе такого вокодера можно сделать "именные телефоны", которые закреплены за одним человеком или группой людей(с функцией переключения банков речи).

Без кодовой книги - с универсальным алфавитом: я ничего не смог понять, когда прослушал последнюю запись.


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 6 2016, 15:51
Сообщение #19


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Цитата(Mister_DSP @ Nov 6 2016, 16:02) *
Тогда на базе такого вокодера можно сделать "именные телефоны", которые закреплены за одним человеком или группой людей(с функцией переключения банков речи).


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

Сообщение отредактировал Милливольт - Nov 6 2016, 15:51
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 7 2016, 08:36
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Тоесть конечного результата/продукта не будет?
А если отбросить коммерцию, доступно ли повторение вашей конструкции радиолюбителями?


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
GeGeL
сообщение Nov 8 2016, 19:35
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 403
Регистрация: 29-04-11
Из: Украина
Пользователь №: 64 682



Цитата(Mister_DSP @ Nov 6 2016, 15:14) *
В вашем же проекте как я понял, основной упор идёт на протаскивание зашифрованного канала через сети GSM с устойчивостью к атакам взлома и де-анонимизации всех мастей.
Тоже интересное направление и восстребованное как и хорошими так и плохими дядьками sm.gif - крайне рисковано.

Это как раз таки в моем проекте. Ув. Милливольт придерживается противоположного мнения.

Цитата(petrov @ Sep 29 2016, 14:00) *
1. Научно-техническое творчество - абсолютная ценность, тут и обсуждать нечего.
2. Такие вещи полезны для общества как естественный противовес против тотального перевеса в игре одного субъекта по отношению к другим субъектам.

Золотые слова. Добавлю лишь, что ни я, ни кто другой не вправе делить дядек на плохих и хороших.

Mister_DSP, ваша тема весьма созвучна с работами David Rowe, у них сильная комьюнити, стоит присоединиться.
Да, давно я не заходил на vrtp - интересный монолог у Вас. И что примечательно, я тоже сейчас насилую дешевые китайские LoRa-модули sm.gif

Цитата(Милливольт @ Nov 6 2016, 13:45) *
Справедливое (по Вашей ссылке) замечание о неуниверсальности решения с предварительной отправкой "алфавита" в цифровой форме. Пытаюсь обойти эту трудность - сделать алфавит универсальным. Пришлось отказаться от иллюстраций во временной области - звук, увы, в этом случае становится "вокодерным".

Многие отказываются от голосового общения в пользу того же Torchat только из-за возможности идентификации, и не просто так в Торфоне появился вокодер, убирающий из параметров избыточную индивидуальную информацию, облегчающую идентификацию. Поэтому у меня есть огромный интерес к разработке кодека, сохраняющего разборчивость, но максимально обезличивающего голос. И это намного более востребовано, чем кажется, спросите, например, на том же SilkRoad sm.gif

И вопрос по поводу перфоманса MELPE: хватил ли STM32F446 (180MHz/225DMIPS) для одновременной работы кодера/декодера?
Как вариант, сейчас использую $13 NanoPi:

http://www.friendlyarm.com/index.php?route...;product_id=109

(OpenHW/OpenSW, Debian) с $5 MicroSD, $3 USB WiFi, $4 2.4' TFT+TouchPad и $7 PowerBank.

Прекрасное портативное решение для OnionPhone и телефонии через Tor, но слишком прожорливое для PairPhone. Хотелось бы подобрать более адекватное железо для этой цели.
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 8 2016, 21:46
Сообщение #22


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Цитата(GeGeL @ Nov 8 2016, 20:35) *
Многие отказываются от голосового общения в пользу того же Torchat только из-за возможности идентификации, и не просто так в Торфоне появился вокодер, убирающий из параметров избыточную индивидуальную информацию, облегчающую идентификацию. Поэтому у меня есть огромный интерес к разработке кодека, сохраняющего разборчивость, но максимально обезличивающего голос. И это намного более востребовано, чем кажется, спросите, например, на том же SilkRoad sm.gif

Как неожиданно... У нас после долгих обсуждений, прослушиваний и даже ругани было сформулировано требование: не хуже MP3! А то нежные юноши и еще более нежные девы с гневом отвергнут неполноценную поделку из недоразвитой области Ойкумены. Я выметал икру и весь богатейший словарный запас, но не признать правоту коммерсантов не могу.
Этого, понятное дело, достичь невозможно. Но кое-что улучшить удалось: http://exfile.ru/483111
А тут еще оказалось, что и компрессор недопустим. Ни в каком виде. В общем, - абсолютно гробовая тема.

Сообщение отредактировал Милливольт - Nov 8 2016, 21:48
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 9 2016, 05:59
Сообщение #23


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Да, увы, к сожалению сегодняшнее молодое поколение "большого пальца" требует качества MP3(кстати оно тоже разное бывает и далеко не всегда самое разборчивое при 8 кГц sm.gif ).
И если ориентироваться на сегмент "нежных дев", то это тупиковый путь в получении гешефта за девайсы.
Такой кодек может быть очень сильно восстребован когда нужно получить высокий бюджет линка без требований к качеству речи.
Могу посоветовать поискать других заказчиков - пожарная / МЧС / альпинисты / геологи..... радолюбители "со специфическим уклоном" также будут рады.

Цитата
Но кое-что улучшить удалось: http://exfile.ru/483111

ИМХО отлично вышло! Разборчивасть приемлема для служебной связи. Главное понятно что сказано.

При прослушивании Ваших записей периодически слышу эффект "стука каблуком сапога Петра Великого об паркетный пол sm.gif " Что весьма придаёт оттенок Петровской России, что забавно - как будто задиктовывают царские указы! sm.gif Но это так, эмоции...

Что касается Дэвида Рува и присоединения к его коммунити.
Дэвид работает над Codec2 и насколько понял разборчивость вполне устраивает. Хотя Codec2 на 700 бит/с звучит хуже чем MELPe 600. ИМХО.
На счет радиотракта - у него классическая NFM, с LoRa режимами и подшумовым приемом замечен мной не был.

А на счёт обезличивания голоса, ИМХО можно вокодировать с постоянным Pitch-ем. Вот, приложил варианты голосовых проб с постоянным дефолтовским Pitch-eм. ЕМНИП =50.0 в MELP. В итоге имеем "голос робота", хозяина которого установить невозможно? (или уже и это возможно?)

Прикрепленный файл  robot_melp_489bps.rar ( 475.75 килобайт ) Кол-во скачиваний: 31


Цитата
Как вариант, сейчас использую $13 NanoPi:

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

Сообщение отредактировал Mister_DSP - Nov 9 2016, 06:01


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 9 2016, 21:51
Сообщение #24


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Цитата(Mister_DSP @ Nov 9 2016, 06:59) *
При прослушивании Ваших записей периодически слышу эффект "стука каблуком сапога Петра Великого об паркетный пол sm.gif " Что весьма придаёт оттенок Петровской России, что забавно - как будто задиктовывают царские указы! sm.gif Но это так, эмоции...

Огромная, просто гигантских размеров благодарность! Ваше точное наблюдение здорово помогло.
Я не обращал на это внимание, а следовало бы! Причину и следствия доложу попозже.
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 10 2016, 08:19
Сообщение #25


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Добавлю: в результате проблема с универсальным алфавитом успешно решилась. Он обещает быть не более 10КБ, что для современных ЗУ вполне приемлемо. Прилагаю иллюстрацию, в которой два голоса, причем в алфавите пока нет кластеров, полученных из женских голосов(NB!).
Чуть не сдох за две ночи.
http://exfile.ru/483127
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 10 2016, 09:31
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Какой битрейт у последнего образца?
По распознаваемости хорошо, даже пол голоса можно отличать.

Кодовую книгу можно сделать больше, современные контроллеры имеют около 1 Мбайта флеша, поэтому не проблема.
Главное чтобы неявно РАМу не жрал (как это с Codec2) - а то понапишут malloc-и - и потом сиди думай сколько памяти на кучу(heap) отводить sm.gif

У моего мода MELP489 тоже есть один призвук: слегка пукает когда тишина, но это вокодер так акустический шум с микрофона вокодирует.
Проблема решается простым Noise-Killer-ом:
Цитата
#define NOISE 50

u8 NoiseKiller(s16* buf)
{
u32 i=FRAME;
s32 a=0;
while(i--)if(*buf<0)a-=*buf++;
else a+=*buf++;
if((a/FRAME)<NOISE)
{
memset((void*)(buf-FRAME),0,FRAME<<1);
return 1;
}
return 0;
}


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 10 2016, 11:46
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Цитата(Mister_DSP @ Nov 10 2016, 10:31) *
Какой битрейт у последнего образца?


Пока динамический. Т.е. каждые 5...20 мсек идет один байт номера кластера. Несжатые данные для приведенной иллюстрации уложились в 850 бит/сек (женский голос требует несколько большего количества данных вследствие более высокой частоты следования посылок). Если убирать периоды молчания и хотя бы в простейшем виде сжимать выходную цифровую последовательность (а она хорошо сжимается даже классическим Хаффменом) то легко выйти на 300. Дальше надо извращаться, но пока не до того, бардак в программе дикий.

Кстати, по поводу возможности неидентификации голоса абонента: в предлагаемом методе все получается легко и просто. http://exfile.ru/483128
Можно сравнить с предыдущей иллюстрацией. И это не работа УСЧ, восстановить исходные частоты формант и посылок обратным преобразованием не удастся.

Сообщение отредактировал Милливольт - Nov 10 2016, 14:18
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 10 2016, 14:55
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



ИМХО VBR для радиосвязи не очень, потому что на лету не есть камильфо дёргать регистр бодрейта передатчика/приемника. Ну и синхронизировать как-то надо. Поэтому берется максимальный (пиковый битрейт).


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Милливольт
сообщение Nov 10 2016, 15:12
Сообщение #29


Участник
*

Группа: Участник
Сообщений: 68
Регистрация: 17-05-15
Пользователь №: 86 729



Цитата(Mister_DSP @ Nov 10 2016, 15:55) *
ИМХО VBR для радиосвязи не очень, потому что на лету не есть камильфо дёргать регистр бодрейта передатчика/приемника. Ну и синхронизировать как-то надо. Поэтому берется максимальный (пиковый битрейт).


В каноническом варианте - именно так. А мы попробуем адаптировать модулятор к особенностям кодера. Ведь речь идет о полудуплексе. Заодно и синхронизацию можно будет похерить. Если на входе спектроанализатор скользящего окна... Но то такэ... Сначала надо для демонстрации серьезности заявки передать цифровой сигнал поверх GSM.
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 11 2016, 12:39
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 133
Регистрация: 5-11-16
Пользователь №: 94 050



Ниже выложил пробу звука на 978 бит/с - это тоже что и MELP 1200, только без битов FEC.
Средний вариант между 1956 bps и 489 bps.

Прикрепленный файл  proba_978_bps.rar ( 2.68 мегабайт ) Кол-во скачиваний: 27


Как видно, уже такого битрейта хватает на предельное распознавание речи в развлекательных радиопередачах.

Ну ещё 4 пробы звука с микрофона: оргигнал, melp 978, и пара обезличенных проб: робот с высоким и низким значением Pitch:

Прикрепленный файл  melp_978bps_examples.rar ( 952.71 килобайт ) Кол-во скачиваний: 24


sm.gif

Ну и сам вокодер для достоверности в экспериментах:
Прикрепленный файл  MELP_978BPS.rar ( 364.13 килобайт ) Кол-во скачиваний: 34


Сообщение отредактировал Mister_DSP - Nov 11 2016, 12:22


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post

8 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd August 2017 - 21:18
Рейтинг@Mail.ru


Страница сгенерированна за 0.22923 секунд с 7
ELECTRONIX ©2004-2016