A bunch of things that I encounter during my journey as NLP/Audio developer
Universal Adaptor
https://arxiv.org/abs/2204.00170
One of the less obvious problems in cascade TTS systems is the mismatch of parameters in the representations used by the synthesizer and the vocoder. Synthesizer outputs a melspectrogram and vocoder takes it and transforms to a waveform. However, a melspectrogram is already an audio transformation, and in this transformation we have a bunch of different parameters to tune (sr, log_base, padding, win_length and etc). Th problem arises if synthesizer and vocoder use different parameter settings. Although rare, such mismatches do occur.
Authors of this paper suggest to use a separate adapter that can transform any such representation to a common both for a synthesizer and vocoder even if they were not trained with identical parameters.
This solution might also be helpful for fairness in systems’ comparison since most of the metrics we use are based on an audio representation and any subtle difference can affect the metrics.
The adapter takes two configurations (source and target) along with the source mel-spectrogram, and produces a target mel-spectrogram using the target parameters.
Stage 1: approximation via inverse transform to linear spectrogram and wave with Griffin-Lim algorithm and spectrogram again with target parameters. This stage gives a rough low-quality estimated spectrogram.
Stage 2: the goal of this part is to approximate all non-normalizing parameters by transforming the low-quality target spectrogram according to target parameters. The idea is to pass the parameters through linear layers and add in the convblock that is in the heart of UNet.
For all the vocoders adapter usage resulted in either slightly worse performance or even better. However, the important factor is if we move to a different configuration results to still comparable results.
Большое уважение у меня к ребятам из Вихря, молодцы. Удачи!
Читать полностью…SeedLiveInterpret 2.0
https://arxiv.org/abs/2507.17527
Live translation has never been considered an easy task, even for professionals. One wrongly translated word can cost money—or even lives. A translation that lags too much can break the “atmosphere” and affect the impression of an opponent. All that said, it’s obviously a hard problem. However, one common phenomenon among non-technical people is to view technology as a kind of superpowered monster that can do anything.
Today, let’s talk about some open-minded metrics in RL for multimodal LLMs in speech-to-speech translation.
1. The initial language model is a seed LM family fine-tuned on multitask, multimodal capabilities (multi-speaker discrimination, translation, instruction following, etc.).
2. Then we train the model where input is a stream of audio chunks. Here it’s important to consider a translation not as an per-word and not as a whole text but BOTH! We want to sound correct as a a final message and on the go. Therefore authors introduce two objectives: intra-segment consistency = single turn reward and inter-segment coherence = inter-segment coherence.
Single turn is a balance of rewards (don’t rush to mistranslate (detection accuracy), rush and translate, translate well, match with the the reference timing, follow the format.
Multi-turn is more about making sure the whole translation is correct and not too lagged in the big picture.
First, only single-turn is being trained, second stages add on the multi-turn reward.
A new metric for me was SVIP = Speech Valid Information Proportion. On top of the language quality from VIP, speech metrics such as latency, pronunciation, speech rate, fluency are measured. Important for the accent haters pronunciation is not equal to accent.
Comparison is not comprehensive as they’re not as many players on the market. LiveInterpret balances out on latency and translation quality being not the best in every but efficient overall.
🔥 Мы запускаем третью часть курса DLS
Да, вы все верно прочитали. Уже совсем скоро начнется новый поток "Осень 2025" нашего курса DLS, который пополнился новой частью: Speech Processing.
Программа курса:
🔵 Основные представления аудиосигналов (wav, spectrogram, SSL embeddings, discrete tokens)
🔵 Основные задачи в спиче (ASR, TTS)
🔵 Обзор других ключевых задач в Speech Processing
🔵 Работа с low resource languages и просто non-English языками
🔵 Speech LLM-ки
🔵 ML in Audio
Курс будут вести топовые инженеры в области речи и звука из Huawei, Sber, Звук, EPFL, Amazon (например, авторы статьи GradTTS, GigaAM, автор курса DLA в ВШЭ и автор курса Речевые технологии в МФТИ, авторы каналов VF | Science и Ученый без степени), большинство из которых вы возможно уже знаете.
После курса вы сможете:
— Ориентироваться в задачах Speech-a
— Читать и понимать новые статьи
А также приобретете обширное представление об области в целом!
👇
Ссылка на Stepik
Регистрацию на все потоки осеннего семестра запустим в ближайшее время! Вся информация будет в этом канале 😉
Очень жду посмотреть на latency в AirPods конечно, молодцы ребята, сложное это дело так или иначе
Читать полностью…Paperswithcode все, где смотрите статьи (просто поиск)? Хз почему, но мне не нравится trending papers на hf.
Читать полностью…Джетлаг все еще бьет по мне, морально скрипом по чуть-чуть возвращаюсь в строй. Сегодня решила (так как нет статьи) читать только код для chatterbox.
Читать полностью…Rapflow-TTS
https://www.arxiv.org/abs/2506.16741
When we generate speech with flow-matching models, we’ve got to integrate the ODE. However, the best solution comes with small-step integration. Still the number of steps defines the time computation for inference. It would be wonderful to be able to integrate in 2-5 steps and still reach the same solution. However, the problem is the self-inconsistency in velocity for the trained trajectories. Consistency FM trains the vector field by ensuring that any point on the trajectory reaches the same endpoint with the same velocity, which means that from different time points we will reach the common endpoint aca can use fewer steps. To reach this we define two losses:
🛣Trajectory consistency: no matter at what time you stop and “predict the future,” you always land at the same final speech sample. The similar loss we used before.
↖️↙️Velocity consistency: velocity predicted at nearby times agree, so the field doesn’t contradict itself. Here we just calculate the velocity of different times and minimize the difference.
*Chatgpt generated*
Authors first train the network on trajectory consistency and after some n epochs add the velocity consistency.
1️⃣Important modification for flexible transportation in complex distributions is multi-segment objective. For that we split the whole time range in segments of equal size and consider each x_i as the ground truth endpoint.
2️⃣One of the modifications i find important on top of everything else is pseudo-huber loss where we make l2 less sensitive to outliers that are so common in tts.
I also think that the comparison is rather unfair with NFE of 2 for the models trained with a lack of consistency regulation (authors mention it too).
IndexTTS2
https://arxiv.org/abs/2506.21619
THREE MAIN CONTRIBUTIONS:
1. control the duration
2. control the timbre from from timbre prompt (no the orig prompt)
3. soft instruction mechanism based on text descriptions
Design choice is: Text2Semantic → Semantic2Mel → Vocoder
The main part is happening on the front as usual, Text2Semantic.
0️⃣The inputs for the module are:
1. c - speaker attributes and e - emotional control
Emotions are captured from the style prompt using conformer emotional perceiver, the c is encoded from speaker perceiver. While the two have overlapped features, authors used GRL that i used to not believe in a lot tbh. (Contribution 2 is made)
2. p - control duration
Here they pick up the positional embedding of the semantic embedding table by picking it through the one hot encoding using the passed length token. (Contribution 1 is made)
3. texts embeddings
4. texts semantic
1️⃣ The use cases matter:
Sometimes we don’t have the access to emotional audio sample but can explain it in words. T2E aka Text2Emotion is incorporated. Here they made a very nice weighting strategy of using the emotional audio samples they had, pretrained emotional perceiver from T2S they get 7 emotions. Then they fine-tune qwen-3-1.7b to predict the emotions based on the text and giving a vector of the probablities, using them they weighten the 7 emotions vectors.
S2M: The regular flow matching but concatenating the speaker embeddings from perceiver-based conditioner with the semantic tokens.
2️⃣ Emotional but slurring:
While the semantic tokens from the Text2Semantic tokens are rich in info, we also made huge efforts to add up the speaker and emotionality to it, so very emotional speech might get mumbled a bit. To mitigate it authors incorporated the text features from GPT module trained on T2S task (last layer).
Наш русскоязычный датасет для TTS опубликован!
Сегодня выкладываем открытые корпуса на 4000+ часов речи, а еще синтезатор речи ESpeech-TTS-1
Наш датасет содержит больше 4000 часов русской речи. Статистика по корпусам:
Многоголосые:
ESpeech-podcasts - 3200 часов
ESpeech-webinars - 850 часов
Одноголосые:
ESpeech-igm - 220 часов
ESpeech-buldjat - 54 часа
ESpeech-upvote - 296 часов
ESpeech-tuchniyzhab - 306 часов
Данные лежат вот тут: https://huggingface.co/ESpeech
Техрепорт датасета
Также, мы решили провести некоторые эксперименты с TTS. Получилось обучить F5-TTS на 10000 часов речи и сделать одну из лучших по нашим замерам моделей в опенсурсе для русского языка.
Какие модели доступны?
ESpeech-TTS-1 [RL] V1 - Первая версия модели с RL
ESpeech-TTS-1 [RL] V2 - Вторая версия модели с RL
ESpeech-TTS-1 PODCASTER [SFT] - Модель обученная только на подкастах, лучше генерирует спонтанную речь
ESpeech-TTS-1 [SFT] 95K - чекпоинт с 95000 шагов (на нем основана RL V1)
ESpeech-TTS-1 [SFT] 265K - чекпоинт с 265000 шагов (на нем основана RL V2)
Лайкайте модель которая больше понравится чтобы мы понимали есть ли смысл запускать RL.
Послушать модели без скачивания можно вот здесь:
https://huggingface.co/spaces/Den4ikAI/ESpeech-TTS
Совместно с @speech_recognition_ru ещё сделали лидерборд русского ТТС, где можно глянуть метрики:
https://huggingface.co/spaces/ESpeech/open_tts_leaderboard_ru
Задать вопросы по поводу данных и модели можно в наших телеграм каналах:
/channel/den4ikresearch
/channel/voice_stuff_chat
Кидайте донаты Денису чтобы было больше подобных подгонов!
USDT (TRC20): TEpEM4VVmGmqKHn4Xz1FxM7qZiXjWtUEUB
BTC: bc1qw5lq7fc455e47hggax6zp8txw4ru7yvsxvawv3
https://www.tbank.ru/cf/7WKnNMqWtOx
Дорогие подписчики 🩷
Сейчас я нахожусь в Америке и этим летом буду в таких городах как: Los Angeles, San Francisco, New York
Если вы находитесь рядом - я рада знакомству в личных сообщениях 🌟
Ранее я писала о статьях с emergent TTS, вчера защитила постер и мой research output - лучше всех для этих целей flow matching и compositional classifier free guidance. Но drawback - user experience, так как хочется все таки описать просто текстом то, что ты хочешь услышать.
fugatto пост
spiritlm пост
uniaudio пост
notion page с другими статьями
Моя жизнь за последние пару месяцев стала более занятой, менее нервозной и менее продуктивной на посты. Одна из штук, которыми я занималась и занимаюсь - это F5TTS для русского.
Так как париться с красивыми постами (а они когда-то были?) мне не хочется, будут посты более расслабленные и легкие. Вот давайте послушаем новые примеры с нового подхода, который я поставила.
В этот раз это смесь russian и english (total 268h) так как заметила сильный forgetting для английского при обучении чисто на русском.
До этого были эксперименты с IPA и ударениями. Сейчас русский стоит только с ударениями от ruaccent, ударения с пометкой на +. Хочется рассказать о том, как работает расширение, что не так с длинными записями и как сделать condition на source lang != target lang. А также про то, как я собственно проверяю модели, выбираю данные и колдую над генерацией без изменения моделей.
#grokaem_audio
Github repo, которое автоматически обновляется каждые 12 часов статьями из TTS сферы
link
#grokaem_audio
Этот год был насыщенным на события, на мой как профессиональный, так и личностный рост. Огромным этапом для меня стал переезд в Германию, который дался мне морально очень тяжело. Однако он притянул кучу разных как сложных, так и очень приятных событий. Пока что я нахожусь тут, как и всегда рада знакомствам. Надеюсь, что и следующий год принесет вам много как шипучка заряжающих событий, чтобы через месяцы и годы они обмазывали душу как теплый хлебушек маслом. И, конечно, пусть следующий год вернет нам всем мира и любви друг к другу.
Для хоть какого-то новогоднего настроения отправляю вам вид из моего родного города, где я уже слишком давно не была. Надеюсь, что эта фотография поднимет и вам новогоднее настроение, как подняла его и мне. Присылайте ваши новогодние фотокарточки в комментариях)
Vikhr Borealis - первая русскоязычная открытая audio llm
Мы долго и не очень успешно развивали свой tts - Salt, от него исторически осталось довольно много данных и наработок, мы решили - чо бы не сварить asr + llm как модно?
Ну и сварили. Архитектурно - whisper + qwen, учили на 7к часов аудио только адаптер+llm, сейчас работает только в ASR режиме, позже возможно довезем инструктивный режим. Так же выйдет бенчмарк для русского asr, он пока в доработке.
Блог так же выйдет, там будут небольшие аблейшены по данным
Модель в данный момент бьет whisperы на русском и на части бенчей лучше чем gigam.
Модель
Сolab поиграться
VIBEVOICE
https://github.com/microsoft/VibeVoice
One sentence architecture explanation: pre-trained LLM with voice latents and text scripts in a single sequence → LLM produces a hidden state → it conditions a lightweight token-level Diffusion Head → predicting VAE audio features features.
1. speech tokenizer is a sigma VAE with a pre-defined variance, 24kHz input to 7.5 tokens per second.
2. semantic tokenizer is the transformer but without VAE components yielding semantic = asr representations.
All that forms an input for LLM by concatenating voice and text (semantic) scripts. On each predicted token a lightweight diffusion head is applied, on inference cfg is also implemented.
Their 1.5B model is not as much better than competitors while 7b is winning over all subjective metrics.
My comment: I liked the architecture and idea of using a lightweight diffusion for token prediction. However, I don’t think that enough exploration was done on the diffusion part. Moreover, the paper lacks explanation for the test set prediction. I was also surprised that the features per each speaker are concated as speaker_1 acoustic, speaker_2 acoustic … speaker_n acoustic…speaker_1 text, speaker_2 text. I also truly liked the tokenizer compression quality as it allows to build up a long podcast generation.
I don’t understand slang in any language I speak (german, english, russian). I didn’t know what goat means in english slang. lowkey i don’t even use it now… until today cause this paper is not goat tbh 😎
GOAT: Expressive and Realistic Speech Generation via A Dual-Branch LLM
https://arxiv.org/abs/2504.12339
LLM approach: whisper speech encoder, dual heads (one for texts and one for speech with a flow matching decoder).
Inference strategy: input speech prompt, target synthesis text processed and speech is generated.
1. To achieve this we first learn the modality alignment = asr here & text continuations. In the training data are enriched with descriptions in the text (nothing is said about the quality of speech descriptions further, unfortunate).
2. Second stage is speech generator part. Input here is text query, text response and speech response.
CosyVoice is winning over test for chinese and hard in wer, no mos comparison….. вторая статья как-то ни о чем…
Буду сама слушать тоже 💔
По сей день считаю, что все мои скиллы именно по дл заслуга длс.
StreamUni
Статья оказалась просто двумя формулами для truncation и generation policy.
https://arxiv.org/abs/2507.07803
In speech translation (ST) we need a very important parameter we didn’t care much about in text translation. This is a deterministic timing. This parameter is less important in non-streaming ST while being the most important requirement in real-time ST.
Here we need to choose good timing to:
1. “read” speech aka gather words to translate
2. output speech aka speak in another language at appropriate timing
3. forget history if we’re on a conference and Hello, president is not important for the new regulation discussions after 3-4 hours…
All that with good latency.
----------
Cascade systems ASR → Text Translation → Speech Translation are heavy but so well distinguished that it becomes easy to debug. The first step to merge is ASR → Text Translation. Этим и будем заниматься через multimodal систему. Я предпочитаю уточнять про multimodal: это multimodal input, не аутпут.
--------
Proposed model is a StreamUni based on a unified LSTM to accomplish all the good timing points. Backbone is Phi-4-Multimodal. StreamUni introduces speech Chain-of-Thought. Модель собирает чанки по ~320ms, их прогоняет через audio encoder, переводит. The model with multi-stage outputs gives:
1. truncation policy = когда дропнуть генерацию и почистить историю браузера. Это происходит при prolonged silence or full sentence is finished.
Дропнув ненужное и собрав нужное исполняем generation policy:
1. generation policy = собственно дай перевод, однако под него нужно собрать немного контекста, поэтому делаем небольшой delay parameter. С ним мы и не будем забегать вперед, то есть поверх latency будем ожидать слова, чтобы не сказать лишнего, и соберем контекста.
Chatterbox
https://github.com/resemble-ai/chatterbox/tree/master
Hf space: https://huggingface.co/spaces/ResembleAI/Chatterbox
LLAMA based one, multilingual, superior of elevenlabs (!)
Interesting things in code:
1. separate head for the speaker encoder, lstm based, speaker embeddings are added in conditional information
2. exaggeration parameter was the one I was looking for most of the time as it was not obvious to me what they meant by it in the coding part. According to the encoder part additional layer is added to encode the weights in src/chatterbox/models/t3/modules/cond_enc.py, then the emotion exaggeration values, speaker embeddings and clap embeddings are stack (first dim = num of conditions) together. Then we just concat them as conditions, text, speech in src/chatterbox/models/t3/t3.py:109
Still unclear to me how they trained it if it’s not capable of generating laughter for example https://github.com/resemble-ai/chatterbox/issues/30. While people who fine-tuned it set training to 0.5 by default https://github.com/stlohrey/chatterbox-finetuning/blob/master/src/finetune_t3.py I might guess that they either labeled with llm texts or used native randomization during training.
Fun comments I liked src/chatterbox/models/t3/t3.py:137, is RoPE okayyy? the answer is in post above
Не знала, что у Eren Golge есть еще email рассылки с новостями.
erogol" rel="nofollow">https://substack.com/@erogol
VoiceStar
https://github.com/jasonppy/VoiceStar?tab=readme-ov-file
1️⃣Problem: of the NCLM (neural codec language models) is the inability for fine grained controllability.
Solution: progress-monitoring rotary position embeddings По сути дела при простом concat audio и текст токенов RoPE positional embedding нам не очень помогут, так как нам необходима relative positional information between audio and text tokens as mostly they implicilty align. While for the RoPE we have the recency bias (etc bias toward recent context). The authors integrate the relative progress into positional embeddings equal to the relative amount of source (text tokens) - relative amount of target audio tokens. Moreover, this approach allows to control the N hyperparameter for the pseudo max length, so we can interpolate without underperformance. For interpolation factors of 40s to 50s the gap with other MaskGCT or F5TTS is huuge in WER.
The attention maps for text and speech tokens.
2️⃣Problem: voice cloning is a continuation task.
Solution: Another simple idea is the training with the continuation-prompt mixing. The thing is that during training most of the time the emotion, prosody etc are consistent. However, on inference we want (most of the time) to match the text emotion. To leverage this inference scenario, the authors mix the samples between one speaker. This one it might be a sad prompt and a happy continuation. Exactly what we meet in the real world. Moreover, this approach further allows to use repeated reference prompts etc no worries if the prompt must be 10 sec and you have only 2, repeat, the model will not hallucinate.
Прошел мой первый отпуск в три недели после самого сложного выгорания в такой еще не долгой карьере. Не хотелось ничего, я не читала каналы уже очень давно, от кода тошнило, ноутбук не хотелось открывать даже для простого гугляжа. Вернувшись в Германию вчера, очертив также днем рождения свой 24 год, входим в новый. В год, когда я не буду сгорать до тла, ведь даже его уже не осталось.
Один из скиллов, которые я хотела бы выработать для своей как академической, так и профессиональной карьеры - это быстрое чтение статей. В эппле я уже научилась это делать быстрее, навык нужно оттачивать. Челлендж 1 статья в день объявляем открытым. Здесь много но, одно из них сложность статьи, если статья будет актуальная и сложная, я позволяю себе читать ее дольше. Если я болею, то я не работаю. В чтении мне не так важны датасеты или таблицы, я ищу идеи.
Моя стажировка в Apple подошла к концу🍏Здесь я была с февраля. Каталась на работу на велосипеде. Ела в Apple Park. Получила водительские права. Улучшила английский. Познакомилась с людьми.
Без оков privacy я могу смело возвращаться в канал. Это был длинный изматывающий путь, но он выполнен.
Когда-то мечты становятся целями, о которых страшно говорить. Вслух даже самой себе я сказала, что хочу в Apple, когда я со скрипом и слезами уезжала из РФ. Меньше чем через год я попала в Apple.
Для интересующихся мое менеджерское руководство очень классное и разрешило довольно обширное описание проекта, однако о деталях я не имею права говорить:
Developed a conversational text-to-speech system leveraging diffusion models. Built and scaled a 70,000-hour dataset, oversaw large-scale distributed training, and designed a model capable of generating interleaved and overlapping dialogue on two-stream manner.
Meta новая модель для оценки аудио
paper
code
Выше я писала о том, что часто я фильтрую и анализирую аудио данные по различным метрикам. Их делят на subjective и objective, где objective больше про технические характеристики, а subjective должна быть похожа на идеальный MOS. Автоматические MOS нужны, так как это позволяет честно сравнивать модели между собой.
Meta попытались решить проблему в эту стороны. Что сделали?
Одну transformer модель для определения 4 метрик:
🐢🐢🐢
1. Product Quality - технические аспекты качества
2. Production Complexity - сколько компонент в аудио
3. Content Enjoyment - аля mos, emotional impact, artistic skills, expression and etc
4. Content Usefulness - сколь подходящий для контента (будешь ли юзать у себя на ютуб канале этот звук)
🐢🐢🐢
Что мне понравилось, так они посмотрели на 2 способа использования метрик (смотрели только PQ - product quality):
- фильтрация данных, которые потом пойдут на обучение
- добавление в промт для description моделей как их AudioBox
И о вау вау, фильтрация проигрывает. Тут сложный саркастический комментарий, так как с одной стороны мы получаем меньше данных с фильтрацией, что объясняет, почему для промта все лучше (у промта не отняли данные). Но фильтрация же даст максимально чистые классные данные! Я бы сказала, что в большом количестве "грязные" данные - это аугментация))
Так как я за открытый research, прикладываю source записи, чтобы вы также могли их юзать 🦕
Читать полностью…My train of thought before the meeting:
пост 1
пост 2
Мы продолжаем готовить постер-презентацию на тему Immersive TTS. Напоминая о задаче: нужно как-то генерировать и звук, и речь. Речь погруженная в жизнь не глазами лингвистов, а речь с background noise, с еще речью поверх и тд и тп.
Сегодня мы взглянем на вопрос с точки зрения архитектуры для combined approach - одна модель генерит все.
Как обычно базировать наше решение об архитектуре мы будем на том, от чего мы можем получить больше пользы:
a) LLM - не быть дураком, scalability и pre-trained models юзать хочется. Здесь может быть подход с LoRA или с RVQ. Для последнего мы стараемся transfer audio modality into textual space посредством единой encoder->decoder модели как у UniAudio 1.5. или отдельных голов трансформера как в UniAudio, или же получая токены как семантические, так и стилевые с других моделей как у SpiritLM
б) Diffusion, flow matching подходы - одни из лидирующий пусть и не самых стабильных подходов. Condition для таких моделей у нас может быть разный, как audio prompt, так и text prompt. Кроме того, если мы передаем target описание записи отдельно, при этом добавляя семантическую информацию - мы можем и регулировать влияние как первого, так и второго (VoiceLDM, dual classifier free guidance) или даже расширить на n-количество параметров (Fugatto).
Более того, для diffusion/flow based models игроки придумали не париться о кодировании записи, а использовать сразу CLAP эмбеддинги от pre-trained модели. Однако как показали Speak in the scene, лучше добавлять все таки classifier free guidance, так как condition только на тексте дает дроп.
Слушая примеры, я конечно отдам голос второму подходу. Но может быть мы все таки еще просто не умеем соединять audio и LM? А надо ли?
VoiceLDM: https://voiceldm.github.io/
Speak in the scene: https://ast-ldm.github.io/demo/
SpiritLM: https://speechbot.github.io/spiritlm/
#grokaem_audio
ДЕКАБРЬ 2024
🎄Audio 🎄
1. Transformer-based audio autoencoder
2. Gemini сделали эмоциональный контекстуальный audio output
3. Streaming TTS CozyVoice
4. FishAudio 1.5
5. kits.ai singing voice conversion
🎄NLP🎄
1. Byte-latent transformer
2. Large Concept Model от meta
3. ModernBert
4. Маленький курс от HF про маленькие llmки и их использование
🎄Другое🎄
1. Монография для reinforcement learning
2. Классный список техник advanced DL
3. Куча ресурсов для foundation models
Total-duration-aware duration modeling for text-to-speech systems
paper
#grokaem_audio
Про скорость в tts мы краем глаза смотрели тут. Одна из проблем того же dubbing - регулирование скорости: речь в исходном языке должна быть по длине как и в таргет. Для этого мы можем использовать post-processing, когда мы ускоряем весь семпл. Также можем довериться самой TTS модели (implicit) или каким-то образом передавать durations (explicit). Наша задача здесь - это сделать модель, которая и будет предсказывать durations на sequence фонем.
Для предсказания этих durations мы можем тренировать модель как regression с MSE, маскируя рандомно durations, также можем делать предсказание с flow-matching. Авторы предлагают два ключевых изменения:
👍
1. вместо просто маскирования также передавать и duration, который остался. Грубо говоря, мы замаскировали n durations, общая duration 30 frames, после маскирования осталось 22, тогда в модель вместе с маской мы передадим 8 на каждый из n durations (d_tgt).
2. также вместе просто трансформера авторы используют MaskGIT, который отличается итеративным предсказание маскированных токенов: выбрал k с наибольшей уверенностью, вставил их в sequence, предсказал заново. Так и с нашей duration моделью - предсказали k durations, уменьшили коли-о фреймов, которые передаем с маской (d_tgt). И так пока d_tgt не будет равна 0.
👍
По метрикам MaskGIT делает менее крутой slope как и по WER, так и по Speaker similarity, если мы начинаем ускорять речь. Также авторы проверили Frechet Duration Distance с train и их подход выигрывает над regression и FM, но мне кажется это не столь честным так как в train speech rate +- всегда одинаковый.
Несмотря на более subtle slope, дроп все таки остается сильным wer ~2 → ~7, но и учили авторы только на примерах с скоростью 1x.