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

 
 
8 страниц V  « < 4 5 6 7 8 >  
Reply to this topicStart new topic
> Речевой кодек для задачи, поставленной GeGel, Приводятся примеры исходного и сжатого речевым кодеком сигнала
Aner
сообщение Nov 21 2016, 08:47
Сообщение #76


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



Жесткие требования по кварцу как раз таки есть. Лучше находить 2ppm, 5 ppm похуже. Обычно подешевле дотупны 10ppm_ные, на этой плате он и установлен. Тут нужно не забывать что такая высокая чувствительность ( или бюджет линка) во многом обеспечивается идеальными условиями и отлаженным, согласованым RF трактом с учетом антенны, не столько малой полосой.
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 21 2016, 11:05
Сообщение #77


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

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



Цитата(GeGeL @ Nov 21 2016, 09:44) *
400bps - это хорошо. Я так понимаю, фрейм у Вас остается 22.5 mS. Не пробовали играть с параметрами MELPE1200, объединяющего 3 фрейма? Или сделать все по документу на 600 (4 фрейма, 90mS)?


Оригинальный MELP 2400:
фрейм 180 семплов = 22,5 ms
биты:
LSF 25 = 7 +6 +6 + 6
FMag 8
Pitch 7
Gain 8
BPV 4
Jitter 1
Sync 1
Итого: 54 бита на 1 фрейм

Мои преобразования в 400 бит/c:
фрейм 640 семплов = 80 мс
LSF 13 = 7+ 6 (msvq_index 3,4 выкинул - это составляющие высшего порядка, не смертельно)
FMAg = 0 - полностью убрал (полагаю, это дубляж инфы LSF для реализации исправления ошибок по FEC) - в melpe-600 их нет
Pitch 7
Gain 8
BPV 4 - оставил фильтры как есть (а то женский голос может стать мужским)
Jitter =0 - выкинул
Sync =0 - это вообще выкинул не задумываясь
Итого: 32 бита или 4 байта ровно

Зло тут ИМХО в длинном фрейме: местами речь похожа на мычание.

Показывал знакомым: 50 на 50: одни говорят неприемлемо, другие считают - приемлемо.

Касаемо документов, я нашёл:

1) Real Time Implementation of 600 bps MELP Vocoder

2) Stanag 4591 .. the 600 bps 1200 bps and 2400 bps NAT0 interoperable narrow band voice coder (с подписью вица-адмирала)

3) New Nat0 stanag narrowband voice coder 600 bps

Но у меня не так много знаний в голове чтобы выполнить ВСЁ что там предлагается.

На "Попугае Какаду" на 600 бит/с(с сайта melpe) всё-же речь разборчивее чем на моём моде 400 бит/с.
Прикрепленный файл  fspeech_600_demo.wav ( 253.79 килобайт ) Кол-во скачиваний: 57


А на счет софта на RFM96 - так в инете его куча , проблем особо нет. Правда, я родил свой инклуд (модуль) для RFM96 на основе подобной библиотеки..

А вот мой "Какаду" на 400 бит /с. Из слышимых недостатков: местами невнятная речь и эффект звучащей струны:
Прикрепленный файл  kakadu400.wav ( 255.04 килобайт ) Кол-во скачиваний: 48


Надо бы попробовать несколько коротких фреймов обработать(4) и обобщить лишь часть параметров и сунуть в пакет (как в melpe 600).

Цитата(Aner @ Nov 21 2016, 09:47) *
Жесткие требования по кварцу как раз таки есть. Лучше находить 2ppm, 5 ppm похуже. Обычно подешевле дотупны 10ppm_ные, на этой плате он и установлен. Тут нужно не забывать что такая высокая чувствительность ( или бюджет линка) во многом обеспечивается идеальными условиями и отлаженным, согласованым RF трактом с учетом антенны, не столько малой полосой.

С вами согласен, при полосах уже 62 кГц, лучше использовать TCXO. А те кварцы что у меня стоят - разнятся на 300+ Гц, но на UHF набег аж в 3,6 кГц дал.
За неимением лучшего - скорректировал множитель синтезатора в приемнике, так чтобы этот набег компенсировался.

А на счёт ВЧ трактов, я индикатором напряженности поля нашел частоту при которой показания индикатора поля максимально. И надеюсь что на приеме ВЧ тракт братьями-китайцами сделан правильно!

Антенна - диполь полуволновый раскрыв 135 - 180 градусов 50-75 Ом. Так что в принципе ВЧ часть терпимо.

Ранее с CC1101 экспериментировал, так результаты были хуже - жуткая интерференция даже в комнате: приём глох

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


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 22 2016, 06:16
Сообщение #78


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

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



