Google, Lyra V2 ์˜คํ”ˆ ์†Œ์Šค ์˜ค๋””์˜ค ์ฝ”๋ฑ ์ถœ์‹œ

Google์€ ๊ธฐ๊ณ„ ํ•™์Šต ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งค์šฐ ๋Š๋ฆฐ ํ†ต์‹  ์ฑ„๋„์—์„œ ์ตœ๋Œ€ ์Œ์„ฑ ํ’ˆ์งˆ์„ ๋‹ฌ์„ฑํ•˜๋Š” Lyra V2 ์˜ค๋””์˜ค ์ฝ”๋ฑ์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ๋ฒ„์ „์€ ์ƒˆ๋กœ์šด ์‹ ๊ฒฝ๋ง ์•„ํ‚คํ…์ฒ˜๋กœ์˜ ์ „ํ™˜, ์ถ”๊ฐ€ ํ”Œ๋žซํผ ์ง€์›, ํ™•์žฅ๋œ ๋น„ํŠธ ์ „์†ก๋ฅ  ์ œ์–ด ๊ธฐ๋Šฅ, ํ–ฅ์ƒ๋œ ์„ฑ๋Šฅ ๋ฐ ๋” ๋†’์€ ์˜ค๋””์˜ค ํ’ˆ์งˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ์ฝ”๋“œ ๊ตฌํ˜„์€ C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ €์†์œผ๋กœ ์ „์†ก๋˜๋Š” ์Œ์„ฑ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ ์ธก๋ฉด์—์„œ Lyra๋Š” ๋””์ง€ํ„ธ ์‹ ํ˜ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ์ฝ”๋ฑ๋ณด๋‹ค ํ›จ์”ฌ ์šฐ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์ œํ•œ๋œ ์–‘์˜ ์ •๋ณด๊ฐ€ ์ „์†ก๋˜๋Š” ์กฐ๊ฑด์—์„œ ๊ณ ํ’ˆ์งˆ ์Œ์„ฑ ์ „์†ก์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Lyra๋Š” ๊ธฐ์กด์˜ ์˜ค๋””์˜ค ์••์ถ• ๋ฐ ์‹ ํ˜ธ ๋ณ€ํ™˜ ๋ฐฉ๋ฒ• ์™ธ์—๋„ ๊ธฐ๊ณ„ ํ•™์Šต ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ ์Œ์„ฑ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ „ํ˜•์ ์ธ ๋ง์˜ ํŠน์ง•.

์ฝ”๋ฑ์—๋Š” ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ธ์ฝ”๋”์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 20๋ฐ€๋ฆฌ์ดˆ๋งˆ๋‹ค ์Œ์„ฑ ๋ฐ์ดํ„ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์ด๋ฅผ ์••์ถ•ํ•œ ํ›„ 3.2kbps์—์„œ 9.2kbps์˜ ๋น„ํŠธ ์ „์†ก๋ฅ ๋กœ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ˆ˜์‹ ์ž์—๊ฒŒ ์ „์†กํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹ ๊ธฐ ์ธก์—์„œ ๋””์ฝ”๋”๋Š” ์ƒ์„ฑ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ „์†ก๋œ ์˜ค๋””์˜ค ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์›๋ณธ ์Œ์„ฑ ์‹ ํ˜ธ๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์–‘ํ•œ ์ฃผํŒŒ์ˆ˜ ๋ฒ”์œ„์—์„œ ์Œ์„ฑ์˜ ์—๋„ˆ์ง€ ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜๊ณ  ๋‹ค์Œ ๋ชจ๋ธ์„ ๊ณ ๋ คํ•˜์—ฌ ์ค€๋น„๋œ ๋Œ€์ˆ˜ ๋ถ„ํ•„ ์ŠคํŽ™ํŠธ๋กœ๊ทธ๋žจ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ธ๊ฐ„์˜ ์ฒญ๊ฐ ์ง€๊ฐ.

