13 Audio-Language Models
🚧 Երկու դասախոսության սլայդերը պատրաստ են (L35, L36)։ Տեսանյութերը դեռ չեն ձայնագրվել, տնային աշխատանք դեռ չկա։
Այս գլուխը ch12-ի (VLM) ուղիղ զույգն է․ նույն կամուրջը, բայց ավելի դժվար ազդանշանի համար։ Օգտագործում է նաև ch8 (autoencoder) — codec-ը քվանտացված bottleneck-ով autoencoder է, ch8b (GAN) — codec-երը սովորեցվում են adversarial ձևով, և ch9 (attention) — քառակուսային արժեքն է ամբողջ խնդիրը։
🎲 Random
TBD
📚 Նյութը
Երկու դասախոսություն (սլայդերը ml/ch13_audio/ պանակում)։ Գլուխը պատասխանում է այն հարցին, որ ուսանողները ամեն օր տեսնում են՝ ինչպե՞ս է հեռախոսս ինձ «լսում», և ինչո՞ւ է վերջին երկու տարում պատասխանը սկսում գալ կես վայրկյանից էլ շուտ։
- L35 — Audio-Language Models I: How a model hears — ձայնը վայրկյանում 16,000 թիվ է, տեքստից ~6,400 անգամ շատ։ 25 մս պատուհան, 10 մս քայլ, FFT, mel սանդղակ, լոգարիթմ — և ահա սպեկտրոգրամը, հենց այն, ինչ Whisper-ը ստանում է։ Ապա նույն երեք արկղը, ինչ L33-ում՝ encoder → projector → LLM (Qwen2-Audio, SALMONN, Qwen3-Omni), և վերջում՝ ի՞նչ է կորչում cascade-ի մեջ։ PDF
- L36 — Audio-Language Models II: How a model speaks — լեզվական մոդելը արտադրում է դիսկրետ token-ներ, ձայնը անընդհատ է։ Ուստի հորինում ենք ձայնի բառապաշար՝ residual vector quantization-ը, codec-երը (SoundStream, EnCodec, Mimi), semantic ու acoustic token-ների բաժանումը, ապա generation-ը (flatten / parallel / delay, VALL-E, flow matching), և վերջում full duplex-ը՝ Moshi-ի 17 հոսքը, որը միաժամանակ լսում է ու խոսում։ PDF
Գլխի հիմնական միտքը մեկ նախադասությամբ․ ձայնը ևս դարձնում ենք վեկտորների հաջորդականություն — բայց ի տարբերություն նկարի, զրույցը երբեք չի կանգնում։
L36-ը չի պնդում, թե ինչ է տալիս residual quantization-ի ամեն հաջորդ մակարդակը — այն չափում է, 60 վրկ սինթեզված corpus-ի վրա սովորեցված codebook-երով, կիրառված չտեսած արտասանության վրա (\(K=64\), 8 մակարդակ)․
| Մակարդակ | Այդ մակարդակի տված շահույթը |
|---|---|
| 1 | 16.86 dB |
| 2 | 2.12 dB |
| 3 | 1.09 dB |
| 4 | 1.16 dB |
| 5–8 | 0.77 / 0.57 / 0.56 / 0.45 dB |
Կտրուկ առաջնահերթ (front-loaded)։ Առաջին մակարդակը մենակ տալիս է 16.9 dB, իսկ 2–8 մակարդակները միասին՝ ընդամենը 6.7 dB՝ ութ անգամ ավելի բիթի դիմաց։ Ուղիղ նույն ձևն է, ինչ L34-ի codebook-ի չափումը պատկերների վրա։ Հենց դա է պատճառը, որ վերևի մակարդակները կարելի է դեն նետել՝ որակը փոխանակելով հաջորդականության երկարության հետ, և որ առաջին մակարդակի շուրջ է ամբողջ պայքարը։
⚠️ Սա փոխարինող է, ոչ թե codec։ Չափումը արվում է log-mel frame-երի վրա, ոչ թե սովորեցված encoder-ի latent-ների։ log-mel-ը արդեն կորցրել է phase-ը (L35), ուստի այս frame-երը ձայնի չեն վերածվում։ Վերցրեք կորի ձևը, ոչ թե թվերը։ Ամբողջ չափումը՝ py_src/l36_speaking_figs.py, log-երը՝ logs/l36_speaking_figs.log։
Համացանցում լայնորեն գրված է, թե Mimi-ն WavLM-ը դիստիլացնում է RVQ-ի առաջին մակարդակի մեջ։ Դա սխալ է, և սխալի պատմությունն ավելի ուսուցողական է, քան ինքը փաստը։
Հեղինակները հենց այդ բանը փորձեցին։ Արդյունքը՝ առաջին քվանտիզատորի հնչյունային տարբերակիչ ուժը բարձրացավ, բայց ձայնի որակը վատացավ, որովհետև այն ամենը, ինչ առաջին մակարդակը դադարեց կոդավորել, դեռ պետք է կրեր իր փոխանցած մնացորդը։ Ուստի նրանք այն հանեցին շղթայից․ առանձին semantic VQ՝ զուգահեռ 7-մակարդականի acoustic RVQ-ի հետ, ելքերը գումարվում են։
Առանձին փաստ, որ արժե ստուգել․ պարզ RVQ-ի առաջին մակարդակը semantic չէ։ EnCodec-ի վրա չափված (Zhang et al., 2024)՝ միայն առաջին մակարդակից վերականգնումը պահում է խոսողի նմանության 0.92-ը, իսկ բովանդակությունը փլվում է — ուղիղ հակառակը նրան, ինչ «semantic» բառը ենթադրում է։
🏡 Տնային
TBD