OpenAI, Audio Models in the API ์ถœ์‹œ

Posted by Euisuk's Dev Log on March 22, 2025

OpenAI, Audio Models in the API ์ถœ์‹œ

์›๋ณธ ๊ฒŒ์‹œ๊ธ€: https://velog.io/@euisuk-chung/OpenAI-Audio-Models-in-the-API-์ถœ์‹œ

์ตœ๊ทผ OpenAI๋Š” ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ์—์ด์ „ํŠธ์—์„œ ๋” ๋‚˜์•„๊ฐ€, ์Œ์„ฑ ๊ธฐ๋ฐ˜์˜ ์ž์—ฐ์Šค๋Ÿฝ๊ณ  ์ง๊ด€์ ์ธ ์†Œํ†ต์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์Œ์„ฑ AI ๋ชจ๋ธ์„ ์ƒˆ๋กญ๊ฒŒ ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ถœ์‹œ๋Š” ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ณ€ํ™˜(STT, Speech-to-Text) ๋ชจ๋ธ๊ณผ ํ…์ŠคํŠธ-์Œ์„ฑ ๋ณ€ํ™˜(TTS, Text-to-Speech) ๋ชจ๋ธ์„ ํฌํ•จํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์ด ๋”์šฑ ๊ฐ•๋ ฅํ•˜๊ณ  ๋งž์ถคํ™”๋œ ์Œ์„ฑ ์—์ด์ „ํŠธ๋ฅผ ์†์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“‹ ์ด๋กœ์จ ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ณ ๊ฐ ์„œ๋น„์Šค, ๊ต์œก, ์ฝ˜ํ…์ธ  ์ œ์ž‘, ํ—ฌ์Šค์ผ€์–ด ๋“ฑ ๋‹ค์–‘ํ•œ ์‚ฐ์—… ๋ถ„์•ผ์— ์Œ์„ฑ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ ‘๋ชฉ์‹œํ‚จ ํ˜์‹ ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์†์‰ฝ๊ฒŒ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ”— Reference Links

OpenAI๋Š” ์Œ์„ฑ์œผ๋กœ ๋งํ•˜๋ฉด, AI๊ฐ€ ์Œ์„ฑ์œผ๋กœ ๋‹ตํ•˜๋Š” โ€˜Voice Agentโ€™ ์‹œ๋Œ€๋ฅผ ๋ณธ๊ฒฉ์ ์œผ๋กœ ์—ด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

  • Voice Agent๋ž€ ์‰ฝ๊ฒŒ ๋งํ•ด, ์Œ์„ฑ์œผ๋กœ ์‚ฌ์šฉ์ž์™€ ๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์Œ์„ฑ ๊ธฐ๋ฐ˜์˜ AI ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋ง์„ ๋“ฃ๊ณ , ๊ทธ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•œ ๋’ค, ๋‹ค์‹œ ๋ง๋กœ ์‘๋‹ตํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ฃ .

    • ๋‹จ์ˆœํ•œ ์Œ์„ฑ ์ธ์‹ ๊ธฐ์ˆ (STT)์ด๋‚˜ ์Œ์„ฑ ํ•ฉ์„ฑ ๊ธฐ์ˆ (TTS)์„ ๋„˜์–ด์„œ, ์‹ค์ œ๋กœ ๋Œ€ํ™”๋ฅผ ๋‚˜๋ˆ„๋Š” ์—์ด์ „ํŠธ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

OpenAI๋Š” ์ด Voice Agent๋ฅผ ๋ˆ„๊ตฌ๋‚˜ ์†์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด, ์ด๋ฒˆ ๋ฐœํ‘œ๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ์Œ์„ฑ ๋ชจ๋ธ๋“ค์„ ๊ณต๊ฐœํ•˜๋Š” ํ•œํŽธ, ๊ธฐ์กด์˜ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋ฅผ ์Œ์„ฑ ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋กœ ์†์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์ธ Agents SDK๋„ ํ•จ๊ป˜ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋ฒˆ ๋ฐœํ‘œ์—์„œ OpenAI๋Š” ๋จผ์ € Voice Agent๋ฅผ ๋งŒ๋“œ๋Š” ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ๋ฐฉ์‹์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.

    1. Speech-to-Speech ๋ฐฉ์‹: ์‚ฌ์šฉ์ž์˜ ์Œ์„ฑ์„ ๋ฐ”๋กœ ์ธ์‹ํ•ด, ์‹ค์‹œ๊ฐ„์œผ๋กœ ์Œ์„ฑ์œผ๋กœ ์‘๋‹ตํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ํ•œ๋ฒˆ์— ๋น ๋ฅด๊ณ  ์ž์—ฐ์Šค๋Ÿฌ์šด ๋Œ€ํ™”๋ฅผ ์ง€์›ํ•˜์ง€๋งŒ, ๋ชจ๋ธ ๊ฐ„ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

    2. Chained ๋ฐฉ์‹: ์‚ฌ์šฉ์ž์˜ ์Œ์„ฑ์„ ํ…์ŠคํŠธ๋กœ ๋ฐ”๊พธ๊ณ (STT), ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ LLM์ด ๋‹ต์„ ์ƒ์„ฑํ•œ ๋’ค, ๋‹ค์‹œ ์Œ์„ฑ์œผ๋กœ ๋ฐ”๊พธ๋Š”(TTS) ๋ชจ๋“ˆํ˜• ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ๊ฐ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ์–ด ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์„ ํ˜ธํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

