Всем доброго!
Скажите как обстоят дела с поиском по тексту? в karafun player
Отредактировано artem.la222 (2016-12-01 14:02:50)
KARAOKE FUN |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » KARAOKE FUN » СПРАШИВАЛКА » Поиск по тексту
Всем доброго!
Скажите как обстоят дела с поиском по тексту? в karafun player
Отредактировано artem.la222 (2016-12-01 14:02:50)
В общем задача такая - необходима вытащить тексты из kfn файлов. И на основе этих текстов создать индексы для поиска по тексту песен.
Может у кого есть инфа по формату kfn ?
В общем задача такая - необходима вытащить тексты из kfn файлов. И на основе этих текстов создать индексы для поиска по тексту песен.
Может у кого есть инфа по формату kfn ?
А вам, собственно, зачем формат KFN? Вы хотите сами написать программу, которая будет искать фонограммы KFN по тексту песни в них? А как вы себе представляете использование такой программы отдельно от проигрывателя?
Поделиться сведениями о формате KFN я могу, но поможет ли это вам? Судя по тому, что вы задали этот вопрос - вы не программист.
Не буду глубоко вдаваться в подробности формата KFN, но по вашему вопросу могу сообщить следующее.
Формат KFN - закрытый формат. Разработан он французской фирмой - разработчиком KaraFUN. По сути своей KFN - это контейнер, который содержит все файлы проекта и блоки с различной информацией. В начале контейнера располагаются звуковые и видео файлы. В конце - заголовки, лирика, фреймы и прочая информация.
Если KFN-файл не блокированный, то данная информация лежит в нём в открытом виде и извлечь её оттуда не составляет труда. Если файл блокированный, то вся информация, кроме звуковых файлов, видео и картинок кодируется в бинарный вид, в том числе и лирика. Поэтому извлечь из кодированного файла можно только звуковые, видео файлы и картинки.
Чтобы получить наглядное представление откройте любой не блокированный KFN-файл редактором NOTEPAD++. Этот текстовый редактор хорошо поддерживает структурированные файлы и работает со всеми кодировками. перейдите в конец файла. Там вы увидите интересующую вас лирику. Записывается она в контейнере - EFF#, который обозначает номер дорожки. Хранится лирика в KFN-файле в кодировке UTF-8. Поэтому если она будет отражаться некорректно, то поменяйте кодировку в настройках редактора. Формат контейнера лирики внутри файла KFN следующий:
[Eff2] <---- номер дорожки (в редакторе KarFUN Studio, нумерация сверху вниз)
ID=1 <---- идентификатор текстовой дорожки (их может быть несколько)
InPractice=1 <--- имеет текст
Enabled=-1 <--- префикс активной дорожки (-1 - дорожка активная)
Locked=0 <--- префикс блокировки (0 - не блокировано)
Sync0=1947,1960,1993,2010,2033,2050,2088,2112,2137,2342,2358,2376,2390,2417,2441,2472,2511,2531,2562,2581,2755,2769,2798,2835,2862,2887,2912,2939,2969,2997,3200,3235,3261,3283,3302,3314,3339,3365,3393,3423,3449 <--- блок синхронизации слогов или слов по времени в миллисекундах до разрыва (проигрыша, где выводится на экран тайм-линия)
Sync1=7059,7097,7114,7135,7156,7173,7189,7220,7248,7267,7487,7521,7537,7569,7604,7628,7649,7678,7706,7737,7916,7953,7975,7998,8017,8044,8063,8079,8116,8140,8299,8322,8349,8377,8416,8432,8471,8488,8510,8527,8572
Sync2=8602,9167,9193,9223,9241,9279,9310,9339,9372,9398,9422,9483,9606,9624,9662,9684,10020,10043,10067,10087,10128,10150,10166,10195,10225,10242,10266,10308,11766,11804,11818,11837,11856,11870,11882,11898,11994
Sync3=12019,16857,16893,16911,16943,16969,16988,17007,17033,17126,17158
Font=Arial*280 <--- Имя шрифта, которым выводится текст на экране
ActiveColor=#FFFFFFFF <--- Цвет текста песни после пропения
InactiveColor=#0000FFFF <--- Цвет текста песни до пропения
FrameColor=#0000FFFF <--- Цвет подложки текста после пропения
InactiveFrameColor=#FFFFFFFF <--- Цвет подложки текста до пропения
FrameType=Frame5 <--- Размер шрифта текста песни
Alignment=Center <--- Режим центрирования текста при выводе на экран
Trajectory=PlainBottomToTop*1.000000*1.000000*1.000000*1.000000 <--- Параметры траектории движения текста
SelTextEffect=NoEffect*1.000000*1.000000*1.000000*1.000000 <--- Эффект исчезновения текста после пропения
OffsetX=0 <--- Смещение начальной точки вывода текста по оси X
OffsetY=0 <--- Смещение начальной точки вывода текста по оси Y
OffsetZ=31 <--- Смещение глубины (перспектива)
IsFade=1 <--- Режим вывода текста (вертикальный текст/караоке)
AspectRatio=1.1 <--- Масштаб текста
IsFill=1 <--- Заполнение текста (прозрачность)
NbAnim=0 <--- Анимация текста
TextCount=19 <--- Количество строк в лирике
Text0=За/иг/ра/ло тан/го неж/ных роз <--- Строка лирики с разбиением на слоги
Text1=В тан/це/валь/ном за/ле на пар/ке/те
Text2=В вол/шебст/ве дви/же/ний рук и ног
Text3=За/жи/га/ли в тан/це на/ши де/ти
Text4=
Text5=На/ше тан/го в го/родс/ком са/ду
Text6=на/ше тан/го На реч/ном при/ча/ле
Text7=На/зы/ва/ли нас с то/бой тог/да
Text8=луч/шей па/рой
Text9=в пят/над/ца/том квар/та/ле
Text10=
Text11=Где се/реб/ром тво/е
Text12=иск/ри/лось плать/е
Text13=тво/и сло/ва
Text14=В подъ/ез/де по/це/лу/и и объ/ять/я
Text15=
Text16=Все же бы/ло на/ше тан/го бы/ло
Text17=
Text18=Все же бы/ло на/ше тан/го бы/ло
InSync=1 <--- Префикс полного режима синхронизации
Если вы хотите вы хотите вытащить из не блокированного KFN-файла лирику и искать в ней совпадение с заданным шаблоном, то нужно написать некую программу обработчик, которая будет открывать KFN-файл, искать в нём Переменную TextCount, считывать её значение. Далее в этой программе должен быть парсер, который будет пасрить лирику (приводить её в текстовый вид). Этот парсер должен получить значение переменной TextCount (в нашем примере TextCount=19), далее считать следующие за этой переменной 19 строк. Потом отбросить в начале каждой строки префикс Text0= и удалить из оставшегося текста все символы "/". В результате, на выходе из парсера мы получим исходную лирику. Теперь программа должна выполнить символьное сравнение словосочетания образца для поиска с содержанием лирики (для этого так же нужно писать алгоритм). Если словосочетание найдено необходимо пометить файл, как искомый, если нет, то перейти к следующему.
И как, вы сами понимаете производить каждый раз такой поиск по всем файлам KFN, если их у вас несколько тысяч - дело не быстрое. Поэтому необходимо задуматься об использовании СУБД. В БД будет хранится предварительно вынутая из KFN-файлов лирика. А СУБД выполнит запрос на поиск требуемого шаблона в имеющихся наборах лирики песен.
Вот как-то так. Можете пробовать писать такую систему поиска. Если получится - поделитесь со всеми форумчанами. Они будут вам благодарны.
Спасибо, Lexx_1971, за столь развернутый ответ. Да, я уже позже в кодировке utf-8 псомотрел... с форматом все понятно . С неблокированных вытащить текст не составит проблем. Про блокированные мне кажется здесь спрашивать бессмысленно))
Yesss))) Блокированные файлы тоже победил
Обращайтесь кому нужно разблокировать))))
Обращайтесь кому нужно разблокировать))))
Вы хотите сказать, что научились снимать блокировку с файлов kfn?
Если так, то я бы дал Вам Нобелевскую премию.
НАУЧИТЕ, КАК ???
Я в программе Notepad++ искал слово "Locked" в кодированных файлах, чтоб поменять на "0", но не нашел.
Печалька...
Да, блокировку можно снять. Там чуть-чуть сложнее чем просто найти слово locked.
Как это практически делается, я наверное корректно умолчу)) Будем уважать труды людей-форумчан.
Меня всего лишь поиск по тексту песен интересовал.
Вы хотите сказать, что научились снимать блокировку с файлов kfn?
Если так, то я бы дал Вам Нобелевскую премию.
НАУЧИТЕ, КАК ???
Я в программе Notepad++ искал слово "Locked" в кодированных файлах, чтоб поменять на "0", но не нашел.
Печалька...
Эта информация с сайта: http://k.....
Забавно... Ещё один сайт, который накачав KFN с разных источников, начинает ими торговать. Развелось шарлатанов выше крыши! Скачивают бесплатно, изменяют дизайн для придания одинакового вида и продают. Укатайка! Про цены вообще промолчим... Только полный идиот может платить подобные суммы в долларах. И замечу один момент - нет ни физического адреса; ни сведений о том, кому пренадлежит сайт"; нет конкретных реквизитов хозяина сайта. Это просто очередной поход за лохами!
Только-только пошла на спад волна торгующими взломанным Encore, а тут новая авантюра. Не удивлюсь, если за всеми этими "махинациями" стоят одни и те же люди. Кстати, хорошо известные в кругах, близких к караоке-тематике.
Да, блокировку можно снять. Там чуть-чуть сложнее чем просто найти слово locked.
Как это практически делается, я наверное корректно умолчу)) Будем уважать труды людей-форумчан.
Конечно, вы правы. Это я не подумав сморозил глупость. Прошу прощения. Конечно, нужно уважать чужой труд. Согласен на все 100.
Lexx_1971
Признаю, написал глупость, не подумав. Это подло, взламывать чужие работы, согласен. Ну не подумал, каюсь. Извините, буду впредь внимательней.
Я уважаю очень этот форум и не хочу делать ничего никому во вред.
P.S. Решил еще вот дописать. Понимаете, в чем тут дело. Ведь меня, собственно, совершенно не интересуют чьи-то заблокированные карафаны, поверьте. Я в состоянии написать kfn любой сложности и на любую тематику. Тут просто чисто спортивный интерес, ну, просто интересно, как любознательному человеку, и не более того.
Отредактировано jorgebesito (2016-12-06 23:08:02)
А я уже вот-вот доделаю "Екстрактор текстов" из kfn. как закончу выложу в общее пользование
Обращайтесь кому нужно разблокировать))))
не могли бы вы разблокировать эту песню https://cloud.mail.ru/public/KdEA/jNv3LZcU9
за ранние спасибо
В общем бэта-версия. Абсолютно не претендует на правильность и оптимизацию когда, главное работает. Есть разные баги. Блокированные файлы не подсовывайте))
Как пользоваться:
1. Столбец path должен содержать список абсолютных путей до ваших KFNок. Получить можно через тотал командер, если базу не ведете.
2. Есть два запроса Extract_Lyrik и Group_Lirik
Первый просканирует и извлекет текст в таблицу, второй заполнит поле LYRIK_INDX - лирика без повторов слов.
... Теперь можно искать дубликаты по тексту.., и много-много чего..
В общем бэта-версия.
При попытке запустить скачанный файл вылезает вот такое окно и на этом всё заканчивается.
При попытке запустить скачанный файл вылезает вот такое окно и на этом всё заканчивается.
Какая версия access у вас?
Вы здесь » KARAOKE FUN » СПРАШИВАЛКА » Поиск по тексту