GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.8 (78)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Проект Sound-Agent. Инструментарий. Эксперимент.
Tester64
Сообщений: 1910
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 16 май 13 11:54
Цитата:
Причесывать прогу для совместного использования у меня нет сил.

Что Вы под этим подразумеваете??? Сетевую версию? Или общие исходники с удобной возможностью вмешиваться?

Если можно либо переведите на руский интерфейс, либо сделайте руские хинт-подсказки на кнопках. Чем отличается Play PlayMel?
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 16 май 13 12:35
Цитата:
Автор: Tester64

Что Вы под этим подразумеваете??? Сетевую версию? Или общие исходники с удобной возможностью вмешиваться?

Исходники
Цитата:
Автор: Tester64
Если можно либо переведите на руский интерфейс, либо сделайте руские хинт-подсказки на кнопках. Чем отличается Play PlayMel?

Ну я поторопился, описание не дописал... PlayMel - воспроизводит буфер, обработанный цифровым фильром с mel-шкалой. Сама mel-шкала состоит из 64 гармоник. 32 - линейные, остальные логорифмические.
(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 42, 45, 49, 52, 54, 57, 60, 63, 65, 68, 70, 73, 75, 77, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 101, 103, 105, 107, 108, 110)
Если каждую гармонику умножить на 25, то получатся реальные частоты фильтра.
В окне Image есть галочка Mel View будет видно образ с мел-шкалой
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 1:05
Руки не доходят перечитать исходники... Крайне тяжело читается. Не помешало бы разделить все либо на юниты, либо (еще удобнее) в обьекты/классы.
Советую такую "чистку" провести для начала:

1) Для начала выделите отдельный юнит для буфера хранящего запись с микрофона. Ничего другого там не нужно. Только механизм добавления и получения нужных записей из этого буфера. Тогда смогу помочь его доработать и прикрутить к нему механизм чтения/записи этого буфера из WAV-файлов.

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

3) Сделайте понятную кнопку открытия 2го окна с графикой. Не понятно как к этому относится "Save".

Советую при программировании крупных проектов (а не мелких 1 форменых утилиток)придерживаться правила - вся логика отдельно от форм. В формах лишь инициализация необходимых классов и связка графических компонент с логикой. Даже константы и массивы лучше хранить подальше от форм. В большом главном модуле (форме) тяжело ориентироваться и через пару месяцев тяжело востанавливать связи блоков в памяти.
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 1:37
Цитата:
Автор: Tester64
Руки не доходят перечитать исходники... Крайне тяжело читается.

Этт, точно... Чужие тексты, это не рОманы читать!
Но я об этом говорил, что причесывать и юниты сочинять - это дело имеет смысл, когда хоть какой то результат появится. Под результатом я понимаю концепцию распознавания на основе новизны.
Тут еще что. Вы какую цель имеете, когда хотите вникнуть в тексты?
Если что-то просто почерпнуть для себя, ну я на любой конкретный вопрос отвечу, или помогу вообще с какого бока понимать.
Если что-то в этом же ключе дальше делать, то это сложней, надо говорить... Например открываем Delphi - и пошли по ключевым моментам.
Все решается.
Могу по скайпу в быстром ключе. Вот например сегодня вечером.
Вот хорошо бы запихнуть WAV. У меня пока руки не доходят. Т.е. не в микрофон трендеть, а крутить WAV, заранее записанный другими приложениями.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 2:10
Цитата:
Под результатом я понимаю концепцию распознавания на основе новизны.

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

Цитата:
Тут еще что. Вы какую цель имеете, когда хотите вникнуть в тексты?
Скорее подкинуть Вам пару наработок по звуку из своих.

Цитата:

Если что-то просто почерпнуть для себя, ну я на любой конкретный вопрос отвечу, или помогу вообще с какого бока понимать.?
Моя концепция распознания сильно отличается от вашего подхода. Причем теория наработана только на бумажке и для проверки требует сложного 3х мерного отображения динамических полупрозрачных графиков с наложением, растягиванием, вращением. Возможность "нарезать" звуковые дорожки и минимально их обрабатывать (громкость, скорость проигрывания, чистка фильтрами) - простой звуковой редактор. Причем моего фурье должно хватать на то чтобы разложеный звук практически без потерь можно было бы собрать назад и проиграть... надо найти несколько НЕДЕЛЬ свободных от рабочих проектов, а это в ближайшие полгода точно не получится. Но потратить пару часов на Ваш (похожий) проект поможет мне не забыть основы...

Цитата:
Вот хорошо бы запихнуть WAV. У меня пока руки не доходят. Т.е. не в микрофон трендеть, а крутить WAV, заранее записанный другими приложениями.
Фишка в том что я уже эту стадию прошел давно, но мои наработки по работе с WAV тяжело прикрутить к чужому буферу закопанному глубоко в другие исходники и размазаному по многим модулям.
p.s. Теоретически можно было бы заставить знакомых (хотя-бы местных форумчан) проговорить ОДНУ фразу в WAV, скинуть ее Вам и научиться ее распознавать в общем аудио потоке... Как в Гугл глаз - "ок глас".
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 3:56
Цитата:
Автор: Tester64