OpenAI๋Š” ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ด Chained ๋ฐฉ์‹์„ ์ค‘์‹ฌ์œผ๋กœ Voice Agent๋ฅผ ๊ตฌํ˜„ํ•  ๊ฒƒ์œผ๋กœ ๋ณด๊ณ , ์—ฌ๊ธฐ์— ์ตœ์ ํ™”๋œ ์ƒˆ๋กœ์šด Speech-to-Text(STT) ๋ชจ๋ธ๊ณผ Text-to-Speech(TTS) ๋ชจ๋ธ์„ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์Œ์„ฑ ๋ชจ๋ธ๋“ค์ด ์–ด๋–ค ์ ์—์„œ ๋ฐœ์ „ํ–ˆ๋Š”์ง€, ์‹ค์ œ๋กœ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ์ƒˆ๋กœ์šด ์Œ์„ฑ-ํ…์ŠคํŠธ(STT) ๋ชจ๋ธ

OpenAI๋Š” GPT-4o ๊ธฐ๋ฐ˜์˜ ์ƒˆ๋กœ์šด ์Œ์„ฑ-ํ…์ŠคํŠธ ๋ชจ๋ธ ๋‘ ๊ฐ€์ง€๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

  • GPT-4o-transcribe
  • GPT-4o-mini-transcribe

์ด ๋ชจ๋ธ๋“ค์€ Whisper ์‹œ๋ฆฌ์ฆˆ์˜ ํ›„์†์ž‘์œผ๋กœ, ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ์™€ ๊ฐœ์„ ๋œ ํ•™์Šต ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ํ™˜๊ฒฝ์—์„œ ๋” ๋‚ฎ์€ ์˜ค๋ฅ˜์œจ๊ณผ ๋” ๋น ๋ฅธ ์‘๋‹ต ์†๋„๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

(์ฐธ๊ณ ) Whisper๋Š” OpenAI์—์„œ ๊ฐœ๋ฐœํ•œ ๋ชจ๋ธ๋กœ, ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•ด ํ›ˆ๋ จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•ฝ 68๋งŒ ์‹œ๊ฐ„ ์ด์ƒ์˜ ์Œ์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•™์Šต๋˜์—ˆ์œผ๋ฉฐ, ์ด ์ค‘ ์•ฝ 2/3๊ฐ€ ์˜์–ด์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ํ•œ๊ตญ์–ด, ์ผ๋ณธ์–ด, ์ค‘๊ตญ์–ด ๋“ฑ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ดˆ๊ธฐ ๋ฒ„์ „ (2022๋…„ 9์›” ์ถœ์‹œ)
  2. Whisper large-v2 (2022๋…„ 12์›”)
  3. Whisper large-v3 (2023๋…„ 11์›”)

GPT-4o-transcribe & GPT-4o-mini-transcribe

GPT-4o-transcribe ๋ชจ๋ธ์€ ์ •ํ™•๋„ ์ค‘์‹ฌ์˜ ๊ณ ์„ฑ๋Šฅ ๋ชจ๋ธ์ด๋ฉฐ, GPT-4o-mini-transcribe๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ชจ๋ธ๋กœ์„œ ๋น„์šฉ๊ณผ ์†๋„ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ชจ๋ธ ๋ชจ๋‘ ์ˆ˜์กฐ ๋‹จ์œ„์˜ ์˜ค๋””์˜ค ํ† ํฐ์œผ๋กœ ํ•™์Šต๋˜์—ˆ์œผ๋ฉฐ, ๊ณ ํ’ˆ์งˆ ๋‹ค๊ตญ์–ด ๋ฐ์ดํ„ฐ์…‹์„ ํ™œ์šฉํ•˜์—ฌ ์–ต์–‘, ์†๋„, ์žก์Œ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ณ€์ˆ˜์— ๊ฐ•์ธํ•œ ํŠน์„ฑ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ mini-transcribe ๋ชจ๋ธ์€ ์†Œํ˜•์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋†’์€ ์ •ํ™•๋„๋ฅผ ์œ ์ง€ํ•˜๋ฉฐ, ์ €์‚ฌ์–‘ ํ™˜๊ฒฝ์ด๋‚˜ ๋ชจ๋ฐ”์ผ ๊ธฐ๊ธฐ ๋“ฑ์—์„œ๋„ ํ™œ์šฉ์ด ์šฉ์ดํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์„ฑ๋Šฅ ๋น„๊ต ๋ฐ ์šฐ์ˆ˜์„ฑ

