This media is not supported in your browser
VIEW IN TELEGRAM
В следующем посте я постараюсь рассказать о главном улучшении - возможности добавлять озвучку в разговорник, а так же о некотором упрощении логики работы контекста разговорника. А пока, вот небольшая демонстрация.
После ещё некоторого успешного тестирования и оптимизаций, уверенно считаю, что работать с разговорником стало легче, а принципы его работы - более просты. Продолжаем разбор новых функций.
Упрощённая структура блоков
Напомню, что каждая фраза в разговорнике состоит из блоков, каждый из которых является машиной конечных состояний. Эти блоки изменяют глобальный контекст и реагируют на его изменения. Этот контекст является общим для фраз на всех отображаемых языках. Раньше у каждого блока было поле требований, которые, если не удовлетворены, полностью скрывали блок. Ещё у каждого состояния в блоке был свой набор условий, каждое из которых могло вдобавок быть пассивным. Эта система работала, но мне всё не давала покоя её ненужная сложность, и я сильно желал её упростить.
Теперь же функции требований для отключения блока объединены с условиями состояний. Каждый тег в условии состояния может быть в одном из 3х состояний: игнорирован, запрошен, либо предоставлен. Запрошенный тег, если отсутствует в контексте, скрывает данное состояние. Предоставляемый тег, при показе состояния, посылается в глобальный контекст. При изменении соответствующих свойств контекста каждый блок составляет рейтинг из своих состояний на основе их предоставляемых тегов, и показывает первое из них, либо никакое, если ни одно состояние не нашло все запрашиваемые теги. Абстрактно это может звучать несколько сложно, но на примере должно стать понятно.
Простая фраза с двумя блоками: "ду вянда (я иду)" . Первый блок - я - может быть в одном из двух состояний: "ду (ед.)" и "нисса (мн.)". Первое состояние предоставляет в контекст информацию о том, что лицо в единственном числе, а второе - что во множественном. Далее, второй блок - иду - может быть в одном из трёх состояний: "вянда (муж.)", "рянда (жен.)", "дянда (мн.)". Первое состояние, прежде всего, требует, чтобы человек в контексте был в единственном числе, и предоставляет информацию о том, что он - мужчина. Второе состояние выдвигает то же требование, и предоставляет то, что человек - женщина. А третье состояние не предоставляет ничего, лишь требуя, чтобы лицо было во множественном числе, так как эта информация уже предоставлена во втором состоянии первого блока. Изменение отображаемого состояния в любом блоке с предоставляемыми тегами посылает цепную реакцию через контекст во все другие блоки во всех языках. Вот как-то так.
Упрощённая структура блоков
Напомню, что каждая фраза в разговорнике состоит из блоков, каждый из которых является машиной конечных состояний. Эти блоки изменяют глобальный контекст и реагируют на его изменения. Этот контекст является общим для фраз на всех отображаемых языках. Раньше у каждого блока было поле требований, которые, если не удовлетворены, полностью скрывали блок. Ещё у каждого состояния в блоке был свой набор условий, каждое из которых могло вдобавок быть пассивным. Эта система работала, но мне всё не давала покоя её ненужная сложность, и я сильно желал её упростить.
Теперь же функции требований для отключения блока объединены с условиями состояний. Каждый тег в условии состояния может быть в одном из 3х состояний: игнорирован, запрошен, либо предоставлен. Запрошенный тег, если отсутствует в контексте, скрывает данное состояние. Предоставляемый тег, при показе состояния, посылается в глобальный контекст. При изменении соответствующих свойств контекста каждый блок составляет рейтинг из своих состояний на основе их предоставляемых тегов, и показывает первое из них, либо никакое, если ни одно состояние не нашло все запрашиваемые теги. Абстрактно это может звучать несколько сложно, но на примере должно стать понятно.
Простая фраза с двумя блоками: "ду вянда (я иду)" . Первый блок - я - может быть в одном из двух состояний: "ду (ед.)" и "нисса (мн.)". Первое состояние предоставляет в контекст информацию о том, что лицо в единственном числе, а второе - что во множественном. Далее, второй блок - иду - может быть в одном из трёх состояний: "вянда (муж.)", "рянда (жен.)", "дянда (мн.)". Первое состояние, прежде всего, требует, чтобы человек в контексте был в единственном числе, и предоставляет информацию о том, что он - мужчина. Второе состояние выдвигает то же требование, и предоставляет то, что человек - женщина. А третье состояние не предоставляет ничего, лишь требуя, чтобы лицо было во множественном числе, так как эта информация уже предоставлена во втором состоянии первого блока. Изменение отображаемого состояния в любом блоке с предоставляемыми тегами посылает цепную реакцию через контекст во все другие блоки во всех языках. Вот как-то так.
Raxys Studios
После ещё некоторого успешного тестирования и оптимизаций, уверенно считаю, что работать с разговорником стало легче, а принципы его работы - более просты. Продолжаем разбор новых функций. Упрощённая структура блоков Напомню, что каждая фраза в разговорнике…
Для полноты описания стоит ещё дать краткое объяснение переходам между состояниями в блоке. Во всё той же фразе, первый блок свободно переключается между "ду (ед.)" и "нисса (мн.)", изменяя множественность лица. Во втором же блоке, "дянда (мн.)" не имеет перехода, так как вся его информация уже задаётся через "нисса". А вот "вянда (муж.)" и "рянда (жен.)" так же могут свободно переключаться между собой, дополняя единственное число лица ещё и его родом.
Raxys Studios
В следующем посте я постараюсь рассказать о главном улучшении - возможности добавлять озвучку в разговорник, а так же о некотором упрощении логики работы контекста разговорника. А пока, вот небольшая демонстрация.
Последние посты по большей части рассказывали о доработке интерфейса редакторов и об общих улучшениях сайта. А теперь про ключевое пользовательское обновление.
Звуковое сопровождение разговорника
Главная сложность озвучки нашего разговорника в том, что звук должен меняться вместе с изменением отображаемого текста. Рассмотрим предложение из четырёх слов, в котором изменяются первое и последнее: "[ Мне ] нужно увидеть [ врача ]".
Предположим, длительность произношения каждого слова - 1 сек., тогда всё предложение (не важно в какой вариации) - 4 сек. Допустим, мы не разбиваем аудиофайл предложения на слова, а записываем и проигрываем всё целиком. В первом блоке у нас четыре вариации: "мне, тебе, ему,адыгэ уей уей", а во втором - три: "врача, юриста, полицейского". 4 * 3 = 12 вариаций конечного предложения. Если, как уже было сказано, каждая вариация занимает 4 сек., то всё это займёт 4 * 12 = 48 сек. записи.
А теперь представим, что мы записываем не всё предложение целиком, а именно каждый блок по отдельности. Первый блок - 4 вариации - 4 сек. Второй блок - статичный текст "нужно увидеть" - 2 сек. Третий блок - 3 вариации - 3 сек. Итого: 4 + 2 + 3 = 9 сек.
9 сек. с разбивкой против 48 сек. без разбивки. И это лишь одно, вероятно, не самое сложное предложение. И таких у нас будут многие десятки. Каждое из них записывать в полных вариациях - огромный объем рутинной работы, которая будет лишь увеличиваться, и которую можно избежать.
Работает это достаточно просто. По нажатию кнопки система собирает тексты всех отображаемых блоков во фразе, и проигрывает друг за другом файлы с соответствующими именами. Так, если фраза находится в состоянии "[ Мне ] нужно увидеть [ врача ]", то система ищет файлы "Мне.mp3", "нужно увидеть.mp3", "врача.mp3", и проигрывает их, пропуская отсутствующие файлы. При изменении какого-либо блока изменяется и название запрашиваемого файла. Эти файлы хранятся в папках
На этом я успешно завершаю основополагающую техническую работу на ближайшее время. Теперь, наконец, плотно приступаем к составлению разговорника. Об этом расскажем на следующей неделе.
Звуковое сопровождение разговорника
Главная сложность озвучки нашего разговорника в том, что звук должен меняться вместе с изменением отображаемого текста. Рассмотрим предложение из четырёх слов, в котором изменяются первое и последнее: "[ Мне ] нужно увидеть [ врача ]".
Предположим, длительность произношения каждого слова - 1 сек., тогда всё предложение (не важно в какой вариации) - 4 сек. Допустим, мы не разбиваем аудиофайл предложения на слова, а записываем и проигрываем всё целиком. В первом блоке у нас четыре вариации: "мне, тебе, ему,
А теперь представим, что мы записываем не всё предложение целиком, а именно каждый блок по отдельности. Первый блок - 4 вариации - 4 сек. Второй блок - статичный текст "нужно увидеть" - 2 сек. Третий блок - 3 вариации - 3 сек. Итого: 4 + 2 + 3 = 9 сек.
9 сек. с разбивкой против 48 сек. без разбивки. И это лишь одно, вероятно, не самое сложное предложение. И таких у нас будут многие десятки. Каждое из них записывать в полных вариациях - огромный объем рутинной работы, которая будет лишь увеличиваться, и которую можно избежать.
Работает это достаточно просто. По нажатию кнопки система собирает тексты всех отображаемых блоков во фразе, и проигрывает друг за другом файлы с соответствующими именами. Так, если фраза находится в состоянии "[ Мне ] нужно увидеть [ врача ]", то система ищет файлы "Мне.mp3", "нужно увидеть.mp3", "врача.mp3", и проигрывает их, пропуская отсутствующие файлы. При изменении какого-либо блока изменяется и название запрашиваемого файла. Эти файлы хранятся в папках
{lect}/audio/phrasebook/{phrase.id}, а prhase.id можно скопировать в редакторе разговорника. Таким образом, озвучка буквально собирается на ходу под текущий вариант фразы.На этом я успешно завершаю основополагающую техническую работу на ближайшее время. Теперь, наконец, плотно приступаем к составлению разговорника. Об этом расскажем на следующей неделе.
За последний месяц я пытался по-разному подходить к составлению разговорника, и понял две вещи:
1. Решения о том, какие фразы включать и как их организовывать, не должен принимать один человек, особенно такой некомпетентный как я.
2. Составление должно быть итеративным процессом, поскольку объём работы слишком велик, а ресурсы слишком малы, чтобы взять и разом всё сделать.
Поэтому работа по корпусу теперь проводится в обновляемом документе, и весь языковой материал, напоминаю, хранится на ветке репозитория. Все желающие могут комментировать и предлагать дополнения к корпусу, а также добавлять перевод для своего языка на сайт через инструменты редактирования. Такой получается Crowd & Open Source.
Я планирую придерживаться такого плана: одна неделя - составление нового раздела корпуса и его переводов, следующая - добавление голоса и текста на сайт. И так по кругу в течение пары месяцев. Думаю, это оптимальный режим для последовательной работы, который позволит мне не перегорать, и в то же время даст достаточно времени для обсуждений. По необходимости будем корректировать план.
Несколько спонтанная первая итерация завершается сегодня. Я её форсировал, так как хотел иметь какой-то базовый результат. По итогам у нас имеется первая секция "Greeting & Parting" с 9ю простыми фразами, переведёнными на кайтагский (текст & голос), иронский (текст & голос) и керенский (текст) (благодарю Таймураза из @ironau_online и Абдурахима из @ruxavus за их помощь). На следующей неделе займусь составлением следующего раздела. Надеюсь, удастся придерживаться темпа.
1. Решения о том, какие фразы включать и как их организовывать, не должен принимать один человек, особенно такой некомпетентный как я.
2. Составление должно быть итеративным процессом, поскольку объём работы слишком велик, а ресурсы слишком малы, чтобы взять и разом всё сделать.
Поэтому работа по корпусу теперь проводится в обновляемом документе, и весь языковой материал, напоминаю, хранится на ветке репозитория. Все желающие могут комментировать и предлагать дополнения к корпусу, а также добавлять перевод для своего языка на сайт через инструменты редактирования. Такой получается Crowd & Open Source.
Я планирую придерживаться такого плана: одна неделя - составление нового раздела корпуса и его переводов, следующая - добавление голоса и текста на сайт. И так по кругу в течение пары месяцев. Думаю, это оптимальный режим для последовательной работы, который позволит мне не перегорать, и в то же время даст достаточно времени для обсуждений. По необходимости будем корректировать план.
Несколько спонтанная первая итерация завершается сегодня. Я её форсировал, так как хотел иметь какой-то базовый результат. По итогам у нас имеется первая секция "Greeting & Parting" с 9ю простыми фразами, переведёнными на кайтагский (текст & голос), иронский (текст & голос) и керенский (текст) (благодарю Таймураза из @ironau_online и Абдурахима из @ruxavus за их помощь). На следующей неделе займусь составлением следующего раздела. Надеюсь, удастся придерживаться темпа.
Тема следующего раздела разговорника - basic communication. Это набор базовых фраз, междометий, выражений знакомства, и вопросов по незнакомому языку. Начальный набросок раздела есть, будем вносить правки до конца этой недели, а на следующей - перевод.
А также ряд технических улучшений:
— Доработан поиск в разговорнике, так что теперь можно искать и по тексту переводов. Например, при выбранном иронском, введя в поиск "райсом", отобразится фраза c "good morning".
— Теперь все блоки, чьё состояние изменилось с последним нажатием, синхронно мигают, чтобы было легче понять что с чем связано.
— Добавлена возможность выделять жирным участки текста. Так, в иронском это используется для обозначения ударения.
— Улучшена работа локального хранилища посредством загрузки всей текстовой информации в фоновом режиме. После короткой начальной загрузки, при переходе из домашней карты, все модули (фонетика, конвертер, разговорник), а не только текущий, будут доступны и без подключения к интернету (за исключением аудио).
— Аудиофайлы переведены в формат .m4a - звуки должны грузиться чуть быстрее.
— Убрана возможность окрашивания определённых морфем в словах, потому что это несколько запутывало и, в целом, было ненужно.
А также ряд технических улучшений:
— Доработан поиск в разговорнике, так что теперь можно искать и по тексту переводов. Например, при выбранном иронском, введя в поиск "райсом", отобразится фраза c "good morning".
— Теперь все блоки, чьё состояние изменилось с последним нажатием, синхронно мигают, чтобы было легче понять что с чем связано.
— Добавлена возможность выделять жирным участки текста. Так, в иронском это используется для обозначения ударения.
— Улучшена работа локального хранилища посредством загрузки всей текстовой информации в фоновом режиме. После короткой начальной загрузки, при переходе из домашней карты, все модули (фонетика, конвертер, разговорник), а не только текущий, будут доступны и без подключения к интернету (за исключением аудио).
— Аудиофайлы переведены в формат .m4a - звуки должны грузиться чуть быстрее.
— Убрана возможность окрашивания определённых морфем в словах, потому что это несколько запутывало и, в целом, было ненужно.
Опрос по словарям
За прошлую неделю по разговорнику ничего не сломалось, а заполнение материала идёт согласно плану. Думаю, можно начинать активнее размышлять над добавлением словарей на сайт. Наверняка вам приходилось взаимодействовать с электронными словарями. Тогда, пожалуйста, расскажите в комментариях к этому посту о своём опыте. Какие неудобства у вас возникали, какие функции вы хотели бы видеть, какая информация вам в нём нужна. Мне полезно знать, какие болевые точки имеются при работе со словарями, чтобы постараться исправить их.
У меня есть некоторые размытые идеи по анализу текста, по созданию корпуса и т.д., но я не представляю всего этого без качественного словаря. Электронный словарь - такая фундаментальная вещь, и по многим кавказским языкам они могли бы быть реализованы лучше, а по моему языку его и вовсе нет. Как и с другими частями приложения, я буду строить сразу для всех, а не только для своего. Посмотрим что получится.
За прошлую неделю по разговорнику ничего не сломалось, а заполнение материала идёт согласно плану. Думаю, можно начинать активнее размышлять над добавлением словарей на сайт. Наверняка вам приходилось взаимодействовать с электронными словарями. Тогда, пожалуйста, расскажите в комментариях к этому посту о своём опыте. Какие неудобства у вас возникали, какие функции вы хотели бы видеть, какая информация вам в нём нужна. Мне полезно знать, какие болевые точки имеются при работе со словарями, чтобы постараться исправить их.
У меня есть некоторые размытые идеи по анализу текста, по созданию корпуса и т.д., но я не представляю всего этого без качественного словаря. Электронный словарь - такая фундаментальная вещь, и по многим кавказским языкам они могли бы быть реализованы лучше, а по моему языку его и вовсе нет. Как и с другими частями приложения, я буду строить сразу для всех, а не только для своего. Посмотрим что получится.
Второй цикл заполнения разговорника подходит к концу. На сайте уже доступен перевод последнего раздела на иронский, кайтагский и керенский. В ближайшие дни наш друг @JohnFaraday завершит перевод первых двух разделов и на кабардинский.
Эти 4 языка - это очень хорошо. Но тут есть одна деталь - все эти языки из разных семей и групп, а разговорник, думаю, наиболее полезен при просмотре родственных языков. Поэтому хотел бы сделать объявление, что проекту нужны люди, готовые помочь с
— дигорским осетинским;
— любым из западных черкесских диалектов;
— любым из языков и диалектов лезгинской ветви;
Эти 3 категории языков в приоритете, так как на сайте уже есть язык из каждой группы, и дополнение к семье будет очень кстати, но, разумеется, я и любым другим языкам рад.
Каждые 2 недели нужно будет переводить по 10 - 15 несложных разговорных фраз, и заносить их на сайт через страницы редактирования. Например, у меня на заполнение последнего иронского раздела ушло 30-40 минут, не считая перевода, который был мне дан, так что у носителя это может быть ещё быстрее. Проект некоммерческий, и всё на чистом энтузиазме, поэтому я прошу помочь лишь в том случае, если вы видите в этом деле пользу для своего языка.
А ещё, рассказал @sputnikossetia про наш проект в небольшом интервью.
Эти 4 языка - это очень хорошо. Но тут есть одна деталь - все эти языки из разных семей и групп, а разговорник, думаю, наиболее полезен при просмотре родственных языков. Поэтому хотел бы сделать объявление, что проекту нужны люди, готовые помочь с
— дигорским осетинским;
— любым из западных черкесских диалектов;
— любым из языков и диалектов лезгинской ветви;
Эти 3 категории языков в приоритете, так как на сайте уже есть язык из каждой группы, и дополнение к семье будет очень кстати, но, разумеется, я и любым другим языкам рад.
Каждые 2 недели нужно будет переводить по 10 - 15 несложных разговорных фраз, и заносить их на сайт через страницы редактирования. Например, у меня на заполнение последнего иронского раздела ушло 30-40 минут, не считая перевода, который был мне дан, так что у носителя это может быть ещё быстрее. Проект некоммерческий, и всё на чистом энтузиазме, поэтому я прошу помочь лишь в том случае, если вы видите в этом деле пользу для своего языка.
А ещё, рассказал @sputnikossetia про наш проект в небольшом интервью.
Sputnik Южная Осетия
Вклад в общекавказскую солидарность: программист из Дагестана о своем приложении "Ævzag"
Автор образовательного портала о кавказских языках Магомед Магомедов в преддверии Международного дня родного языка рассказал Sputnik, как его проект может повлиять на взаимоотношения народов Кавказа
Forwarded from Новая школа осетинского языка
Пошаговая инструкция от Сергея Санхядова об освоении родного языка в сознательном возрасте:
0. Не пытаться его выучить,
1. Открыться языку на эмоциональном уровне,
2. Освоить его логическую структуру и довести ее до автоматизма.
3. Тренировать свой речевой аппарат в произношении.
Если заменить слово бурятский на осетинский, то цитата будет звучать так: «Реальным показателем того, что осетинский язык стал возрождаться, будет тот момент, когда мы с вами начнем слышать в общественных местах осетинскую речь с русским акцентом».
0. Не пытаться его выучить,
1. Открыться языку на эмоциональном уровне,
2. Освоить его логическую структуру и довести ее до автоматизма.
3. Тренировать свой речевой аппарат в произношении.
Если заменить слово бурятский на осетинский, то цитата будет звучать так: «Реальным показателем того, что осетинский язык стал возрождаться, будет тот момент, когда мы с вами начнем слышать в общественных местах осетинскую речь с русским акцентом».
YouTube
Как разбудить в себе родной язык? Пошаговая инструкция.
Лайфхак по освоению родного языка в сознательном возрасте.
+ ссылка на первый выпуск проекта "Амиды хэлэн":
https://www.youtube.com/watch?v=5Xv2XSVQvK8&t=1384s
+ ссылка на первый выпуск проекта "Амиды хэлэн":
https://www.youtube.com/watch?v=5Xv2XSVQvK8&t=1384s
Forwarded from За языки РФ
Докладчики конференции 12 марта:
🔺Ильдар Киньябулатов (Республика Башкортостан) — Башкирские ИТ-проекты
🔺Григорий Григорьев (Удмуртская Республика) — Решения в области электронной инфраструктуры удмуртского языка
🔺Андрей Чемышев (Республика Марий Эл) — Электронная инфраструктура марийского языка
🔺Магомед Магомедов (Республика Дагестан) — Портал кавказских языков Avzag
🔺Марина Федина (Республика Коми) — Электронная инфраструктура коми языка
🔺Ильгам Шарипов (Республика Татарстан) — Татарское интернет-радио urban.tatar
🔺Василий Харитонов, Динара Сатанова — Мобильное приложение для изучения нанайского языка
Время проведения конференции: 14.00 — 19.00 (мск)
https://languages-rf.timepad.ru/event/1574124/
🔺Ильдар Киньябулатов (Республика Башкортостан) — Башкирские ИТ-проекты
🔺Григорий Григорьев (Удмуртская Республика) — Решения в области электронной инфраструктуры удмуртского языка
🔺Андрей Чемышев (Республика Марий Эл) — Электронная инфраструктура марийского языка
🔺Магомед Магомедов (Республика Дагестан) — Портал кавказских языков Avzag
🔺Марина Федина (Республика Коми) — Электронная инфраструктура коми языка
🔺Ильгам Шарипов (Республика Татарстан) — Татарское интернет-радио urban.tatar
🔺Василий Харитонов, Динара Сатанова — Мобильное приложение для изучения нанайского языка
Время проведения конференции: 14.00 — 19.00 (мск)
https://languages-rf.timepad.ru/event/1574124/
languages-rf.timepad.ru
Конференция "Передовые практики сохранения языков народов России — 5: ИТ-проекты" / События на TimePad.ru
Платформа "За языки РФ" проводит конференцию об ИТ-решениях для языков народов России
Пока мы ждём видео с недавней конференции, чтобы поделиться последними новостями по проекту, вот интересный взгляд на родной язык на примере Удмуртского. Поразительно, насколько практически всё сказанное в статье относится и к моему языку, и, полагаю, к другим языкам Кавказа.