У Вас отключён JavaScript
на нашем форуме KaraokeFun
это категорически запрещено!!!


Яндекс.Погода

KARAOKE FUN

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » KARAOKE FUN » СПРАШИВАЛКА » Поиск по тексту


Поиск по тексту

Сообщений 1 страница 6 из 6

1

Всем доброго!
Скажите как обстоят дела с поиском по тексту? в karafun player

Отредактировано artem.la222 (2016-12-01 14:02:50)

0

2

В общем задача такая - необходима вытащить тексты из kfn файлов. И на основе этих текстов создать индексы для поиска по тексту песен.
Может у кого есть инфа по формату kfn ?

0

3

artem.la222 написал(а):

В общем задача такая - необходима вытащить тексты из 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-файлов лирика. А СУБД выполнит запрос на поиск требуемого шаблона в имеющихся наборах лирики песен.
      Вот как-то так. Можете пробовать писать такую систему поиска. Если получится - поделитесь со всеми форумчанами. Они будут вам благодарны.

0

4

Спасибо, Lexx_1971, за столь развернутый ответ. Да, я  уже позже в кодировке utf-8 псомотрел... с форматом все понятно . С неблокированных вытащить текст не составит проблем.  Про блокированные мне кажется здесь спрашивать бессмысленно))

0

5

Yesss)))   Блокированные файлы тоже победил

0

6

Обращайтесь кому нужно разблокировать))))

0


Вы здесь » KARAOKE FUN » СПРАШИВАЛКА » Поиск по тексту