OpenAI๊ฐ€ ์ง„ํ–‰ํ•œ FLEURS(Few-shot Learning Evaluation of Universal Representations of Speech) ๋ฒค์น˜๋งˆํฌ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ, GPT-4o ๊ณ„์—ด ๋ชจ๋ธ์€ Whisper v-2์™€ v-3๋Š” ๋ฌผ๋ก , Google์˜ Gemini, Meta์˜ Scribe, Anthropic์˜ Nova ๋ชจ๋ธ๋“ค๊ณผ ๋น„๊ตํ•ด๋„ ์ „๋ฐ˜์ ์œผ๋กœ ๋” ๋‚ฎ์€ Word Error Rate(WER)๋ฅผ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค.

  • GPT-4o-transcribe์™€ mini-transcribe๋Š” ์˜์–ด, ์ŠคํŽ˜์ธ์–ด, ์ค‘๊ตญ์–ด, ์ผ๋ณธ์–ด, ํ•œ๊ตญ์–ด, ํžŒ๋””์–ด ๋“ฑ ์ฃผ์š” ์–ธ์–ด ์ „๋ฐ˜์—์„œ ๋‚ฎ์€ WER์„ ๊ธฐ๋กํ•˜๋ฉฐ ๋‹ค๊ตญ์–ด ์ง€์› ๋Šฅ๋ ฅ์—์„œ ๋…๋ณด์ ์ธ ๊ฒฝ์Ÿ๋ ฅ์„ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

Whisper ์‹œ๋ฆฌ์ฆˆ์™€ ๋น„๊ต

ํƒ€์‚ฌ ์ œํ’ˆ๊ณผ ๋น„๊ต

  • WER (Word Error Rate):

    • ๋‚ฎ์„์ˆ˜๋ก ์„ฑ๋Šฅ์ด ์ข‹์€ ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค (์ฆ‰, ์˜ค๋ฅ˜๊ฐ€ ์ ์Œ)
  • ํŒŒ๋ž€์ƒ‰ ๊ณ„์—ด:

    • gpt-4o-transcribe (์ง„ํ•œ ํŒŒ๋ž‘)
    • gpt-4o-mini-transcribe (์ค‘๊ฐ„ ํŒŒ๋ž‘)
  • ํšŒ์ƒ‰ ๊ณ„์—ด (๊ฒฝ์Ÿ์‚ฌ ๋ชจ๋ธ):

    • gemini-2.0-flash (ํšŒ์ƒ‰)
    • scribe-v1 (์ง™์€ ํšŒ์ƒ‰)
    • nova-2 & nova-3 (๋ฐ์€ ํšŒ์ƒ‰)
  • ํŠนํžˆ Whisper-large-v3 ๋ชจ๋ธ๊ณผ ๋น„๊ตํ•  ๋•Œ ์ผ๋ถ€ ์–ธ์–ด์—์„œ๋Š” ์ ˆ๋ฐ˜ ์ดํ•˜์˜ ์˜ค๋ฅ˜์œจ์„ ๊ธฐ๋กํ•˜์˜€์œผ๋ฉฐ, ์ด๋Š” ๋‹ค์–‘ํ•œ ์–ต์–‘๊ณผ ๋น ๋ฅธ ๋ฐœํ™”๋ฅผ ์ธ์‹ํ•˜๋Š” ๋ฐ ํฐ ๊ฐ•์ ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์‹ค์‹œ๊ฐ„ ์ŠคํŠธ๋ฆฌ๋ฐ API ์ง€์›

์ด๋ฒˆ API๋Š” ์‹ค์‹œ๊ฐ„ ์˜ค๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž์˜ ๋ฐœํ™”๊ฐ€ ๋๋‚˜๋Š” ์‹œ์ ์„ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ์ฆ‰์‹œ ํ…์ŠคํŠธ ๋ณ€ํ™˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ณผ์ •์—์„œ ์ง€์—ฐ(latency)์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— OpenAI๋Š” ๋‘ ๊ฐ€์ง€ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ๊ธฐ๋ณธ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์˜ ๋ถ€๋‹ด์„ ์ค„์˜€์Šต๋‹ˆ๋‹ค:

  1. ์žก์Œ ์ œ๊ฑฐ (Noise Cancellation):
  • ๋ณต์žกํ•œ ๋ฐฐ๊ฒฝ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ •์ ์ธ ์ธ์‹ ์„ฑ๋Šฅ ์œ ์ง€
  1. ์˜๋ฏธ ๊ธฐ๋ฐ˜ ์Œ์„ฑ ํ™œ๋™ ๊ฐ์ง€ (Semantic Voice Activity Detection):
  • ์‚ฌ์šฉ์ž์˜ ๋ฐœํ™” ์ข…๋ฃŒ ์‹œ์ ์„ ๋ชจ๋ธ์ด ์Šค์Šค๋กœ ํŒŒ์•…ํ•˜์—ฌ ์ฒ˜๋ฆฌ
  1. ์ƒˆ๋กœ์šด ํ…์ŠคํŠธ-์Œ์„ฑ(TTS) ๋ชจ๋ธ: GPT-4o-mini-TTS