Попробовал объединить некоторые параметры из 4-х соседних фреймов. Ничего путного не вышло, возможно из-за отсутствия расширенной кодовой книги.

Сделал так 600 бит/с:
LSF: 7 бит (msvq_index[0], остальные не используются)
PITCH: 7
Gain: 8
BPVC: 4
итого: 26 бит/фрейм

длина фрейма 348 байт.

Вариант "советского какаду" с таким конфигом:
Прикрепленный файл  kakadu_348.wav ( 255.61 килобайт ) Кол-во скачиваний: 48


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 22 2016, 11:31
Сообщение #79


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

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



Наверное, я помешался на вокодерах, но идея получить 200-300 бит/с при граничной разборчивости меня не оставляет совсем......

Освоил мульти-фреймовое кодирование, всё-же смог утрамбовать биты от 4-х фреймов.
Вот первые результаты:

600 бит/с (фрейм 320 семплов - в 2 раза меньше по сравнению с предыдущим образцом 640 семплов - выросла разборчивость):
Прикрепленный файл  melpe600bps.wav ( 444.42 килобайт ) Кол-во скачиваний: 49


Ну и ради пробы 300 бит/с (фрейм 640 семплов - как в старой копии):
Прикрепленный файл  melpe300bps.wav ( 445.04 килобайт ) Кол-во скачиваний: 49


По сравнению с предыдущим 300 бит/с - не трещит!

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

В записях звука есть небольшое дрожжание тона, как в фирменном "какаду" скачанного с сайта melp.


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 28 2016, 09:39
Сообщение #80


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

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



Возможно пригодится ув. GeGel и остальным кто в теме вокодеров.

В репозитории piarphone в папке melpe, есть файлик "mathhalf_i.h". Из него убрать всё вида:

Код
    if ((acc > MAX_40) || (acc < MIN_40) || (acc != floor(acc))) {
        fprintf(stderr, "BASIC_OP: Error in 40 bits format.\n");
        exit(0);
    }


Инными словами - убрать всё что касается printf с проверкой и вычисление условия.
На тестовом образце кодирование уменьшилось с 8 секунд до 3,5 с.

Пока всё. Дальше ещё посмотрим что можно сделать....


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
DASM
сообщение Nov 29 2016, 07:13
Сообщение #81


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Mister_DSP @ Nov 28 2016, 12:39) *
Возможно пригодится ув. GeGel и остальным кто в теме вокодеров.

В репозитории piarphone в папке melpe, есть файлик "mathhalf_i.h". Из него убрать всё вида:

Код
    if ((acc > MAX_40) || (acc < MIN_40) || (acc != floor(acc))) {
        fprintf(stderr, "BASIC_OP: Error in 40 bits format.\n");
        exit(0);
    }


Инными словами - убрать всё что касается printf с проверкой и вычисление условия.
На тестовом образце кодирование уменьшилось с 8 секунд до 3,5 с.

Пока всё. Дальше ещё посмотрим что можно сделать....

я не понял, там что #ifdef DEBUG нету??
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Nov 29 2016, 16:07
Сообщение #82


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

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



Цитата(DASM @ Nov 29 2016, 08:13) *
я не понял, там что #ifdef DEBUG нету??

Если б было, то я об этом здесь не писал.
Дальнейший анализ этого злосчастного MELP 1200 привело меня к профайлингу.
Пытался вычислить что там так безбожно тормозит.
В итоге нашёл ответ : ВСЁ !!!
Даже замена функций вещественными БПФ и ДПФ ничего не даст, так как остальной код целочисленный и приходится конвертить целое в вещественное туда-обратно.
Видел этот референс с АСМ-инструкциями для Ti.

Так что остаётся лепить из 2400, с чего и начинал.

Обращался в Ti, сказали фиг мы вам что дадим, так как вы - не крупная фирма с громким именем! (dspini.com)
Хотел там сорцы TWELP 300 купить. Посмотреть реализацию.

Однако я сам на пороге 300 бит/с с качеством лучшим чем Codec2 450 bps! smile3046.gif


--------------------
SPY vs. SPY
Хорошо там, где нет ничего...
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Dec 7 2016, 11:10
Сообщение #83


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

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



Все ушли на фронт или есть что нового?


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


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

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



Цитата(Mister_DSP @ Dec 7 2016, 12:10) *
Все ушли на фронт или есть что нового?

Пока ничего. Рыдал над ГОСТом. Полностью повторил методику поверки. Пришлось очень много переделать. Но до "отлично" не дотянул, да и не получится, видимо. Но честное "хорошо" есть. Если интересно, выложу иллюстрации для 800...
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Dec 7 2016, 15:25
Сообщение #85


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

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



