LINUX.ORG.RU

Разработка архитектуры системы хранения дорожек меток для звуковых файлов.


0

1

Вот на этом интерфейсе: http://audigger.sourceforge.net/ru/ можно увидеть пару текстовых дорожек вдоль звуковой дорожки, показанной в виде сонограммы, звук можно показывать и в виде волны ( http://a.fsdn.com/con/app/proj/audigger/screenshots/2013-07-05---03-34-45.85.jpg ), но на сонограмме больше информации о характере звука.

Вопрос в наилучшей (по вашей куче критериев) архитектуре системы хранения этих текстовых дорожек и привязки их к звуковым данным. Текущая архитектура создавалась в рассчёте на минимальное вмешательство в существующие коллекции звуковых файлов пользователя. Например, я отказался от идеи хранить рядом с каждым звуковым файлом дополнительные файлы и ушёл в концепцию отдельных баз треков.

База треков - это множество треков разных типов. Физически это может быть папка с файлом index, база в СУБД или база в облаке, доступная через определённое API.

Главная функция базы - это найти треки, ассоциированные с данным или выдать вообще все треки.

Когда я открываю файл /tmp/123.wav и создаю для него текстовую дорожку, то сохранить эту дорожку я обязан какой-либо базе (или создать базу на лету). Программа сохраняет туда этот текстовый трек, ассоциируя его с хешем файла 123.wav.

Если я открываю 123.wav с любого места, программа находит во всех подключенных базах текстовые треки, ассоциированные с хешем этого файла.

Плюсы:
* не засираем каталоги пользователя, где он до нашего появления хранил звук.
* не зависим от имён файлов, а только от содержимого
* удобно организовывать текстовые дорожки по базам - «лекции физика», «база шумов» и др. Можно передать базу текстовых треков и у другого человека начнут появляться текстовые дорожки для уже существующих звуковых файлов, если у него были такие же, как у вас
* если базу расшарить через сетевой сервис, то несколько людей смогут добавлять туда треки, например коллективно аннотируя большой объём звуковых данных.

Насчёт зависимости от сожержимого: отредактировал wav-файл - хеш поменялся, текстовые дорожки отвалились. Их обычно немного, передобавить вручную не проблема. Но обычно аннотируют файлы, которые никому не нужно редактировать. Обычно, текстовые метки присваивают неким неизменяемым звуковым трекам, выделяя в них что-то нужное. Конечно ты мог редактировать в нашей программе и тогда дорожки бы пофиксились автоматически, но это другой вопрос, должна быть свобода выбора редактора.

Ещё есть функция экспорта баз семплов. Наотмечал каких-нибудь звуков на наборе звуковых файлов общим объёмом несколько ГБ, а база семплов - это новая база с автоматически созданными звуковыми и текстовыми треками, откуда исчезло всё, что не охватывалось никакими метками в исходной базе.

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

nogaemz ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.