์ด๋ฒˆ์— ํ•จ๊ป˜ ๊ณต๊ฐœ๋œ ํ…์ŠคํŠธ-์Œ์„ฑ ๋ชจ๋ธ GPT-4o-mini-TTS๋Š” ๋‹จ์ˆœํ•œ ํ…์ŠคํŠธ ๋‚ญ๋… ๊ธฐ๋Šฅ์„ ๋„˜์–ด, ๊ฐ์ •๊ณผ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜์—ฌ ์Œ์„ฑ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ง€์‹œ ๊ธฐ๋ฐ˜ ์Œ์„ฑ ํ•ฉ์„ฑ(Instructable Speech Synthesis) ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, "๊ธฐ์šด์ฐฌ ๋ผ๋””์˜ค DJ์ฒ˜๋Ÿผ ๋งํ•˜๊ธฐ" ๋˜๋Š” "์นจ์ฐฉํ•œ ์ƒ๋‹ด์›์ฒ˜๋Ÿผ ๋งํ•˜๊ธฐ"์™€ ๊ฐ™์€ ํ”„๋กฌํ”„ํŠธ(prompt)๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, ๋ชจ๋ธ์€ ํ•ด๋‹น ์ง€์‹œ์–ด์— ๋งž์ถฐ ํ†ค๊ณผ ์–ต์–‘, ๊ฐ์ •์„ ๋ฐ˜์˜ํ•œ ์ž์—ฐ์Šค๋Ÿฌ์šด ์Œ์„ฑ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

OpenAI๋Š” ์ด๋ฅผ โ€œ์–ด๋–ป๊ฒŒ ๋งํ•  ๊ฒƒ์ธ๊ฐ€(How to say)โ€๊นŒ์ง€ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” TTS ๋ชจ๋ธ๋กœ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์‹ค์ œ๋กœ ๋ฐœํ‘œ ๋ฐ๋ชจ์—์„œ๋Š” "๊ฒฉ์ •์ ์ธ ๋ฉ”๋“œ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ", "๋‹ค์ •ํ•œ ์‘์›" ๋“ฑ์˜ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ ์Œ์„ฑ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์žฌ์ƒํ•˜๋ฉฐ ๋ชจ๋ธ์˜ ํ‘œํ˜„๋ ฅ๊ณผ ๋‹ค์–‘์„ฑ์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ์ด TTS ๋ชจ๋ธ์€ ๊ธฐ์กด์ฒ˜๋Ÿผ ๊ณ ์ •๋œ ๋ชฉ์†Œ๋ฆฌ ์Šคํƒ€์ผ์ด ์•„๋‹ˆ๋ผ, ๊ธฐ๋ณธ ์Œ์ƒ‰์— ๋‹ค์–‘ํ•œ ์„ฑ๊ฒฉ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ ๋ง์ธ ์ฆ‰, ๋ชฉ์†Œ๋ฆฌ ์ž์ฒด๋ฅผ ๋ฐ”๊พธ๊ธฐ๋ณด๋‹ค๋Š”, โ€œ๊ฐ™์€ ๋ชฉ์†Œ๋ฆฌ๋ฅผ ๋‹ค์–‘ํ•œ ์„ฑ๊ฒฉ์ด๋‚˜ ๊ฐ์ •์œผ๋กœ ์กฐ์ ˆโ€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋œ ๊ฒƒ์ด ํŠน์ง•์ž…๋‹ˆ๋‹ค.
  • ์ด ๋ฐฉ์‹์€ ํ•˜๋‚˜์˜ ์Œ์„ฑ ์บ๋ฆญํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ๋งฅ๋ฝ์—์„œ ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

ํ˜„์žฌ ์ œ๊ณต๋˜๊ณ  ์žˆ๋Š” Voice ์ข…๋ฅ˜ (๋งํฌ)

ํ™œ์šฉ ์‚ฌ๋ก€:

  • ๊ณ ๊ฐ ์„œ๋น„์Šค: ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ณต๊ฐ, ์œ„๋กœ, ์•ˆ๋‚ด ๋“ฑ์˜ ์ •์„œ ํ‘œํ˜„ ๊ฐ€๋Šฅ
  • ๊ต์œก ์ฝ˜ํ…์ธ : ์นœ์ ˆํ•˜๊ณ  ํฅ๋ฏธ๋กœ์šด ์„ค๋ช… ์Šคํƒ€์ผ ๊ตฌํ˜„
  • ์ฐฝ์ž‘/์Šคํ† ๋ฆฌํ…”๋ง: ์บ๋ฆญํ„ฐ๋ณ„ ๋งํˆฌ ๊ตฌํ˜„์œผ๋กœ ๋ชฐ์ž…๊ฐ ๊ฐ•ํ™”
  • ์Œ์„ฑ ์ฑ—๋ด‡ UX: ์‚ฌ์šฉ์ž ๊ฐ์ •์— ๋งž๋Š” ์‘๋‹ต ์Šคํƒ€์ผ ์ œ๊ณต