Фишка в том что я уже эту стадию прошел давно, но мои наработки по работе с WAV тяжело прикрутить к чужому буферу закопанному глубоко в другие исходники и размазаному по многим модулям.

Для этой задачи вовсе не обязательно писать готовый модуль и сопрягать его с имеющимеся у меня буферами. Просто пример. Как в фильме "Иван Васильевич меняет проффесию" "Да, ты начни... А мы, переймём..."
[Ответ][Цитата]
dr2chek
Сообщений: 871
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 4:11
Цитата:
Автор: Kek


У каждого свой стиль. Свой я выращивал гугол лет.
Что вы имеете ввиду? Ошибки? Их есть у нас!

Причесывать прогу для совместного использования у меня нет сил.

Вы невнимательно читаете. Я говорю только об аддитивном шуме в канале микрофона, который есть неизбежная данность в реальной жизни, который предстоит отфильтровать, или же представить его как объект, и просто отсоединить из звуковой картины.
Программу я не скачивал, думаете стоит уже?
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 4:33
Цитата:
Автор: dr2chek
Вы невнимательно читаете. Я говорю только об аддитивном шуме в канале микрофона, который есть неизбежная данность в реальной жизни, который предстоит отфильтровать, или же представить его как объект, и просто отсоединить из звуковой картины.
Программу я не скачивал, думаете стоит уже?

У меня шумов нет. Их убирает звуковая карта. Создать специальный фильтр - это правильно, но это потом.
Прогамма пока интересна тем, что проигрывает и просматривает буфер после цифрового фильтра.
На данный момент я ковыряюсь уже с распознаванием кластеров по 64 байта. Можно погодить.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 5:43
Цитата:
Для этой задачи вовсе не обязательно писать готовый модуль и сопрягать его с имеющимеся у меня буферами. Просто пример. Как в фильме "Иван Васильевич меняет проффесию" "Да, ты начни... А мы, переймём..."
Мой пример сильно адаптирован под мой буфер, который в несколько раз (во много) сложнее Вашего. И мои наработки - модули общения с файлами, буферами, памятью, отладчиками... В текущем состоянии они Вам не помогут...Вот например одна из моих ранних программ:

Попробую найти "первоисходник" с которого начинал..
Возможно ЭТО поможет.

p.s. Например я разработал цилклический буфер из малюсеньких буферов (минимальное качество) которое легко динамически расширяется для получения любого качества (до наилучшего даваемого микрофоном/аудио-файлом) и до любого количества секунд (пока памяти хватает). Параллельное завязывание буферов для аудио, обработаного аудио, ФФТ разного вида... Естественно загрузка/сохранение в такой буфер - не обычные исходники, как и работа с микрофоном. Учитывая что микрофон и работу с аудио-файлами сделал отдельным классом, то его можно заменить на работу с сетевыми ауди-трансляциями.
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 6:18
Цитата:
Автор: Tester64
p.s. Например я разработал цилклический буфер из малюсеньких буферов (минимальное качество) которое легко динамически расширяется для получения любого качества (до наилучшего даваемого микрофоном/аудио-файлом) и до любого количества секунд (пока памяти хватает). Параллельное завязывание буферов для аудио, обработаного аудио, ФФТ разного вида... Естественно загрузка/сохранение в такой буфер - не обычные исходники, как и работа с микрофоном. Учитывая что микрофон сделал отдельным классом, то его можно заменить на работу с сетевыми ауди-трансляциями.

Замечательно!
Разрабатывать всякую визуализацию преобразований это не простое дело. Но у меня вопрос. В чем метод распознавания? Или дальше визуализаций не пошло... Трудов море...
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 6:36
Цитата:
В чем метод распознавания? Или дальше визуализаций не пошло... Трудов море...
Увы - да... на картинке ДАЛЕКО не последний ваириант - все пеереписано на OpenGL, долго изучал теорию чтобы сделать прозрачность и научится вычислять песечения графиков. Это оттуда скриншоты в посте. В первую очередь не хватает времени обьединить все свои наработки в этой области - графику, логику, дизайны, буферы, коллекции ауди-файлов...