я тоже остановился на 600 бит/с - это как раз компромисс между чутьем приемника и разборчиостью.
есть версия на 300 бит/с - но голос слегка робототехнический.

с версией 600 бит/с - фрейм 240 семплов (30 мс)
с 300 бит/с - фрейм 320 семплов (40 мс)

в принципе речь стационарна до 30 мс. так что я особо не грущу - сойдёт и так! sm.gif

занят рисованием печатной платы....

ну на счет образцов - если нетрудно, выложите плиз.


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


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

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



Цитата(Mister_DSP @ Dec 7 2016, 16:25) *
я тоже остановился на 600 бит/с - это как раз компромисс между чутьем приемника и разборчиостью.


Прикрепленный файл  19.WAV ( 353.74 килобайт ) Кол-во скачиваний: 47

Прикрепленный файл  20.WAV ( 303.74 килобайт ) Кол-во скачиваний: 30
Прикрепленный файл  21.WAV ( 286.08 килобайт ) Кол-во скачиваний: 33

Прикрепленный файл  22.WAV ( 116.08 килобайт ) Кол-во скачиваний: 22
Прикрепленный файл  54.WAV ( 143.74 килобайт ) Кол-во скачиваний: 25



Сообщение отредактировал Милливольт - Dec 7 2016, 15:42
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Dec 8 2016, 11:19
Сообщение #87


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

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



и всё-же я смотрю, вы отклонились от первоначальной задумки: конкретный словарь на 1 человека.
всё-же на 100 бит/с звучало великолепно (в самом первом посте)


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


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

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



Цитата(Mister_DSP @ Dec 8 2016, 12:19) *
и всё-же я смотрю, вы отклонились от первоначальной задумки: конкретный словарь на 1 человека.
всё-же на 100 бит/с звучало великолепно (в самом первом посте)

Да, пока дела неважные. Эти записи сделаны для словаря "из двух человек", и именно их голоса и используются.
Т.е. работы еще до дьявола и больше.
Плохо с детскими голосами (большое отличие основного тона вверх) и т.п.
Сделали обсуждение этой темы. Результаты не радуют.
1. Научная ценность - 0 (здесь я согласен)
2. Никакого практического применения при отсутствии полностью универсального алфавита (спорно, на мой взгляд)
3. Применимость даже при полном успехе - сомнительная, т.е. заменить стандартный кодек 2400 на 800 даже при идентичном качестве - ничего не дает,
разумнее просто поработать над расширением полосы пропускания (пожалуй, согласен)
4. Коммерческие перспективы нулевые - ловить пару децибел в радиосвязи бессмысленно,
а повысить, допустим, пропускную способность каналов связи без разработчиков этих каналов - не по чину слэйвз (наверное, где-то так)
5. Затраты на реализацию алгоритма на современном программном уровне потенциально очень велики (с учетом зарплаты программистов) - а таких денег нет и не предвидится (вынужден согласиться).

Т.е. поиграться можно, но реальность - увы - вот она.
Go to the top of the page
 
+Quote Post
Mister_DSP
сообщение Dec 8 2016, 11:51
Сообщение #89


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

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



Основная задумка с вокодерами: с их помощью поднять бюджет линка, за счёт увеличения чутья приемника из-за с-ужения полосы пропускания(понижения скорости битов).

Мои данные получены на практике:
1) MELP 2400 бит/с - чутьё -124 дБм
2) Codec2 300 бит/с - чутьё -135 дБм

Выигрыш между 2) и 1) в 11 дБм, а это в 3,5 раза увеличена дальность при прочих равных. Это же здОрово!

С детскими голосами действительно проблема. Даже с MELP sm.gif Потому что как писали сами TI (они придумали MELP), кодовая книга составлена из мужксих и женских голосов дикторов (взрослые) TIMT на многих языках + немного аборигенов прихватили sm.gif


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


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

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



Цитата(Mister_DSP @ Dec 8 2016, 12:51) *
Выигрыш между 2) и 1) в 11 дБм, а это в 3,5 раза увеличена дальность при прочих равных. Это же здОрово!


Это если считать "напрямую" в безэховой камере, например. А в реальности подстилающий эфирный шум сильно подпортит картину.
Кроме того, во много раз проще и дешевле увеличить мощность, чем выжимать последние капли имени Бриллюэна. Тем более, надежность связи будет тем выше, чем пропорционально больше мощность передатчика относительно мощности шумов, которые могут неожиданно (Sic!) превысить свой базовый уровень.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 15th June 2025 - 17:31
Рейтинг@Mail.ru


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