OpenAI๋Š” ์ด๋ฅผ ์ฒดํ—˜ํ•ด๋ณผ ์ˆ˜ ์žˆ๋„๋ก openai.fm์ด๋ผ๋Š” ์›น ๋ฐ๋ชจ ์‚ฌ์ดํŠธ๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

https://www.openai.fm/

ํ•ด๋‹น ์‚ฌ์ดํŠธ์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ชฉ์†Œ๋ฆฌ ์Šคํƒ€์ผ์„ ์„ ํƒํ•˜๊ณ , ์ง์ ‘ ํ…์ŠคํŠธ์™€ ๋งํˆฌ๋ฅผ ์ž…๋ ฅํ•ด๋ณด๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์Œ์„ฑ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ openai.fm ๋“ค์–ด๊ฐ€์„œ ์บก์ณํ•œ ํ™”๋ฉด (๋‹ค์Œ๊ณผ ๊ฐ™์ด API ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•จ)

๋˜ํ•œ, Python, JavaScript, curl ๋“ฑ์œผ๋กœ ๋ฐ”๋กœ ํ˜ธ์ถœ ๊ฐ€๋Šฅํ•œ API ์ฝ”๋“œ ์˜ˆ์ œ๋„ ์ œ๊ณต๋˜์–ด, ๊ฐœ๋ฐœ์ž๊ฐ€ ์†์‰ฝ๊ฒŒ ์ž์‹ ์˜ ์•ฑ์ด๋‚˜ ์„œ๋น„์Šค์— ๋ฐ”๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.


  1. ๋ชจ๋ธ์˜ ๊ธฐ์ˆ ์  ํ˜์‹ 

OpenAI๋Š” ์ด๋ฒˆ ์˜ค๋””์˜ค ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•˜๋ฉฐ ์Œ์„ฑ AI์˜ ๊ทผ๋ณธ์ ์ธ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ 3๊ฐ€์ง€์— ์ง‘์ค‘ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  1. Pretraining with authentic audio datasets
  2. Advanced distillation methodologies
  3. Reinforcement learning paradigm

https://openai.com/index/introducing-our-next-generation-audio-models/

1) ์˜ค๋””์˜ค ์ค‘์‹ฌ ๋ฐ์ดํ„ฐ์…‹ ๊ธฐ๋ฐ˜ ๋Œ€๊ทœ๋ชจ ์‚ฌ์ „ ํ•™์Šต

  • ๋‹ค์–‘ํ•œ ์–ต์–‘, ์–ธ์–ด, ํ™˜๊ฒฝ์˜ ์˜ค๋””์˜ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ๋ธ์„ ํ›ˆ๋ จํ•จ์œผ๋กœ์จ, ๋ณด๋‹ค ์ผ๋ฐ˜ํ™”๋œ ์Œ์„ฑ ์ธ์‹ ๋Šฅ๋ ฅ์„ ํ™•๋ณดํ–ˆ์Šต๋‹ˆ๋‹ค.

2) ์ฒจ๋‹จ Distillation ๊ธฐ๋ฒ•

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

3) ๊ฐ•ํ™” ํ•™์Šต ์ ์šฉ

  • RL(Reinforcement Learning) ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ๋ชจ๋ธ์ด ์˜ค๋ฅ˜๋ฅผ ์ค„์ด๊ณ  ์‹ค์ œ ์‚ฌ์šฉ์ž ๋ฐœํ™”์— ๋” ๋ฏผ๊ฐํ•˜๊ฒŒ ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠœ๋‹๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  1. Agents SDK๋ฅผ ํ†ตํ•œ ์Œ์„ฑ ์—์ด์ „ํŠธ ๊ตฌํ˜„

OpenAI๋Š” ๊ธฐ์กด ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋ฅผ ์Œ์„ฑ ์ž…๋ ฅ๊ณผ ์Œ์„ฑ ์‘๋‹ต์ด ๊ฐ€๋Šฅํ•œ Voice Agent๋กœ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋„๋ก Agents SDK์— ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฐ๋ชจ์—์„œ๋Š” ์ง€๋‚œ์ฃผ ๊ณต๊ฐœ๋œ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๊ณ ๊ฐ์ง€์› ์—์ด์ „ํŠธ๋ฅผ ๋ถˆ๊ณผ 9์ค„์˜ ์ฝ”๋“œ ์ˆ˜์ •๋งŒ์œผ๋กœ ์Œ์„ฑ ๊ธฐ๋ฐ˜ ์—์ด์ „ํŠธ๋กœ ํ™•์žฅํ•˜๋Š” ๊ณผ์ •์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