Lyra V2๋Š” ๊ณ„์‚ฐ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋‚ฎ์€ SoundStream ์ปจ๋ณผ๋ฃจ์…”๋„ ์‹ ๊ฒฝ๋ง์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ƒˆ๋กœ์šด ์ƒ์„ฑ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์ €์ „๋ ฅ ์‹œ์Šคํ…œ์—์„œ๋„ ์‹ค์‹œ๊ฐ„ ๋””์ฝ”๋”ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์†Œ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ๋ชจ๋ธ์€ 90๊ฐœ ์ด์ƒ์˜ ์–ธ์–ด๋กœ ๋œ ์ˆ˜์ฒœ ์‹œ๊ฐ„์˜ ์Œ์„ฑ ๋…น์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ›ˆ๋ จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. TensorFlow Lite๋Š” ๋ชจ๋ธ์„ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๊ตฌํ˜„์˜ ์„ฑ๋Šฅ์€ ์ €๋ ดํ•œ ๊ฐ€๊ฒฉ๋Œ€์˜ ์Šค๋งˆํŠธํฐ์—์„œ ์Œ์„ฑ ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์ƒ์„ฑ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ ์ƒˆ ๋ฒ„์ „์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์ „์— ์†ก์‹ ์ž ์ธก๊ณผ ์ˆ˜์‹ ์ž ์ธก์—์„œ ์‹คํ–‰๋˜๋Š” RVQ(Residual Vector Quantizer) ์–‘์žํ™”๊ธฐ์™€์˜ ๋งํฌ ์ฝ”๋ฑ ์•„ํ‚คํ…์ฒ˜์— ํฌํ•จ๋œ ์ ๋„ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์€ ํ›„. ์–‘์žํ™”๊ธฐ๋Š” ์ฝ”๋ฑ์—์„œ ์ƒ์„ฑ๋œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํŒจํ‚ท ์„ธํŠธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์„ ํƒํ•œ ๋น„ํŠธ ์ „์†ก๋ฅ ๊ณผ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ์ธ์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์˜ ํ’ˆ์งˆ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ธ ๊ฐ€์ง€ ๋น„ํŠธ ์ „์†ก๋ฅ (3.2kps, 6kbps ๋ฐ 9.2kbps)์— ๋Œ€ํ•œ ์–‘์žํ™”๊ธฐ๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋น„ํŠธ ์ „์†ก๋ฅ ์ด ๋†’์„์ˆ˜๋ก ํ’ˆ์งˆ์€ ์ข‹์•„์ง€์ง€๋งŒ ๋Œ€์—ญํญ ์š”๊ตฌ ์‚ฌํ•ญ๋„ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

Google, Lyra V2 ์˜คํ”ˆ ์†Œ์Šค ์˜ค๋””์˜ค ์ฝ”๋ฑ ์ถœ์‹œ

์ƒˆ๋กœ์šด ์•„ํ‚คํ…์ฒ˜๋Š” ์‹ ํ˜ธ ์ „์†ก ์ง€์—ฐ์„ 100๋ฐ€๋ฆฌ์ดˆ์—์„œ 20๋ฐ€๋ฆฌ์ดˆ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค. ๋น„๊ต๋ฅผ ์œ„ํ•ด WebRTC์šฉ Opus ์ฝ”๋ฑ์€ ํ…Œ์ŠคํŠธ๋œ ๋น„ํŠธ ์ „์†ก๋ฅ ์—์„œ 26.5ms, 46.5ms ๋ฐ 66.5ms์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ์ธ์ฝ”๋”์™€ ๋””์ฝ”๋”์˜ ์„ฑ๋Šฅ๋„ ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์— ๋น„ํ•ด ์ตœ๋Œ€ 5๋ฐฐ ๋” ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Pixel 6 Pro ์Šค๋งˆํŠธํฐ์—์„œ ์ƒˆ๋กœ์šด ์ฝ”๋ฑ์€ 20ms ์ƒ˜ํ”Œ์„ 0.57ms ๋‚ด์— ์ธ์ฝ”๋”ฉ ๋ฐ ๋””์ฝ”๋”ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์‹œ๊ฐ„ ์ „์†ก์— ํ•„์š”ํ•œ ๊ฒƒ๋ณด๋‹ค 35๋ฐฐ ๋น ๋ฆ…๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ์™ธ์—๋„ ์‚ฌ์šด๋“œ ๋ณต์› ํ’ˆ์งˆ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ–ˆ์Šต๋‹ˆ๋‹ค. MUSHRA ์Šค์ผ€์ผ์— ๋”ฐ๋ฅด๋ฉด Lyra V3.2 ์ฝ”๋ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋น„ํŠธ ์ „์†ก๋ฅ  6kbps, 9.2kbps ๋ฐ 2kbps์˜ ์Œ์„ฑ ํ’ˆ์งˆ์€ ๋น„ํŠธ ์ „์†ก๋ฅ  10kbps, 13์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. Opus ์ฝ”๋ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ kbps ๋ฐ 14kbps์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€