как, например, зачем в модели синтеза речи на якутском языке настолько качественно реализовывать синтез реи на русском
Ну потому что на практике зачастую не нужен только якутский язык, а нужно или говорить на двух языках попеременно, или вставлять русские слова в якутскую речь (и возможно наоборот).
Статьи на Хабре хороший пример - они обычно это смесь русского текста, терминов на латинице и русификации или перевода устоявшихся терминов.
А как тут попробуйте. Но кириллические имена сервис ломают и лезут unhandled exceptions (и видимо из-за кириллицы у меня там файлы перемешивались и прочие баги лезли, смешно было "обратитесь в саппорт").
Можно ещё ссылкой на гугл-диск. Или нужно сырную анимацию на какой-то туб и встроить виджет с видео.
С интересом бы прочитал что-то похожее от автора но на тему сравнения перевода в конкретном домене (или доменах), но когда мы не сравниваем просто готовое, растущее на соседней ветке, а тренируем какую-то кастомную модель через OpenNMT на всей доступной датке + доменной датке.
Интересно было бы насколько можно добиться буста по качеству и скорости. Ну то есть можно ли добиться x10 / x100 / x1000 по скорости, какого-то буста по качеству и нереального буста по цене за счет селф-хоста.
Там только нужно запомнить, что диграф ու - это у; ե, ո и և в начале слова произносятся по-другому; ну и есть редкие исключения. Ударение слабое и всегда на последний слог. В общем, рабочий переводчик текста в список фонем пишется элементарно.
До армянского руки наверное дойдут только если какой-то заказчик этого сильно захочет, но он может также не захотеть, чтобы мы публиковали модель.
Вообще с армянским насколько понимаю основная проблема будет не только в отсутствии материалов, но и в древности их алфавита. Обычно чем древнее письмо, тем оно "менее логичное".
Зайцем проехать на фонетическом алфавите (который на 85% еще с русским совпадает) скорее всего не получится.
Спасибо за развернутый комментарий. Отвечу по порядку:
1) в Вашей статье нет валидации. Модель нужно валидировать на реальную речь. И примеры речи носителей были бы кстати.
Реальная речь, сравнение синтеза и реальной речи - естественно были в процессе разработки. Просто юридически мы не имеем права выкладывать аудио дикторов в публичный доступ, т.к. у нас нет на это разрешения.
Что касается валидации именно в классическом ML-ном смысле, синтетические метрики приводить смысла мало вижу, большая часть детских проблем была давно побеждена через разные хаки и inductive bias-ы. По-хорошему надо бы конечно взять несколько десятков носителей якутского языка и попросить сделать двойной слепой тест … но мы делали когда-то это на русском, а тут с тех пор качество только выросло.
Анекдотически, носители языка каких-то сильных проблем с синтезом не заметили.
2) почему Вы не использовали международное фонетическое письмо при описании алфавита?
Так вроде IPA это же оно и есть.
3) все гласные группы "и" (i, ï, ü, u, в принятых для описания фонетики тюркских языков символах) в тюркских языках краткие вплоть до редукции. Исключений очень мало (литературный турецкий, гагаузский, в которых эти процессы выражены слабо).
До таких тонкостей мы не доходили, алгоритмы хвала бобрам сами умеют подсасывать такие вещи. За счёт этого (и общего словаря) кстати и работает "синтез с акцентом". Это бесполезно в 99% случаев, но забавно. Тот факт, что акцент похож на настоящий, показывает, что допущения были выбраны правильно.
4) в некоторых местах, например, в аффиксе инфинитива "арга" г должна быть ğ (то есть гамма на международном фонетическом алфавите, но у меня на раскладке в телефоне нет этого символа). Так во всех тюркских языках. И звук "ğ" обычно звучит более гортанно, это тоже нужно учитывать. Он не похож на украинское "г" и даже не полностью похож на греческую гамма (более шумный звук по сравнению с украинской "г").
То есть это в некое "дополнение" к букве ҕ ? Тоже в раздел тонкостей. Про фонемы ниже отпишу.
5) в окружении палатальных и глоттализированных аффрикат фонема "а" обычно произносится в более задней позиции.
6) "ы" всегда звучит в более задней позиции (в русском этот звук средний и как бы с более широкой локализацией, а в тюркских языках он всегда задний). Исключение в тюркских языках - гагаузский, говоры крымского языка с румейским (византийским) субстратом, а также понтийские и лазский этнолекты турецкого языка и в некоторой степени современный литературный турецкий. В этих языках "ы" имеет в разной степени среднюю позицию, но в то же время узкую локализацию.
Ниже развернутый комментарий про фонемы. Общий комментарий тут такой - когда мы допустим, смотрели очень детальные и точные IPA-транскрипции для русского и английского языков, начиная с какого-то уровня точности это вызывало проблемы и шло против житейской логики.
Понятно, что чем "нажористее" inductive bias и чем чище данные на вход тем лучше, но когда реальные пользователи будут пользоваться, некоторыми тонкостями лучше пренебречь для простоты. С точки зрения пользователя оно должно "just work".
7) концепция ударения в русском языке отличается от таковой в большинстве индоевропейских языков. В русском языке ударение определяется и реализуется в первую очередь удлинением долготы. В других языках - напряжением гортани при произнесении звуков.
Тут основная проблема в том, что синтез на якутском неразрывно связан с синтезом на русском языке. То есть модель должна одновременно уметь и в русский и в якутский язык. И то, что нужно произносить русские слова "с акцентом" или адаптируя их - это тоже фича.
А в русском языке фонемы конечно не вредны, но на наших экспериментах качество связки `ударение + фонемы + синтез` примерно равно связке `ударение + графемы + синтез`. Плюс еще точность фонемайзера достигает интересных значений только тогда, когда ударение известно. Ну то есть в русском ударения "тащат" и, чтобы сделать фонемы из текста желательно знать ударение. С точки зрения житейской логики - если прочитать слова с разным ударением, фонемы там будут разные.
Отсюда получается, что с точки зрения моделирования, нам надо иметь обратную совместимость с русским языком. А отсюда вытекает всё остальное. А эксперимент, что якутский язык начинает "течь", если убрать "ударение", подтверждает, что это было сделано не зря.
8) всё-таки лучше транслировать в фонетический алфавит, а затем синтезировать звук. Алфавит не в полной мере отражает фонетику, и это разные задачи. Лучше декомпозировать и затем отлавливать трудные случаи в каждом слое модели независимо.
В идеальном мире да, но на практике в этом случае - нет.
На русском можно найти бесконечное число разной степени точности и детальности фонетических словарей, сделать ударения и фонемайзер с заданной точностью. На якутском этого всего нет, то есть надо будет написать свой фонемайзер на правилах. А он скорее всего не учтёт например тонкости, описанные выше. А носители языка нам скорее всего тут особо не помогут, т.к. они просто говорят не задумываясь. Отсюда получаем замедление релиза на порядок, т.к. надо будет найти носителей языка, которые одновременно и лингвисты. А поскольку письмо фонетические и не менялось с 1939 наверное оно всё-таки адекватное (вроде хотели что-то поменять недавно, но отказались). В общем не инглиш с его адом и отсутствием рефакторинга.
Еще момент. При использовании на практике с высокой вероятностью возникнут имена собственные. Причем возможна дикая смесь двух языков - адаптированные слова, слова "как бы на русском", смесь этого всего, игра слов. А здесь возможность использовать графемы - наверное всё-таки жирный плюс (при желании тег языка можно на каждое слово отдельно прокидывать, если очень захотеть).
Просто представьте себе пользователей, которым надо или гореть с ошибок фонемайзера на новых терминах, или использовать IPA, они скорее всего вскроются. А сделать отличный фонемайзер тут - ни разу не просто.
Честно говоря уже утомило читать один и тот же комментарий, ответ на который есть буквально в первом абзаце статьи, но понятно, что никто не будет вдумчиво ходить по ссылкам. Тут мой косяк, надо было в статью это включить.
Я не по меди тестировал, а через Wi-Fi, 2.5 гигового роутера и сети у меня нет там, где железка стоит.
В видео есть такие тесты на образе OMV (под капотом там насколько я понял просто что-то типа debian + mdadm + samba):
Надёжность? SSD чувствительны к скачкам напряжения, если будет скачок по питанию, то сгорят все разом, без возможности восстановления (hdd в этом плане более стойкие, есть шанс восстановить)
Если у вас есть супер важные данные и супер плохое электричество, ну поставьте выпрямитель, не знаю. Я бы понял тезис о том, что харды всё еще в 2-3 раза дешевле по цене терабайта. Но если у вас очень плохое электричество и вы не защищаете электронику - это ваш выбор.
Цена? Отнюдь не бюджетный вариант
Сам дивайс - примерно в 2-2.5 раза дешевле аналогичных по мощности x86 мини-пк. Про харды - написал.
Габариты? Можно взять бюджетный китайский tvbox и прицепить к нему hdd по usb - функционал тот же, только дешевле, и без танцев с бубном
Этот дивайс является полноценным компьютером и на нём можно одновременно и качать, и хранить и смотреть. Единственная засада - это WayDroid. Можно поставить Android TV, но там будет меньше функционала.
Что касается USB - тут в компактном форм-факторе работать будет 24/7 365 дней в году. USB - от включения до включения с периодическими отваливаниями.
Плюс в зависимости от требований по пропускной способности может оказаться, что машинки с быстрыми USB портами в нужном количестве имеют другие минусы, но тут детально не копал ту большую табличку дивайсов.
Наш рынок не очень ёмкий. А значит редкие железки будут продавать с премией. В частности мини-компьютеры продаются с наценкой x2-x3 к рекомендуемой цене. Отсюда - покупать напрямую выгоднее. На амазоне - надо решать квест с виртуальными почтовыми адресами. На алике - такого квеста нет.
И таких конфигураций на этой логике бесчисленное множество, какие-то больше по размеру, какие-то меньше, у кого-то и два HDMI и DP и т.п.
Ага, вижу на картинке вижу слоты для установки дисков на отказоустойчивых интерфейсах (SATA, M2).
у вас даже критерий о возможности "отстёгивания" дисков озвучен, ничего разбирать не придется
Ага, самостоятельное отстёгивание в процессе эксплуатации.
Обоснуйте разумную достаточность в покупке платы из статьи за >200уе.
Я этот NAS купил на авито вместе с дисками
Обоснуйте разумность сравнения б/у дивайсов непонятно какого года и цен в моменте на фоне геополитических рисков. По этой логике до безумного роста цен я взял Raspberry Pi за несколько тысяч рублей. И теперь я могу под всеми статьями и рассказывать, что за 10 баксов я получил 30% вашей производительности и ваш сетап говно.
Теперь понятно почему у вашей семьи проблемы с деньгами были - вы спускали все деньги за вещи с неадекватным ценником. Так?
Конечно, в перерывах между копанием картошки, пока в 2003 году уже у всех был гигабитный канал.
Тут нужна статистика на миллион дивайсов, а её нету. У меня за всё время, пока, хвала бобрам, на пустом месте умер только один диск, и это был QLC дешман от Intel.
Там 1 PCIE 3.0 линия на каждый порт. То есть даже если это не будет отваливаться раз в 5 минут, по факту втыкать стоит наверное максимум 2. Но смысл тогда теряется. Если Нужно 24 сата-дивайса, то лучше посмотреть в сторону б/у серверной материнки.
Ну потому что на практике зачастую не нужен только якутский язык, а нужно или говорить на двух языках попеременно, или вставлять русские слова в якутскую речь (и возможно наоборот).
Статьи на Хабре хороший пример - они обычно это смесь русского текста, терминов на латинице и русификации или перевода устоявшихся терминов.
А как тут попробуйте. Но кириллические имена сервис ломают и лезут unhandled exceptions (и видимо из-за кириллицы у меня там файлы перемешивались и прочие баги лезли, смешно было "обратитесь в саппорт").
Можно ещё ссылкой на гугл-диск. Или нужно сырную анимацию на какой-то туб и встроить виджет с видео.
Вангую, что там у огромных сеток со скоростью и ценой беда?
Ну раз занимаетесь, то видимо смысл есть. Но можно намекнуть =)
Забыл под спойлер в статью ещё и это включить
Скрытый текст
Какая замечательная статья, без шуток.
С интересом бы прочитал что-то похожее от автора но на тему сравнения перевода в конкретном домене (или доменах), но когда мы не сравниваем просто готовое, растущее на соседней ветке, а тренируем какую-то кастомную модель через OpenNMT на всей доступной датке + доменной датке.
Интересно было бы насколько можно добиться буста по качеству и скорости. Ну то есть можно ли добиться x10 / x100 / x1000 по скорости, какого-то буста по качеству и нереального буста по цене за счет селф-хоста.
Повезло армянам =)
До армянского руки наверное дойдут только если какой-то заказчик этого сильно захочет, но он может также не захотеть, чтобы мы публиковали модель.
Вообще с армянским насколько понимаю основная проблема будет не только в отсутствии материалов, но и в древности их алфавита. Обычно чем древнее письмо, тем оно "менее логичное".
Зайцем проехать на фонетическом алфавите (который на 85% еще с русским совпадает) скорее всего не получится.
Спасибо за развернутый комментарий. Отвечу по порядку:
Реальная речь, сравнение синтеза и реальной речи - естественно были в процессе разработки. Просто юридически мы не имеем права выкладывать аудио дикторов в публичный доступ, т.к. у нас нет на это разрешения.
Что касается валидации именно в классическом ML-ном смысле, синтетические метрики приводить смысла мало вижу, большая часть детских проблем была давно побеждена через разные хаки и inductive bias-ы. По-хорошему надо бы конечно взять несколько десятков носителей якутского языка и попросить сделать двойной слепой тест … но мы делали когда-то это на русском, а тут с тех пор качество только выросло.
Анекдотически, носители языка каких-то сильных проблем с синтезом не заметили.
Так вроде IPA это же оно и есть.
До таких тонкостей мы не доходили, алгоритмы хвала бобрам сами умеют подсасывать такие вещи. За счёт этого (и общего словаря) кстати и работает "синтез с акцентом". Это бесполезно в 99% случаев, но забавно. Тот факт, что акцент похож на настоящий, показывает, что допущения были выбраны правильно.
То есть это в некое "дополнение" к букве
ҕ
? Тоже в раздел тонкостей. Про фонемы ниже отпишу.Ниже развернутый комментарий про фонемы. Общий комментарий тут такой - когда мы допустим, смотрели очень детальные и точные IPA-транскрипции для русского и английского языков, начиная с какого-то уровня точности это вызывало проблемы и шло против житейской логики.
Понятно, что чем "нажористее" inductive bias и чем чище данные на вход тем лучше, но когда реальные пользователи будут пользоваться, некоторыми тонкостями лучше пренебречь для простоты. С точки зрения пользователя оно должно "just work".
Тут основная проблема в том, что синтез на якутском неразрывно связан с синтезом на русском языке. То есть модель должна одновременно уметь и в русский и в якутский язык. И то, что нужно произносить русские слова "с акцентом" или адаптируя их - это тоже фича.
А в русском языке фонемы конечно не вредны, но на наших экспериментах качество связки `ударение + фонемы + синтез` примерно равно связке `ударение + графемы + синтез`. Плюс еще точность фонемайзера достигает интересных значений только тогда, когда ударение известно. Ну то есть в русском ударения "тащат" и, чтобы сделать фонемы из текста желательно знать ударение. С точки зрения житейской логики - если прочитать слова с разным ударением, фонемы там будут разные.
Отсюда получается, что с точки зрения моделирования, нам надо иметь обратную совместимость с русским языком. А отсюда вытекает всё остальное. А эксперимент, что якутский язык начинает "течь", если убрать "ударение", подтверждает, что это было сделано не зря.
В идеальном мире да, но на практике в этом случае - нет.
На русском можно найти бесконечное число разной степени точности и детальности фонетических словарей, сделать ударения и фонемайзер с заданной точностью. На якутском этого всего нет, то есть надо будет написать свой фонемайзер на правилах. А он скорее всего не учтёт например тонкости, описанные выше. А носители языка нам скорее всего тут особо не помогут, т.к. они просто говорят не задумываясь. Отсюда получаем замедление релиза на порядок, т.к. надо будет найти носителей языка, которые одновременно и лингвисты. А поскольку письмо фонетические и не менялось с 1939 наверное оно всё-таки адекватное (вроде хотели что-то поменять недавно, но отказались). В общем не инглиш с его адом и отсутствием рефакторинга.
Еще момент. При использовании на практике с высокой вероятностью возникнут имена собственные. Причем возможна дикая смесь двух языков - адаптированные слова, слова "как бы на русском", смесь этого всего, игра слов. А здесь возможность использовать графемы - наверное всё-таки жирный плюс (при желании тег языка можно на каждое слово отдельно прокидывать, если очень захотеть).
Просто представьте себе пользователей, которым надо или гореть с ошибок фонемайзера на новых терминах, или использовать IPA, они скорее всего вскроются. А сделать отличный фонемайзер тут - ни разу не просто.
Начиная с какой-то версии уже давно не работает.
Прикольно, healthcheck таки доехал до compose, раньше боль была.
Раз наш VAD, будучи полезной тулзой (судя даже по цитатам в статьях), дошёл наконец-то до версии близкой к ультимативной, то мы аж запулили его в PIP:
https://pypi.org/project/silero-vad/5.1/
Забавно, что имя silero-vad там уже было занято, но люди по доброте душевной отдали его нам "обратно".
Как использовать через pip:
https://github.com/snakers4/silero-vad?tab=readme-ov-file#fast-start
Ссылка в шапке сразу ведёт на ресурс заблокированный за фейки о ВС РФ, а текст получен с помощью нейросетевого переводчика.
Контент который мы заслужили.
Честно говоря уже утомило читать один и тот же комментарий, ответ на который есть буквально в первом абзаце статьи, но понятно, что никто не будет вдумчиво ходить по ссылкам. Тут мой косяк, надо было в статью это включить.
Я не по меди тестировал, а через Wi-Fi, 2.5 гигового роутера и сети у меня нет там, где железка стоит.
В видео есть такие тесты на образе OMV (под капотом там насколько я понял просто что-то типа debian + mdadm + samba):
Если у вас есть супер важные данные и супер плохое электричество, ну поставьте выпрямитель, не знаю. Я бы понял тезис о том, что харды всё еще в 2-3 раза дешевле по цене терабайта. Но если у вас очень плохое электричество и вы не защищаете электронику - это ваш выбор.
Сам дивайс - примерно в 2-2.5 раза дешевле аналогичных по мощности x86 мини-пк. Про харды - написал.
Этот дивайс является полноценным компьютером и на нём можно одновременно и качать, и хранить и смотреть. Единственная засада - это WayDroid. Можно поставить Android TV, но там будет меньше функционала.
Что касается USB - тут в компактном форм-факторе работать будет 24/7 365 дней в году. USB - от включения до включения с периодическими отваливаниями.
Плюс в зависимости от требований по пропускной способности может оказаться, что машинки с быстрыми USB портами в нужном количестве имеют другие минусы, но тут детально не копал ту большую табличку дивайсов.
Вот в этом, наверное корень всех зол.
Законы экономики тоже отменяем.
Наш рынок не очень ёмкий. А значит редкие железки будут продавать с премией. В частности мини-компьютеры продаются с наценкой x2-x3 к рекомендуемой цене. Отсюда - покупать напрямую выгоднее. На амазоне - надо решать квест с виртуальными почтовыми адресами. На алике - такого квеста нет.
Ага, вижу на картинке вижу слоты для установки дисков на отказоустойчивых интерфейсах (SATA, M2).
Ага, самостоятельное отстёгивание в процессе эксплуатации.
Обоснуйте разумность сравнения б/у дивайсов непонятно какого года и цен в моменте на фоне геополитических рисков. По этой логике до безумного роста цен я взял Raspberry Pi за несколько тысяч рублей. И теперь я могу под всеми статьями и рассказывать, что за 10 баксов я получил 30% вашей производительности и ваш сетап говно.
Конечно, в перерывах между копанием картошки, пока в 2003 году уже у всех был гигабитный канал.
Тут нужна статистика на миллион дивайсов, а её нету. У меня за всё время, пока, хвала бобрам, на пустом месте умер только один диск, и это был QLC дешман от Intel.
Там 1 PCIE 3.0 линия на каждый порт. То есть даже если это не будет отваливаться раз в 5 минут, по факту втыкать стоит наверное максимум 2. Но смысл тогда теряется. Если Нужно 24 сата-дивайса, то лучше посмотреть в сторону б/у серверной материнки.
Попробуйте подумать логически.