๐ŸŽฌ ๋ฐ๋ชจ ์‹œ๋‚˜๋ฆฌ์˜ค: ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ โ†’ ์Œ์„ฑ ์—์ด์ „ํŠธ๋กœ ํ™•์žฅ

๋ฐ๋ชจ์—์„œ ์‚ฌ์šฉ๋œ ์˜ˆ์‹œ๋Š” ์‚ฌ์šฉ์ž์˜ ์ฃผ๋ฌธ ๋‚ด์—ญ์„ ํ™•์ธํ•ด์ฃผ๋Š” ๊ณ ๊ฐ์ง€์› ์—์ด์ „ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ์›๋ž˜๋Š” ํ…์ŠคํŠธ ์ž…๋ ฅ์„ ๋ฐ›๊ณ , ์ฃผ๋ฌธ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์˜€์ง€๋งŒ, ์—ฌ๊ธฐ์— ์Œ์„ฑ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋‹จ๊ณ„๊ฐ€ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿงฉ ํ•ต์‹ฌ ๋ณ€๊ฒฝ 1: WebSocket ๊ธฐ๋ฐ˜ ์˜ค๋””์˜ค ์ฒ˜๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€

UI์—์„œ ์Œ์„ฑ ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด, ๋ฐฑ์—”๋“œ์—์„œ๋Š” WebSocket์„ ํ†ตํ•ด ์˜ค๋””์˜ค ์ฒญํฌ(audio chunks)๋ฅผ ์ˆ˜์‹ ํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค:

  • server.py์˜ websocket_endpoint() ํ•จ์ˆ˜ ์•ˆ์—์„œ ์Œ์„ฑ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋กœ์ง์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1. ์˜ค๋””์˜ค ์ฒญํฌ ์ˆ˜์‹ 
elif is_new_audio_chunk(message):
    audio_buffer.append(extract_audio_chunk(message))  # ์ฒญํฌ๋ฅผ ๋ฒ„ํผ์— ์ €์žฅ

# 2. ์˜ค๋””์˜ค ์ž…๋ ฅ์ด ์™„๋ฃŒ๋˜์—ˆ์„ ๋•Œ ์ฒ˜๋ฆฌ
elif is_audio_comp(message):
    audio_input = concat_audio_chunks(audio_buffer)  # ์ฒญํฌ ํ•ฉ์น˜๊ธฐ

    # 3. voice_pipeline์— ์˜ค๋””์˜ค ์ „๋‹ฌ โ†’ ํ…์ŠคํŠธ ์ฒ˜๋ฆฌ โ†’ ์Œ์„ฑ ์‘๋‹ต ์ƒ์„ฑ
    output = await voice_pipeline.run(audio_input)

    # 4. ์‘๋‹ต ์˜ค๋””์˜ค ์ด๋ฒคํŠธ๋ฅผ UI๋กœ ์ŠคํŠธ๋ฆฌ๋ฐ
    async for event in output.stream():
        await connection.send_audio_chunk(event)

    # 5. ๋ฒ„ํผ ์ดˆ๊ธฐํ™”
    audio_buffer = []
  • ์ด ๊ตฌ์กฐ ๋•๋ถ„์—, ํด๋ผ์ด์–ธํŠธ๋Š” ์Œ์„ฑ์„ ๋…น์Œํ•ด์„œ ์ „์†กํ•˜๊ณ , ์„œ๋ฒ„๋Š” ์ด๋ฅผ ๋ถ„์„ ํ›„ ์Œ์„ฑ์œผ๋กœ ๋‹ค์‹œ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿงฉ ํ•ต์‹ฌ ๋ณ€๊ฒฝ 2: Voice Pipeline ์ ์šฉ

  • Voice Pipeline์ด๋ผ๋Š” ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ธฐ์กด ํ…์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์•ž๋’ค์— STT/TTS๋ฅผ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐ

์Œ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ƒˆ๋กญ๊ฒŒ ๋„์ž…๋œ voice_pipeline ์ด ๋ฐ”๋กœ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

  • ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์Œ์„ฑ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ๊นŒ์ง€ ํ™•์žฅํ•˜๋ ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด VoicePipeline์„ ํ†ตํ•ด ๊ธฐ์กด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๊ฐ์‹ธ์ค๋‹ˆ๋‹ค.
1
2
3
4
5
# ๊ธฐ์กด ํ…์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ
workflow = build_workflow(...)

# voice_pipeline์œผ๋กœ ๊ฐ์‹ธ์„œ ์Œ์„ฑ ์ง€์› ์ถ”๊ฐ€
voice_pipeline = VoicePipeline(workflow=workflow)