Идея была в том чтобы Ваше "а" совместить с моим "а" наглядно, на 3Д-графиках всех вариаций (насколько хватит фантазии). А фантазия у меня богатая - несколько вариаций ффт(проверенно-надежных), обработанные разными функциями вроде производных... Возможно с небольшими модификациями - сжатие/растяжение или смена громкости. Что-бы подогнать "пики". А уж когда НАЙДУ ОПТИМАЛЬНЫЕ сходства - наиболее стабильные характеристики одного фонема, то уж тогда наложу ИИ-шные механизмы поиска. Как самый большой примитив - нейронную сеть... Хотя есть и более интересные предположения... Я посчитал что до этого сравнивать голоса не понимая его отличий рановато... В книгах ничего подобного не находил... Музыкантов-акустиков спрашивать бесполезно - общаются "семплами", "дорожками", "нотами"... Математиков тоже бесполезно - говорят о формулах разложения на пол доски не понимая физического смысла и не способны даже примерно это показать. Некоторые формулы ФФТ давали (в том числе и на 3Д картинке чуть выше) почти бесконечные пики, которые приходится нагло урезать, т.к. не знаю (пока) зависимости пика на ФФТ от максимальной громкости в буфере.

Поэтому и решил сначала походить "вокруг" звука, расмотреть его, прежде чем накидываться на уже общеизвестные и многократно опробованые методы распознания (которые "почему-то" не работают так как хочется)
[Ответ][Цитата]
Андрей
Сообщений: 3943
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 6:40
Цитата:
Автор: Kek
ты начни... А мы, переймём...
Создать wav-файл очень просто.
Пример:

type
TWaveHeader = record //это формат заголовка wav-файл
Marker1: Array [0..3] of Char;
BytesFollowing: LongInt;
Marker2: Array [0..3] of Char;
Marker3: Array [0..3] of Char;
Fixed1: LongInt;
FormatTag: Word;
Channels: Word;
SampleRate: LongInt;
BytesPerSecond: LongInt;
BytesPerSample: Word;
BitsPerSample: Word;
Marker4: Array [0..3] of Char;
DataBytes: LongInt;
end;

var
head1:TWaveHeader;
Channels,Resolution:word;
SampleRate,Duration:longint;
data1:array of byte;

implementation

procedure TForm1.FormCreate(Sender: TObject); //инициализации
begin
Channels:=1; //количество каналов
SampleRate:=22050; //частота дискретизации
Resolution:=8; //квантование
Duration:=20000; //длительность в микросекундах - от неё зависит размер данных
head1.BytesPerSecond:=(Channels * SampleRate * Resolution) div 8 ;
head1.DataBytes:=(head1.BytesPerSecond) * (Duration div 1000);
head1.Marker1:='RIFF';
head1.BytesFollowing:=head1.DataBytes + 36;
head1.Marker2:='WAVE';
head1.Marker3:='fmt ';
head1.Fixed1:=16;
head1.FormatTag:=1;
head1.SampleRate:=SampleRate;
head1.Channels:=Channels;
head1.BytesPerSample:=Channels * Resolution div 8;
head1.BitsPerSample:=Resolution;
head1.Marker4:='data';
setlength(data1,head1.DataBytes);
end;

procedure MakeWAVfile;
var i:integer;
x:tmemorystream;
begin
for i:=0 to high(data1) do begin
data1[i]:={данные}; //тут заполняем байтами каждый звуковой канал
end;

x:=tmemorystream.Create; //сохраняем в файл, используя, например, tmemorystream
try
x.Write(head1,44);
x.Write(data1[0],head1.DataBytes);
x.SaveToFile('c:\temp.wav'); // имя файла
finally
x.Free;
end;
end;

end.
[Ответ][Цитата]
Анатоль
Сообщений: 1964
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 8:24
Можно просто сохранять файл со звуковыми данными без всякого заголовка.
Если использовать всё время одну частоту записи (8 или 11 или 16 кгц.) и одну разрядность звука (8 или 16 бит) то никаких неудобств не будет.
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 9:18
Цитата:
Автор: Андрей
Создать wav-файл очень просто.

Отлично! Я примерно это и делаю. По крайней мере с буферами разобрался. А вот считать WAV файл, созданный другим приложением... Структура хидеров такая же? Вообще как хидер от даных отличить: по размеру?
[Ответ][Цитата]
Kek
Сообщений: 1133
На: Проект Sound-Agent. Инструментарий. Эксперимент.
Добавлено: 17 май 13 9:20
Цитата:
Автор: Анатоль

Можно просто сохранять файл со звуковыми данными без всякого заголовка.
Если использовать всё время одну частоту записи (8 или 11 или 16 кгц.) и одну разрядность звука (8 или 16 бит) то никаких неудобств не будет.

Анатоль, я вам письмо написал в личку, но протранслирую свой вопрос:

Можно вопрос по кепстральным коэфам.
У меня к примеру 40 частот по мел-шкале.
Все рекомендуют взять 12 кепстров.

Вот здесь для определенности:
http://habrahabr.ru/post/140828/

Последняя формула для ДКП:
M = 40
Считается С[n], где 0< n<M

Вопрос - максимальное количество коэфов = М
Но мы берем 12. А какие это 12?
Вариант 1 - первые по порядку.
Вариант 2 равномерно распределенные от 0 до М с разрядкой.
[Ответ][Цитата]
 Стр.8 (78)1  ...  4  5  6  7  [8]  9  10  11  12  ...  78<< < Пред. | След. > >>