SpiritLM - попытка сделать SpeechLM на HuBERT фичах.
#grokaem_audio
0️⃣Основа: взяли LLAMA2, добавили HuBERT на аудио. Их двоих мы соединяем с помощью техники interleaving - это когда мы рандомно семплим span для аудио, а потом рандомно семплим для текста и соединяем. Пример в комментариях.
1️⃣ Также авторы пробуют добавить экспрессивности, так как HuBERT фичи по дефолту несут только семантику. Для этого ко всем токенам также добавляют pitch токены и style токены в соответствующие timestamps. Pitch токены мы получили от отдельной модели VQ-VAE. Style токены мы получаем от
speechprop модели. И тут они хотят избавиться от speaker информации, для этого они файнтюнят модель на style токенах от Expresso и поверх считают k-means, с k=100.
Теперь обратимся к результатам: тут их много и все плохие)))
- да, interleaving - это ключ к успеху, кроме того, он дает буст для S→T
- кроме всего прочего interleaving лучше чем ASR+TTS подход (берешь пары полных предложений от HuBERT и от текста и просто соединяешь); world-level transcription (пословно соединять текст и HuBERT токены)
- подход с экспрессивностью все портит кроме экспрессивности лол
- S->T гораздо сильнее чем T->S
3️⃣ Также авторы создали
benchmark, чтобы проверять экспрессивность речи. Проверяют просто - берут промт и проверяют, что результат от модели дает такой же лейбл, как дается и промту.
code
demo
paper