์ด๋ ‡๊ฒŒ ๊ฐ์‹ธ์ค€ voice_pipeline ๊ฐ์ฒด๋Š” ์ž๋™์œผ๋กœ ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค:

  1. ์‚ฌ์šฉ์ž์˜ ์˜ค๋””์˜ค ์ž…๋ ฅ โ†’ STT ๋ณ€ํ™˜ (gpt-4o-transcribe)
  2. ํ…์ŠคํŠธ ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰ โ†’ GPT-4o ๊ธฐ๋ฐ˜ ์‘๋‹ต ์ƒ์„ฑ
  3. ์ƒ์„ฑ๋œ ํ…์ŠคํŠธ ์‘๋‹ต โ†’ ์Œ์„ฑ ๋ณ€ํ™˜ (gpt-4o-mini-tts)

๐Ÿ”ง ์ „์ฒด ํ๋ฆ„ ์š”์•ฝ

1
2
3
4
5
[์‚ฌ์šฉ์ž ์Œ์„ฑ] โ†’ [์ฒญํฌ ์ˆ˜์‹  ๋ฐ ๋ฒ„ํผ๋ง] 
โ†’ [์™„๋ฃŒ๋œ ์˜ค๋””์˜ค โ†’ ํ…์ŠคํŠธ ๋ณ€ํ™˜] 
โ†’ [LLM ์›Œํฌํ”Œ๋กœ์šฐ ์‹คํ–‰] 
โ†’ [์‘๋‹ต ํ…์ŠคํŠธ โ†’ ์Œ์„ฑ ๋ณ€ํ™˜] 
โ†’ [ํด๋ผ์ด์–ธํŠธ๋กœ ์Œ์„ฑ ์ŠคํŠธ๋ฆฌ๋ฐ]

์Œ์„ฑ์œผ๋กœ ์ฑ—๋ด‡๊ณผ ๋Œ€ํ™”์ค‘ ใ„ทใ„ท


๐Ÿ‘๏ธ ๋””๋ฒ„๊น… & ํ™•์ธ: Tracing UI

Voice Agent๋ฅผ ๊ตฌ์ถ•ํ•˜๋ฉด์„œ โ€œ์ •ํ™•ํžˆ ์–ด๋–ค ์Œ์„ฑ์„ ์ธ์‹ํ–ˆ๊ณ , ์–ด๋–ค ์‘๋‹ต์„ ์ƒ์„ฑํ–ˆ๋Š”์ง€โ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ์œ„ํ•ด OpenAI๋Š” Tracing UI๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • Tracing UI๋ฅผ ํ†ตํ•ด ์—์ด์ „ํŠธ์˜ ๋™์ž‘ ํ๋ฆ„, ์Œ์„ฑ ์ž…๋ ฅ, ์ฒ˜๋ฆฌ ๋‹จ๊ณ„, ์˜ค๋ฅ˜ ๋ฐœ์ƒ ๋“ฑ์„ ์‹œ๊ฐ์ ์œผ๋กœ ๋ถ„์„ ๊ฐ€๋Šฅ

    • ์Œ์„ฑ ์ž…๋ ฅ ๋‚ด์šฉ (์žฌ์ƒ ๊ฐ€๋Šฅ)
    • STT ๊ฒฐ๊ณผ ํ…์ŠคํŠธ
    • LLM ํ˜ธ์ถœ ๋‚ด์—ญ ๋ฐ ์‚ฌ์šฉ๋œ ํˆด
    • ์ƒ์„ฑ๋œ ํ…์ŠคํŠธ ์‘๋‹ต
    • TTS ์Œ์„ฑ ์ถœ๋ ฅ
    • ์ „์ฒด ์ฒ˜๋ฆฌ ์‹œ๊ฐ„ ๋ฐ ์˜ค๋ฅ˜ ๋กœ๊ทธ
  • ์œ„์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด, ์Œ์„ฑ ๊ธฐ๋ฐ˜ UX์˜ ๋””๋ฒ„๊น…๊ณผ ํ…Œ์ŠคํŠธ๊ฐ€ ๋งค์šฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

โœ… ์ •๋ฆฌ

  • ์ด์ฒ˜๋Ÿผ Agents SDK์˜ ์ƒˆ๋กœ์šด ์Œ์„ฑ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜๋ฉด,
    • ๊ธฐ์กด ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ LLM ์„œ๋น„์Šค์— ๋ถˆ๊ณผ ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋กœ ์Œ์„ฑ ์ž…์ถœ๋ ฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๊ณ ,
    • ๋ณต์žกํ•œ ์Œ์„ฑ ์ฒ˜๋ฆฌ ๋กœ์ง์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๊ณ ๋„,
    • ์‹ค์‹œ๊ฐ„ ์Œ์„ฑ ์—์ด์ „ํŠธ ์ˆ˜์ค€์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์†์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐœํ‘œ ์†Œ๊ฐœ ์‹ ๊ทœ ๊ธฐ๋Šฅ


  1. ํ–ฅํ›„ ๊ณ„ํš ๋ฐ ์ „๋ง

