Комментарии 20
Молодцы, но есть несколько нюансов:
1) в Вашей статье нет валидации. Модель нужно валидировать на реальную речь. И примеры речи носителей были бы кстати.
2) почему Вы не использовали международное фонетическое письмо при описании алфавита?
3) все гласные группы "и" (i, ï, ü, u, в принятых для описания фонетики тюркских языков символах) в тюркских языках краткие вплоть до редукции. Исключений очень мало (литературный турецкий, гагаузский, в которых эти процессы выражены слабо).
4) в некоторых местах, например, в аффиксе инфинитива "арга" г должна быть ğ (то есть гамма на международном фонетическом алфавите, но у меня на раскладке в телефоне нет этого символа). Так во всех тюркских языках. И звук "ğ" обычно звучит более гортанно, это тоже нужно учитывать. Он не похож на украинское "г" и даже не полностью похож на греческую гамма (более шумный звук по сравнению с украинской "г").
5) в окружении палатальных и глоттализированных аффрикат фонема "а" обычно произносится в более задней позиции.
6) "ы" всегда звучит в более задней позиции (в русском этот звук средний и как бы с более широкой локализацией, а в тюркских языках он всегда задний). Исключение в тюркских языках - гагаузский, говоры крымского языка с румейским (византийским) субстратом, а также понтийские и лазский этнолекты турецкого языка и в некоторой степени современный литературный турецкий. В этих языках "ы" имеет в разной степени среднюю позицию, но в то же время узкую локализацию.
7) концепция ударения в русском языке отличается от таковой в большинстве индоевропейских языков. В русском языке ударение определяется и реализуется в первую очередь удлинением долготы. В других языках - напряжением гортани при произнесении звуков.
8) всё-таки лучше транслировать в фонетический алфавит, а затем синтезировать звук. Алфавит не в полной мере отражает фонетику, и это разные задачи. Лучше декомпозировать и затем отлавливать трудные случаи в каждом слое модели независимо.
Спасибо за развернутый комментарий. Отвечу по порядку:
1) в Вашей статье нет валидации. Модель нужно валидировать на реальную речь. И примеры речи носителей были бы кстати.
Реальная речь, сравнение синтеза и реальной речи - естественно были в процессе разработки. Просто юридически мы не имеем права выкладывать аудио дикторов в публичный доступ, т.к. у нас нет на это разрешения.
Что касается валидации именно в классическом ML-ном смысле, синтетические метрики приводить смысла мало вижу, большая часть детских проблем была давно побеждена через разные хаки и inductive bias-ы. По-хорошему надо бы конечно взять несколько десятков носителей якутского языка и попросить сделать двойной слепой тест … но мы делали когда-то это на русском, а тут с тех пор качество только выросло.
Анекдотически, носители языка каких-то сильных проблем с синтезом не заметили.
2) почему Вы не использовали международное фонетическое письмо при описании алфавита?
Так вроде IPA это же оно и есть.
3) все гласные группы "и" (i, ï, ü, u, в принятых для описания фонетики тюркских языков символах) в тюркских языках краткие вплоть до редукции. Исключений очень мало (литературный турецкий, гагаузский, в которых эти процессы выражены слабо).
До таких тонкостей мы не доходили, алгоритмы хвала бобрам сами умеют подсасывать такие вещи. За счёт этого (и общего словаря) кстати и работает "синтез с акцентом". Это бесполезно в 99% случаев, но забавно. Тот факт, что акцент похож на настоящий, показывает, что допущения были выбраны правильно.
4) в некоторых местах, например, в аффиксе инфинитива "арга" г должна быть ğ (то есть гамма на международном фонетическом алфавите, но у меня на раскладке в телефоне нет этого символа). Так во всех тюркских языках. И звук "ğ" обычно звучит более гортанно, это тоже нужно учитывать. Он не похож на украинское "г" и даже не полностью похож на греческую гамма (более шумный звук по сравнению с украинской "г").
То есть это в некое "дополнение" к букве ҕ
? Тоже в раздел тонкостей. Про фонемы ниже отпишу.
5) в окружении палатальных и глоттализированных аффрикат фонема "а" обычно произносится в более задней позиции.
6) "ы" всегда звучит в более задней позиции (в русском этот звук средний и как бы с более широкой локализацией, а в тюркских языках он всегда задний). Исключение в тюркских языках - гагаузский, говоры крымского языка с румейским (византийским) субстратом, а также понтийские и лазский этнолекты турецкого языка и в некоторой степени современный литературный турецкий. В этих языках "ы" имеет в разной степени среднюю позицию, но в то же время узкую локализацию.
Ниже развернутый комментарий про фонемы. Общий комментарий тут такой - когда мы допустим, смотрели очень детальные и точные IPA-транскрипции для русского и английского языков, начиная с какого-то уровня точности это вызывало проблемы и шло против житейской логики.
Понятно, что чем "нажористее" inductive bias и чем чище данные на вход тем лучше, но когда реальные пользователи будут пользоваться, некоторыми тонкостями лучше пренебречь для простоты. С точки зрения пользователя оно должно "just work".
7) концепция ударения в русском языке отличается от таковой в большинстве индоевропейских языков. В русском языке ударение определяется и реализуется в первую очередь удлинением долготы. В других языках - напряжением гортани при произнесении звуков.
Тут основная проблема в том, что синтез на якутском неразрывно связан с синтезом на русском языке. То есть модель должна одновременно уметь и в русский и в якутский язык. И то, что нужно произносить русские слова "с акцентом" или адаптируя их - это тоже фича.
А в русском языке фонемы конечно не вредны, но на наших экспериментах качество связки `ударение + фонемы + синтез` примерно равно связке `ударение + графемы + синтез`. Плюс еще точность фонемайзера достигает интересных значений только тогда, когда ударение известно. Ну то есть в русском ударения "тащат" и, чтобы сделать фонемы из текста желательно знать ударение. С точки зрения житейской логики - если прочитать слова с разным ударением, фонемы там будут разные.
Отсюда получается, что с точки зрения моделирования, нам надо иметь обратную совместимость с русским языком. А отсюда вытекает всё остальное. А эксперимент, что якутский язык начинает "течь", если убрать "ударение", подтверждает, что это было сделано не зря.
8) всё-таки лучше транслировать в фонетический алфавит, а затем синтезировать звук. Алфавит не в полной мере отражает фонетику, и это разные задачи. Лучше декомпозировать и затем отлавливать трудные случаи в каждом слое модели независимо.
В идеальном мире да, но на практике в этом случае - нет.
На русском можно найти бесконечное число разной степени точности и детальности фонетических словарей, сделать ударения и фонемайзер с заданной точностью. На якутском этого всего нет, то есть надо будет написать свой фонемайзер на правилах. А он скорее всего не учтёт например тонкости, описанные выше. А носители языка нам скорее всего тут особо не помогут, т.к. они просто говорят не задумываясь. Отсюда получаем замедление релиза на порядок, т.к. надо будет найти носителей языка, которые одновременно и лингвисты. А поскольку письмо фонетические и не менялось с 1939 наверное оно всё-таки адекватное (вроде хотели что-то поменять недавно, но отказались). В общем не инглиш с его адом и отсутствием рефакторинга.
Еще момент. При использовании на практике с высокой вероятностью возникнут имена собственные. Причем возможна дикая смесь двух языков - адаптированные слова, слова "как бы на русском", смесь этого всего, игра слов. А здесь возможность использовать графемы - наверное всё-таки жирный плюс (при желании тег языка можно на каждое слово отдельно прокидывать, если очень захотеть).
Просто представьте себе пользователей, которым надо или гореть с ошибок фонемайзера на новых терминах, или использовать IPA, они скорее всего вскроются. А сделать отличный фонемайзер тут - ни разу не просто.
То есть это в некое "дополнение" к букве
ҕ
?
Нет, я писал именно об этой букве. Во всех тюркских языках, которые я слышал и в которых используется аффикс "-арга" для обозначения инфинитива, он произносится как [arγá].
Так вроде IPA это же оно и есть.
В работах, которые я встречал, использовались другие обозначения для гласных. Предполагаю, что это просто видение у разных авторов отличается.
сделать отличный фонемайзер тут - ни разу не просто.
Я думаю, что не нужен отличный. Он должен быть настроен на фонетическую систему языка. Учесть эти правила несложно. А качество возрастет. IMHO, нельзя давать на откуп black box то, что можно контролировать с помощью небольшого набора правил.
юридически мы не имеем права выкладывать аудио дикторов в публичный доступ
Можно взять аудиозапись из публичного доступа, и синтезировать этот же фрагмент речи. А можно попросить волонтеров озвучить абзац из Википедии на якутском, и его же озвучить с помощью модели. Такого сравнения очень не хватало.
носители языка нам скорее всего тут особо не помогут, т.к. они просто говорят не задумываясь. Отсюда получаем замедление релиза на порядок, т.к. надо будет найти носителей языка, которые одновременно и лингвисты.
Люди обычно говорят, не задумываясь. Но когда слышат неправильное произношение, сразу начинают чувсвовать, что что-то тут не то. И в итоге обращают внимание на некоторые из тех нюансо, о которых они не задумывались.
Вами проделана огромная работа. Спасибо, что объяснили Ваши взгляды на разработку модели. Я с Вами согласен отчасти, некоторые вещи не пойму (как, например, зачем в модели синтеза речи на якутском языке настолько качественно реализовывать синтез реи на русском), с некоторыми вещами несогласен. Но уверен, что вы сделали взвешенный и адекватный выбор при поиске подхода. Желаю Вам удачи в развитии вашего проекта.
как, например, зачем в модели синтеза речи на якутском языке настолько качественно реализовывать синтез реи на русском
Ну потому что на практике зачастую не нужен только якутский язык, а нужно или говорить на двух языках попеременно, или вставлять русские слова в якутскую речь (и возможно наоборот).
Статьи на Хабре хороший пример - они обычно это смесь русского текста, терминов на латинице и русификации или перевода устоявшихся терминов.
Впереди нас ждёт ещё 8 языков, но там, к сожалению, так "просто" уже не будет ...
Армянского там случайно не будет?
Я ищу модельку для озвучки армянского (с целью аудиоподкрепления при изучении языка), и в опенсорсе вообще ничего нет.
До армянского руки наверное дойдут только если какой-то заказчик этого сильно захочет, но он может также не захотеть, чтобы мы публиковали модель.
Вообще с армянским насколько понимаю основная проблема будет не только в отсутствии материалов, но и в древности их алфавита. Обычно чем древнее письмо, тем оно "менее логичное".
Зайцем проехать на фонетическом алфавите (который на 85% еще с русским совпадает) скорее всего не получится.
Наоборот, получится.
Алфавит древний, но современная орфография еще более фонетическая, чем русская. Там только нужно запомнить, что диграф ու - это у; ե, ո и և в начале слова произносятся по-другому; ну и есть редкие исключения. Ударение слабое и всегда на последний слог. В общем, рабочий переводчик текста в список фонем пишется элементарно.
У меня была идея обучить легкую модель (список фонем -> аудио) для отдельных слов для одного языка [датасет можно с проприетарного TTS собрать, что не всегда легально, но для себя можно]. Я не очень знаю, как такие модели скейлятся, и сколько нужно компьюта.
Ничего не понимаю в синтезе речи, но написано интересно и понятно не только для тех, кто в теме. Спасибо большое за легкую подачу информации))
Правда, я бы не сказала, что по синтезу с акцентом сразу узнаю людей с основным языком - якутский. Слышала подобную речь от граждан ближнего зарубежья. Особенно мягкая г - зацепило когда-то.
Про имена и названия в английском целая песня есть, раз уж вы и их как пример взяли.
Скрытый текст
На всякий случай, поясню: в руках у господина бумажки с написанием произносимых в песне названий мест и фамилий.
Вопрос про КДПВ: что там дословно написано? Не тянет ли это на 282 статью УК РФ?
Спросите у носителей языка.
А ещё это отсылка к тому, что появление халадаая — это следствие влияния русской культуры в 17 веке.
Хорошая статья, я бы даже сказал отличная. Теперь комментарии по делу (ведь спрашивали комментарии у носителей - а я как раз носитель):
1) Синтез языка практически идеальный (конечно со скидкой на "компьютерность"), но чувствуется акцент/диалект центральной группы улусов: Усть-Майский, Намский, Хангаласский, Якутск и т.д. Это не страшно: в общем-то центральноякутский диалект является литературным стандартом (ну типа Hochdeutsch в Германии) - это констатация. Скорее всего, носитель с которым вы консультировались выходец оттуда :). Было бы полезно, наверное синтезировать еще и вилюйский акцент, на котором говорит как минимум треть жителей Якутии или северный - ну это так сказать из области недостижимого идеала. Приятно, что якусткий синтезирован так хорошо - скажем так, намного лучше чем русский в исполнении Samsung TTS
2) Русский с якутским акцентом - здесь все плохо, особенно женский акцент - вообще не похож. Наиболее близко к якутскому акценту подходит мужской голос (файл Accent_5) - есть куда стремиться. Правда, непонятно - стоит ли овчинка выделки?
3) Соглашусь с @agershunКДПВ явно выбрана неудачно. Думаю, носитель который консультировал @agershun понял ее однозначно, также как и я. Попробую пояснить позицию следующей "дешифровкой":
Формальный перевод:
Женщины кошке: это же русское платье!!!
Кошка: бисер же носят эвенки...
Теперь смысловая нагрузка:
Женщины: как ты смеешь, вырядилась в национальное платье, но оно же русское!
Кошка: да ладно вы и сами хороши - у вас же бисер, а его носят тунгусы!
Автор комикса, очевидно делал отсылку к неутихающему внутриякутскому холивару - является ли халадай национальным якутским платьем или нет. Для якутов - юморной смысл понятен, но в контексте хабры - это смотрится явно странно, если не сказать сильнее и явно "на грани" - сами знаете чего.
Я специально показал комиксы нескольким своим друзьям (носителям языка разумеется) и многие отметили, что картинка "на грани".
Посему предложу автору убрать от греха подальше картинку (лучше наверное заменить).
Синтез языка практически идеальный (конечно со скидкой на "компьютерность"), но чувствуется акцент/диалект центральной группы улусов: Усть-Майский, Намский, Хангаласский, Якутск и т.д.
Тут диктор выбирался очень просто - какого диктора привёл заказчик, того и использовали. Было заявлено профессиональное владение языком, мол люди каждый день говорят на работе.
Наш коллега понимает язык и говорит, когда приезжает домой, но не говорит на постоянку, поэтому весь этот контекст прошёл мимо нас. Наверное можно было бы записать разные вариации. Мы в любом случае планируем поработать с языками России для публичных моделей, так что если будут желающие позаписываться, можно будет позаписываться.
Приятно, что якусткий синтезирован так хорошо - скажем так, намного лучше чем русский в исполнении Samsung TTS
Для нас эта грань определяется примерно так - если человеку давать слушать оригинальные примеры и синтез в двойном слепом тесте, то оценка оригинала выше будет где-то на 5-10%.
Если синтезировать абзацы текста - то уже понятно. Но мы тут упираемся в продуктовость, то есть синтез должен очень быстро работать на слабом железе.
2) Русский с якутским акцентом - здесь все плохо, особенно женский акцент - вообще не похож. Наиболее близко к якутскому акценту подходит мужской голос (файл Accent_5) - есть куда стремиться. Правда, непонятно - стоит ли овчинка выделки?
Ну единственная реальная сфера применения такого синтеза - это прочитать какое-то имя собственное. Английский с русским акцентом в похожих моделях - зачастую реально звучит как "лет ми спик фром май харт".
Формальный перевод:
Женщины кошке: это же русское платье!!!
Кошка: бисер же носят эвенки...Теперь смысловая нагрузка:
Женщины: как ты смеешь, вырядилась в национальное платье, но оно же русское!
Кошка: да ладно вы и сами хороши - у вас же бисер, а его носят тунгусы!
Когда мы выбирали картинку, мы проконсультировались у нашего коллеги, интернета и переводчика и рассудили, что это что-то типа холивара про борщ или лаваш.
Ну или в каждом обществе и сообществе есть специальная олимпиада "за трушность". Пока она не делает кому-то хуже, это не является проблемой.
Автор комикса, очевидно делал отсылку к неутихающему внутриякутскому холивару - является ли халадай национальным якутским платьем или нет. Для якутов - юморной смысл понятен, но в контексте хабры - это смотрится явно странно, если не сказать сильнее и явно "на грани" - сами знаете чего.
Я специально показал комиксы нескольким своим друзьям (носителям языка разумеется) и многие отметили, что картинка "на грани".
Ну главное, что не за гранью.
Посему предложу автору убрать от греха подальше картинку (лучше наверное заменить).
Вот тут проблема. Все мемные картинки, которые я находил, не очень сильно притягивали взгляд. А найти сочетание того, чтобы автор был в теме, было душевно и хорошо сделано и 99% публики поняло хоть что-то довольно сложно.
Можно конечно ради прикола заменить на что-то такое, сама картинка-то замечательная:
Скрытый текст
Но надо придумать что-то более остроумное.
1) С дикторами - понятно. Я еще хотел написать про некоторую искусственность текстов - в реальной жизни так почти никто не говорит: докумуон
, медисиинэ
- такие явно якутизированные русизмы смотрятся не очень естественно (ну к модели это отношения не имеет - оставим это на совести составителя текстов)
2) Думаю, найдутся люди, для которых картинка "за гранью", так что мой совет - смените.
Я еще хотел написать про некоторую искусственность текстов - в реальной жизни так почти никто не говорит
Это тексты с сайта официальных СМИ.
2) Думаю, найдутся люди, для которых картинка "за гранью", так что мой совет - смените.
Вопрос на что сменить.
Если картинка не разжигает и не триггерит товарища майора, то превращаться в общество, где все могут обидеться на всё, тоже как-то не очень хочется.
Особенности фонетики якутского языка для синтеза речи