OpenAI๋Š” ์Œ์„ฑ ๋ชจ๋ธ์˜ ์ •ํ™•๋„ ๋ฐ ๋งž์ถคํ˜• ๊ธฐ๋Šฅ ํ™•๋Œ€์— ์ง€์†์ ์ธ ํˆฌ์ž๋ฅผ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

ํŠนํžˆ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ์ˆ  ํ™•์žฅ์„ ๊ณ„ํšํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค:

  • ์‚ฌ์šฉ์ž ์ง€์ • ์Œ์„ฑ(Voice Cloning) ๊ธฐ๋Šฅ์˜ ์•ˆ์ „ํ•œ ๋„์ž… ๋ฐฉ์•ˆ ๊ฒ€ํ† 
  • ๋‹ค๊ตญ์–ด TTS ๋ชจ๋ธ์˜ ์ •๊ตํ™” ๋ฐ ์–ต์–‘ ์ œ์–ด ํ–ฅ์ƒ
  • ๋น„๋””์˜ค ๋“ฑ ๋ฉ€ํ‹ฐ๋ชจ๋‹ฌ ์ž…๋ ฅ/์ถœ๋ ฅ ๊ธฐ๋Šฅ๊ณผ์˜ ํ†ตํ•ฉ์œผ๋กœ ๋”์šฑ ํ’๋ถ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

์ด๋ฒˆ ์˜ค๋””์˜ค ๋ชจ๋ธ์˜ ์ถœ์‹œ๋Š” ๋‹จ์ˆœํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋„˜์–ด, ์Œ์„ฑ์ด๋ผ๋Š” ์ธ๊ฐ„์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ AI ์—์ด์ „ํŠธ์™€ ์—ฐ๊ฒฐํ•˜๋Š” ์ค‘์š”ํ•œ ์ „ํ™˜์ ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

OpenAI์˜ ์ตœ์‹  ์Œ์„ฑ ๋ชจ๋ธ์€ API๋ฅผ ํ†ตํ•ด ๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ™œ์šฉํ•ด ๋”์šฑ ์ธ๊ฐ„ ์นœํ™”์ ์ด๊ณ  ๊ฐ์„ฑ์ ์ธ AI ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ OpenAI๋Š” ์ด ๋ชจ๋ธ์„ ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•Œ๋ฆฌ๊ณ , ์ฐฝ์˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ ๋„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต์‹ ๋ฐ๋ชจ ์‚ฌ์ดํŠธ์ธ openai.fm์—์„œ TTS ์ฝ˜ํ…Œ์ŠคํŠธ ์ด๋ฒคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. (๋งˆ๊ฐ์ผ: ํ˜„์ง€์‹œ๊ฐ„ ๊ธฐ์ค€ 2025๋…„ 3์›” 21์ผ, ๊ธˆ์š”์ผ)

์‚ฌ์šฉ์ž๋“ค์€ ๋‹ค์–‘ํ•œ ์Œ์„ฑ ์Šคํƒ€์ผ์„ ์‹คํ—˜ํ•ด๋ณด๊ณ , ๊ฐ€์žฅ ์žฌ๋ฏธ์žˆ๊ณ  ์ฐฝ์˜์ ์ธ ์Œ์„ฑ ์‘๋‹ต์„ ์ œ์ถœํ•˜์—ฌ OpenAI ๋กœ๊ณ ๊ฐ€ ์ƒˆ๊ฒจ์ง„ ํŠน๋ณ„ ์ œ์ž‘ ํ•œ์ •ํŒ ์˜ค๋””์˜ค ๊ธฐ๊ธฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์™€โ€ฆ ์ €๊ฑด ์ข€ ํƒ๋‚œ๋‹ค ใ…‹ใ…‹ใ…‹

์ด์™€ ๊ฐ™์€ ํ™œ๋™์€ AI ์Œ์„ฑ ๊ธฐ์ˆ ์ด ๋‹จ์ˆœํ•œ ๊ธฐ๋Šฅ์„ ๋„˜์–ด, ์ผ์ƒ๊ณผ ์ฐฝ์ž‘์˜ ์˜์—ญ์œผ๋กœ ํ™•์žฅ๋˜๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ฃผ๋Š” ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋„ ์žฌ๋ฐŒ๊ฒŒ ์ž˜ ๋ดค๋Š”๋ฐ์š”! ๊ณผ์—ฐ ๋‹จ์ˆœํžˆ whisper๋ณด๋‹ค ์ข‹์€ stt ๋ชจ๋“ˆ์—์„œ ๋๋‚ ์ง€ ์•„๋‹˜ ์žฌ๋ฐŒ๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๋” ๋‚˜์˜ฌ์ง€ ๊ถ๊ธˆํ•˜๊ตฐ์š”!!๐Ÿค”

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)



-->