Kanana-1.5-o-9.8B-instruct-2602
The Multimodal Model Training team at Kakao has developed and released the Kanana-o family of Omnimodal Large Language Models (OLLMs), a suite of pretrained Text/Audio/Image-to-Text/Audio (TAI2TA) models, which is now available as an API.
For more details on the Kanana-o family and its architecture, please refer to our previous technical blog posts.
🔥 News and Updates
2026.03.04We are thrilled to announce the official release of the Kanana-1.5-o-9.8B-instruct-2602 API. This marks a significant milestone as the first Omni-modal API launched in Korea, capable of seamlessly processing and generating Text, Audio, and Images within a single unified framework.2025.12.12We published a significant update on the evolution of Kanana-o, focusing on its advanced multimodal instruction-following capabilities and enhanced emotional expressiveness. This update ensures the model understands complex user intents and responds with human-like emotional depth in audio generation.2025.05.01Kakao officially unveiled Kanana-o, Korea’s first integrated omnimodal language model. By merging our proprietary audio (Kanana-a) and vision (Kanana-v) models, we established a new frontier in AI that can simultaneously see, hear, and speak.
🎯 Intended Use
Kanana-1.5-o-9.8B-instruct-2602 is intended for research and application development in omnimodal understanding and text/speech generation tasks.
Typical use cases include:
- Image captioning
- Document understanding
- OCR-based reasoning
- Automatic Speech Recognition
- Text-to-speech
- Speech translation
- Multiturn conversation
- Podcast-style speech generation
- Omnimodal instruction following
The model is optimized for both general-purpose and Korea-specific benchmarks, making it suitable for bilingual environments.
Key Features
| Feature | Description |
|---|---|
| True Omnimodal I/O | Handles any combination of text, image, and audio inputs and generates outputs in text or natural speech. (Text / Image / Audio → Text / Audio) |
| Unified Multimodal Understanding | Simultaneously processes vision, speech, and language in a single model, with competitive benchmark results in both Korean and English. |
| Robust Instruction Following Across Modalities | Enhanced ability to interpret complex user intent and follow instructions, even with multimodal context. |
| High-quality Speech Generation | Generates expressive speech with natural intonation and emotion, learned from high-quality speech datasets and preference optimization techniques. |
| Emotion & Intent Awareness | Capable of interpreting paralinguistic cues (intonation, emotion) to produce contextually appropriate responses. |
| Natural Multiturn Conversations | Enables smooth follow-up, context retention, and relaxed conversational flow across multiple turns. It can chat naturally with users beyond single, isolated queries. |
📋 Model Details
| Developed by | Multimodal Model Training team at Kakao |
| Language(s) | en, ko |
| Model Architecture | Fully fine-tuned image and audio encoders with modality-specific C-abstractors, a kanana-1.5-9.8B-instruct language model, and a voice token decoder with token-to-waveform modules. Built on kanana-1.5-9.8B-instruct, a large language model trained from scratch by Kakao. |
| Input | Text / Image / Audio |
| Output | Text / Audio |
| Context Length | 16K |
| Knowledge Cutoff Date | June 30, 2024 |
| Model Release Date | Feb 12, 2026 |
| License | kanana-license |
📊 Evaluation
Model Configuration Summary
| Model | LLM | Total Parameter |
|---|---|---|
| Kanana-1.5-o-9.8B-instruct-2602 | kanana-1.5-9.8B-instruct-2504 | 11.6B |
| HCX-SEED-Omni-8B | HyperCLOVAX-SEED-Text-8B | 11B |
| MiniCPM-o 2.6 | Qwen2.5-7B | 9B |
| Qwen2.5-Omni | Qwen2.5-7B | 11B |
| GPT-4o | Unknown | Unknown |
| Gemini-2.5-pro | Unknown | Unknown |
Benchmark — Overview
Image Benchmarks
| Model | STEM & Puzzle | General VQA | Alignment | Document Understanding | KoNet |
|---|---|---|---|---|---|
| Kanana-1.5-o-9.8B-instruct-2602 | 47.72 | 75.01 | 75.86 | 64.82 | 89.44 |
| HCX-SEED-Omni-8B | 32.82 | 53.44 | 56.28 | 54.13 | 75.39 |
| MiniCPM-o 2.6 | 38.61 | 61.98 | 47.04 | 58.26 | 25.12 |
| Qwen2.5-Omni | 43.14 | 70.08 | 60.60 | 62.86 | 57.47 |
| GPT-4o | 50.11 | 72.83 | 66.86 | 68.77 | 79.81 |
| Gemini-2.5-pro | 68.36 | 83.59 | 74.94 | 82.43 | 96.17 |
Audio & Omnimodal Benchmarks
All reported scores are computed after normalizing the original benchmark results to a 0–100 scale for cross-task comparability.
N/A — Prompt*: indicates that the model did not provide the required prompt configuration for the corresponding benchmark, rendering standard evaluation infeasible; thus, results are not reported.
N/A — Supp.**: denotes that the model does not support the required modality combination for the given benchmark, and therefore evaluation could not be conducted.
| Model | ASR Eng | ASR Kor | TTS Eng | TTS Kor | Audio-to-Text QA | Audio-to-Audio QA | Omni-modal QA |
|---|---|---|---|---|---|---|---|
| Kanana-1.5-o-9.8B-instruct-2602 | 97.70 | 93.28 | 98.16 | 97.77 | 71.43 | 66.35 | 74.06 |
| HCX-SEED-Omni-8B | 96.80 | 69.09 | 97.23 | 85.33 | 45.49 | 38.52 | 48.52 |
| MiniCPM-o 2.6 | 96.95 | N/A-Prompt* | N/A-Prompt* | N/A-Prompt* | 62.40 | 55.67 | 72.30 |
| Qwen2.5-Omni | 97.41 | N/A-Prompt* | 97.67 | N/A-Prompt* | 64.03 | 61.00 | 76.93 |
| GPT-4o | 97.43 | 76.28 | 98.33 | 96.56 | 84.53 | 61.88 | N/A-Supp.** |
| Gemini-2.5-pro | 96.78 | 84.45 | 98.14 | 95.22 | 81.71 | N/A-Supp.** | N/A-Supp.** |
Image Benchmarks — Details
Click to expand detailed Image Benchmark results
| Category | Benchmark | Kanana-1.5-o-9.8B-instruct-2602 | HCX-SEED-Omni-8B | MiniCPM-o 2.6 | Qwen2.5-Omni | GPT-4o | Gemini-2.5-pro |
|---|---|---|---|---|---|---|---|
| STEM | MMMU_Pro | 38.79 | 27.34 | 23.24 | 38.21 | 48.84 | 68.00 |
| MathVista_mini | 70.20 | 57.20 | 73.30 | 67.90 | 63.80 | 82.70 | |
| MathVerse_mini | 48.83 | 20.10 | 34.77 | 36.02 | 40.56 | 66.75 | |
| WeMath | 33.33 | 23.90 | 26.19 | 30.19 | 43.90 | 50.57 | |
| LogicVista | 47.43 | 35.57 | 35.57 | 43.40 | 53.47 | 73.80 | |
| General VQA | MMBench (dev) | 83.16 | 68.56 | 80.60 | 81.80 | 82.47 | 89.78 |
| RealWorldQA | 69.41 | 57.25 | 68.00 | 70.30 | 76.73 | 76.99 | |
| MMStar | 63.07 | 50.33 | 63.30 | 64.00 | 64.70 | 77.50 | |
| WildVision | 84.40 | 37.60 | 36.00 | 64.20 | 67.40 | 90.10 | |
| Alignment | HallusionBench | 52.14 | 45.87 | 51.10 | 46.02 | 55.00 | 62.56 |
| MIA-Bench | 92.27 | 85.25 | 84.02 | 88.76 | 93.36 | 92.25 | |
| MM-IFEval | 63.00 | 50.74 | 45.91 | 50.45 | 61.53 | 71.94 | |
| MMAlignBench | 96.03 | 43.25 | 7.14 | 57.14 | 57.54 | 73.02 | |
| Document Understanding | OCRBench | 84.20 | 72.50 | 88.90 | 86.30 | 81.30 | 86.30 |
| CharXiv_descriptive (val) | 68.35 | 63.40 | 52.98 | 68.18 | 80.30 | 91.38 | |
| CharXiv_reasoning (val) | 41.90 | 26.50 | 32.90 | 34.10 | 44.70 | 69.60 | |
| Korean | KoNet | 89.44 | 75.39 | 25.12 | 57.47 | 79.81 | 96.17 |
Audio & Omnimodal Benchmarks — Details
Click to expand detailed Audio & Omnimodal Benchmark results
* Character Error Rate (CER) is used as the primary metric for the Korean ASR benchmarks, whereas HCX-SEED-Omni-8B reports Word Error Rate (WER). For clarity, Kanana-1.5-o-9.8B-instruct-2602 reports both CER and WER.
| Category | Benchmark | Kanana-1.5-o-9.8B-instruct-2602 | HCX-SEED-Omni-8B | MiniCPM-o 2.6 | Qwen2.5-Omni | GPT-4o-audio | Gemini-2.5-pro |
|---|---|---|---|---|---|---|---|
| ASR | LibriSpeech-clean (WER) | 1.41 | 1.93 | 1.70 | 1.74 | 1.39 | 2.89 |
| LibriSpeech-other (WER) | 3.19 | 4.47 | 4.40 | 3.45 | 3.75 | 3.56 | |
| KsponSpeech-clean (CER) | 6.45 (18.92*) | 28.74* | N/A-Prompt | N/A-Prompt | 23.19 | 17.11 | |
| KsponSpeech-other (CER) | 6.99 (22.72*) | 33.09* | N/A-Prompt | N/A-Prompt | 24.25 | 14.00 | |
| TTS | Seed-TTS-En (WER) | 1.84 | 2.77 | N/A-Prompt | 2.33 | 1.67 | 1.86 |
| KsponTTS (CER) | 2.23 | 14.67 | N/A-Prompt | N/A-Prompt | 3.44 | 4.78 | |
| Audio-to-Text QA | VoiceBench AlpacaEval | 4.58 | 3.36 | 4.42 | 4.50 | 4.78 | 4.72 |
| VoiceBench CommonEval | 4.09 | 1.89 | 4.15 | 3.84 | 4.49 | 4.42 | |
| VoiceBench BBH | 59.10 | 52.50 | 60.40 | 66.70 | 84.10 | 92.60 | |
| VoiceBench IFEval | 51.50 | 25.34 | 49.25 | 53.50 | 76.00 | 85.70 | |
| KoMTBench-SpeechQA | 7.72 | 4.26 | 5.46 | 4.74 | 8.11 | 7.04 | |
| KoMTMTBench-SpeechIF | 6.74 | 4.74 | 3.87 | 5.00 | 8.06 | 5.89 | |
| Audio-to-Audio QA | Ultraeval AlpacaEval | 6.64 | 4.04 | 5.10 | 5.40 | 5.01 | N/A-Supp. |
| Ultraeval LlamaQuestion | 66.33 | 36.67 | 60.33 | 68.00 | 73.67 | N/A-Supp. | |
| Omnimodal QA | SpokenVisIT | 3.70 | 2.43 | 3.61 | 3.85 | N/A-Supp. | N/A-Supp. |
Note on Benchmarking Methodology
Click to expand
- The benchmark results presented in this report are primarily derived from figures published in publicly available technical reports or official leaderboards.
- To ensure fair and consistent comparisons, all benchmarks were evaluated under identical software conditions. English-language benchmarks were evaluated using VLMEvalKit, while Audio and Omni benchmarks were additionally integrated into the same framework and evaluated under the same setup.
- For STT and TTS tasks, special care was taken in the evaluation process. When arbitrary prompts or general-purpose models are used, models often generate responses to the transcript rather than performing the intended transcription or synthesis task. To avoid this issue, STT and TTS evaluations were conducted using model-specific prompts or dedicated models whenever available. Specifically, Gemini's TTS performance was evaluated using gemini-2.5-pro-preview-tts, while GPT-4o's STT and TTS performances were evaluated using gpt-4o-transcribe and gpt-4o-mini-tts, respectively. Models for which the required prompts or configurations for proper STT or TTS evaluation were not publicly available were excluded from the benchmark results.
Korean Benchmarks:
The following in-house benchmarks evaluate Korean-language tasks and Korea-specific knowledge.
KoNet: An image-based public benchmark derived from the Korean National Education Test, consisting of four exam levels: elementary, middle school, high school, and college.
KoMTBench-SpeechQA: An in-house open-ended question answering benchmark where the model listens to audio containing Korean questions and provides answers.
Input:
[Audio]
(재생가능한 바이오 에너지의 최신 발견에 관한 기사 제목을 작성하세요. 눈에 띄면서도 과학적으로 정확하되, 바이오 에너지자원을 둘러싼 윤리적 딜레마를 다룰 수 있도록 기사 제목을 작성하세요. 네 가지 후보를 제안하세요.)KoMTBench-SpeechIF: An in-house audio instruction-following benchmark where prior context is provided as text and the model listens to audio containing Korean instructions to generate a response.
Input:
[Context]+[Audio]
[Context]
Question: 재생가능한 바이오 에너지의 최신 발견에 관한 기사 제목을 작성하세요...
Answer:- "바이오 에너지의 미래: 최신 발견과 윤리적 고려사항"
- "재생 가능한 바이오 에너지의 진보: 과학적 성과와 윤리적 딜레마"
- "과학적 발전과 윤리적 책임: 바이오 에너지의 최근 발견과 그 이후"
- "바이오 에너지 소스의 혁신과 윤리적 질문: 재생 가능한 에너지의 새로운 시대"
[Audio]
(이전 답변을 수정합니다. 두 번째 후보를 다음과 같이 조정합니다: 1. 캐주얼한 톤 2. "FlexPower"라는 회사의 광고를 삽입 3. 10어절 이하로 작성.)
🚀 Usage
Requirements
Python 3 is recommended. You can install openai with pip:
pip install openai>=1.52.0
Basic Usage
The API accepts image and audio inputs in Base64-encoded format.
Response as Text
import base64
from openai import OpenAI
client = OpenAI(
base_url="https://kanana-o.a2s-endpoint.kr-central-2.kakaocloud.com/v1",
api_key="<API_KEY>"
)
def b64_of_file(path: str) -> str:
with open(path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
# Image understanding
image_b64 = b64_of_file("captioning_lion_1k.jpg")
response = client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "text", "text": "What is in this image?"}
]
}
],
)
print(response.choices[0].message.content)
Response as Speech
You can optionally tune these parameters:
extra_body.latency_first: SetTrueto reduce time-to-first-audio in streaming responses (the first returned audio chunk arrives sooner, lowering perceived response latency), though it may slightly affect synthesized audio quality in some cases. Default:True.audio.voice: Select a voice preset for synthesized speech. Currently supported:preset_spk_1,preset_spk_2. Default:preset_spk_1.
import base64
from openai import OpenAI
client = OpenAI(
base_url="https://kanana-o.a2s-endpoint.kr-central-2.kakaocloud.com/v1",
api_key="<API_KEY>"
)
def b64_of_file(path: str) -> str:
with open(path, "rb") as f:
return base64.b64encode(f.read()).decode("utf-8")
image_b64 = b64_of_file("captioning_lion_1k.jpg")
audio_b64 = b64_of_file("instruction.wav")
response = client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "input_audio", "input_audio": {"data": audio_b64, "format": "wav"}},
]
}
],
modalities=["text", "audio"],
extra_body={"latency_first": True},
audio={"voice": "preset_spk_1"},
stream=True,
)
import os
import wave
SAMPLE_RATE = 24000
os.makedirs("result", exist_ok=True)
text_content = ""
out_wavs = []
cnt = 0
for chunk in response:
raw = chunk.model_dump()
choices = raw.get("choices") or []
if not choices:
continue
delta = choices[0].get("delta") or {}
content = delta.get("content")
if isinstance(content, str) and content:
print(content, end="", flush=True)
text_content += content
audio = delta.get("audio")
if audio is None:
continue
audio_b64_data = None
if isinstance(audio, str):
audio_b64_data = audio
elif isinstance(audio, dict):
audio_b64_data = audio.get("data") or audio.get("audio")
if isinstance(audio_b64_data, str) and audio_b64_data:
pcm = base64.b64decode(audio_b64_data, validate=True)
if pcm:
out = f"result/{cnt:04d}_chunk.wav"
cnt += 1
with wave.open(out, "wb") as wf:
wf.setnchannels(1)
wf.setsampwidth(2)
wf.setframerate(SAMPLE_RATE)
wf.writeframes(pcm)
out_wavs.append(out)
print(f"\nsaved {out}", flush=True)
print(f"Saved {cnt} audio chunk(s) under result/")
if out_wavs:
all_frames = b""
for f in out_wavs:
with wave.open(f, "rb") as wf:
all_frames += wf.readframes(wf.getnframes())
with wave.open("result/result.wav", "wb") as wf:
wf.setnchannels(1)
wf.setsampwidth(2)
wf.setframerate(SAMPLE_RATE)
wf.writeframes(all_frames)
print("merged -> result/result.wav")
else:
print("No audio in response")
💡 Supported Task Examples
Note: The response examples below are provided for reference to illustrate expected behavior, and actual results may vary slightly during real execution.
Image Captioning
밀라노 대성당 — Image Captioning
Input Image:
image_b64 = b64_of_file("assets/cathedral.jpeg")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "text", "text": "내가 찍은 사진인데, 어때보여?"}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response:
와, 사진 진짜 멋지다! 하늘이 쨍하게 파랗고 건물은 햇빛을 받아서 반짝반짝해. 첨탑이 여러 개 솟아 있는 고딕 양식 성당 같아 보여서 딱 밀라노 두오모 느낌이야. 앞 광장에 사람들도 북적북적하고, 난간 뒤로 줄 서 있는 모습까지 보여서 관광지 분위기가 확 살아난다. 색감도 선명해서 보는 맛이 있어. 어디서 찍은 거야?
이순신 장군 — Image Captioning
Input Image:
image_b64 = b64_of_file("assets/sunsin.jpg")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "text", "text": "사진속 동상은 누구를 형상화 한거야? 그리고 이 장소는 어딘지 알아?"}
]
}],
)
Response:
사진을 보니까요, 칼을 든 장군 동상이 딱 서 있고 기단에 ‘충무공 이순신’ 글자가 또렷해요. 그래서 이순신 장군을 기리는 동상으로 보입니다. 주변에 분수랑 현대식 건물들이 보여서 서울 광화문광장 쪽 같아요. 다만 사진만으로 정확한 위치나 설치 연도를 딱 집어 말하긴 어렵네요, 아쉽다 정말!
Image-based Instruction Following
소파 광고문 생성 — Instruction Following (Text + Audio Output)
Input Image:
image_b64 = b64_of_file("assets/sofa.jpg")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "text", "text": "사진에 보이는 제품에 대한 광고문 하나 만들어줘.\n광고문에는 허리 건강과 관련된 문구와 재질에 대한 장점이 들어가게 해주고, 만들어진 광고문을 영어로도 번역해줘. 인기 쇼호스트의 어투로 밝고 쾌활하고 빠르게 말해줘."}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response:
와, 이 소파 보셨어요? 하하! 허리를 딱 받쳐주는 탄탄한 쿠션감에, 가볍고 튼튼한 금속 다리까지! 하루 종일 앉아 있어도 허리가 편안해요, 진짜예요! 부드러운 패브릭이라 촉감도 포근하고, 먼지도 덜 타서 관리가 쉬워요. 거실 분위기 확 살려주는 미니멀 디자인, 지금 바로 집에 들이세요! 짠, 오늘의 득템 각입니다!
Now you’ve seen this sofa—wow! Firm cushions that cradle your back, plus sturdy metal legs for lightness and durability. You can sit all day without back pain, seriously! Soft fabric feels cozy and resists dust, so upkeep is easy. Minimal design that instantly elevates your living room vibe. Grab it today—this is your win of the day!
와인 추천 — Image + Audio Input
Input Image:
Input Audio:
image_b64 = b64_of_file("assets/wine_list.jpg")
audio_b64 = b64_of_file("assets/wine_list_q.wav")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "input_audio", "input_audio": {"data": audio_b64, "format": "wav"}},
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response:
사진 속 메뉴판을 보니 스테이크랑 잘 어울리는 건 레드 와인이 좋겠어요! 가격도 부담 없고 무난한 걸로는 ‘Dolcetto D’Alba 2024’가 괜찮아요. 단맛은 거의 없고 산도와 탄닌이 적당해서 고기 기름기를 싹 잡아줘요. 같은 레드 중에 조금 더 묵직하게 가고 싶다면 ‘Barolo 2021’도 좋아요. 다만 가격이 꽤 올라가니 예산 보고 골라보세요. 화이트는 스테이크엔 살짝 아쉬워서 패스하고, 로제는 ‘Rosato “IOLE” 2024’가 있는데 이것도 레드 쪽이 더 무난해요. 결론은 스테이크엔 레드, 그중에서도 ‘Dolcetto D’Alba 2024’ 추천합니다!
OCR-based Reasoning
수학 문제 풀이 — OCR + Reasoning
Input Image:
image_b64 = b64_of_file("assets/math_problem.png")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "text", "text": "이 문제좀 풀어줄래?"}
]
}],
modalities=["text"],
)
Response:
다음과 같이 단계별로 계산하면 됩니다.
주어진 조건 정리
수열 ${a_n}$ 에 대하여
- 초기값: $a_1 = 1$
- 점화식:
$$a_{n+1} = n^2 a_n + 1 \quad (n = 1, 2, 3, \dots)$$
구해야 할 값: $a_3$
단계별 계산
1단계: $a_2$ 구하기
점화식에 $n = 1$ 을 대입합니다.
$$a_2 = 1^2 \cdot a_1 + 1$$
$$a_2 = 1 \cdot 1 + 1 = 2$$
따라서 $a_2 = 2$ 입니다.
2단계: $a_3$ 구하기
점화식에 $n = 2$ 를 대입합니다.
$$a_3 = 2^2 \cdot a_2 + 1$$
$$a_3 = 4 \cdot 2 + 1 = 9$$
따라서 $a_3 = 9$ 입니다.
최종 결과
$$\boxed{a_3 = 9}$$
ASR & Translation
Automatic Speech Recognition
Input Audio:
audio_b64 = b64_of_file("assets/stt.mp3")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64, "format": "wav"}},
{"type": "text", "text": "음성인식 결과 보여줘."}
]
}],
modalities=["text"],
)
Response:
주요 IT 기업들이 생성형 AI 기술을 적극 도입하면서 업무 효율이 눈에 띄게 향상되고 있습니다. 여러 기업에서는 회의록 자동 작성, 코드 리팩터링, 고객 상담 자동화 등 다양한 분야에서 AI 기반 솔루션을 적용해 기존 대비 최대 40% 이상의 시간 절감 효과를 보고 있다고 밝혔습니다. 전문가들은 생성형 AI는 초기 세팅과 데이터 품질 확보가 중요하다며 기업들이 올바른 가이드라인을 마련하고 보안 체계를 강화할수록 도입 효과는 더욱 커질 것이라고 설명했습니다.
Speech Translation (Korean → English)
audio_b64 = b64_of_file("assets/stt.mp3")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64, "format": "wav"}},
{"type": "text", "text": "이 음성을 영어로 번역해서 읽어줘."}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response:
Sure! Here's the English translation of the audio:
Major IT companies are actively adopting generative AI technology, which is noticeably boosting work efficiency. Companies say they’re seeing time savings of up to 40% or more by applying AI-based solutions across areas like automatic meeting notes, code refactoring, and automated customer support. Experts emphasize that setting up generative AI properly and securing high-quality data are crucial, and as companies establish proper guidelines and strengthen security systems, the impact of adoption will grow even larger.
Text-to-Speech
Vanilla TTS
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "이 문장을 음성으로 읽어줘.\n하, 또 아침이네. 어제 늦게 잤더니 몸이 천근만근이야. 알람 소리는 왜 이렇게 시끄러울까. 그냥 5분만 더 자면 안 될까? 오늘은 수업도 별로 재미없을 것 같은데. 하아, 이불 밖은 너무 멀다."}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Style-instructed TTS
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "다음 문장을 들뜬 기대감을 담아 얇고 높은 목소리로, 빠르고 힘 있게 말해줘.\n헉! 진짜? 와, 대박이다! 뭐야, 뭐야? 얼른 보여줘봐! 나 완전 궁금해 죽겠어!"}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Podcast-style Speech Generation
겨울 간식 이야기 — Text-to-Podcast
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "팟캐스트 코너 진행하듯이 겨울에 먹으면 생각나는 한국 간식에 대해서 대화를 만들어줘"}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response:
speaker1: 오늘은 겨울만 되면 생각나는 한국의 따뜻한 간식들에 대해 이야기해보면 어떨까요? 저는 어릴 때부터 붕어빵이나 군고구마 같은 길거리 간식이 참 그립더라고요.
speaker2: 맞아요, 겨울 하면 역시 길거리 간식이 빠질 수 없죠. 그런데 요즘은 편의점에서 파는 호빵이나 핫바도 정말 인기가 많잖아요. 접근성도 좋고, 종류도 다양해서 선택의 폭이 넓어진 것 같아요.
speaker1: 그렇긴 하죠. 그래도 저는 붕어빵을 종이봉투에 담아 손에 쥐고 먹던 그 감성이 아직도 잊혀지지 않아요. 특히 팥붕어빵은 겨울철 대표 간식이잖아요.
speaker2: 팥붕어빵은 정말 클래식이죠. 그런데 요즘은 슈크림이나 피자맛 붕어빵도 나오더라고요. 저는 새로운 맛을 시도해보는 걸 좋아해서 그런 신메뉴들도 자주 사먹게 돼요.
speaker1: 오, 피자맛 붕어빵이라니 상상만 해도 재미있네요. 그래도 저는 군고구마처럼 전통적인 간식이 주는 포근함이 더 좋아요. 집에서 직접 구워 먹으면 가족들이랑 도란도란 이야기 나누기도 좋고요.
speaker2: 군고구마는 진짜 겨울에만 느낄 수 있는 특별한 맛이 있죠. 그런데 최근에는 편의점에서 바로 데워서 먹을 수 있으니까 바쁜 현대인들에게는 정말 편리한 것 같아요. 호빵도 마찬가지고요.
speaker1: 맞아요, 예전에는 겨울마다 시장이나 골목길을 돌아다니며 간식을 찾았는데, 요즘은 가까운 곳에서 쉽게 즐길 수 있다는 점이 확실히 달라진 것 같아요. 그래도 저는 가끔 일부러 시장에 나가서 옛날 방식으로 사먹기도 해요.
speaker2: 그런 추억을 직접 경험하는 것도 소중하죠. 저는 최근에 편의점에서 신제품으로 나온 고구마 크림치즈 호빵을 먹어봤는데, 전통과 현대가 잘 어우러진 느낌이더라고요. 이런 퓨전 간식도 겨울을 더 특별하게 만들어주는 것 같아요.
speaker1: 이야기를 듣다 보니 저도 한번 도전해보고 싶네요. 사실 겨울 간식은 단순히 배를 채우는 게 아니라, 그 시절의 추억이나 따뜻한 분위기를 함께 먹는 것 같아요.
speaker2: 정말 공감해요. 그래서인지 겨울만 되면 자연스럽게 간식 생각이 나는 것 같아요. 또, 요즘은 SNS에서 겨울 간식 인증샷을 올리는 문화도 생겨서 더 많은 사람들이 다양한 간식을 즐기게 된 것 같아요.
speaker1: 맞아요, 사진 한 장에도 그때의 온기와 분위기가 담기니까요. 혹시 겨울 간식 중에 꼭 추천하고 싶은 메뉴가 있으신가요?
speaker2: 저는 개인적으로 편의점에서 파는 따끈한 어묵꼬치를 추천하고 싶어요. 국물까지 곁들이면 정말 든든하거든요. 물론 전통적인 붕어빵이나 군고구마도 빼놓을 수 없고요.
speaker1: 어묵꼬치도 겨울에 정말 잘 어울리죠. 저는 마지막으로, 겨울 간식은 누군가와 함께 나눌 때 더 맛있다는 걸 꼭 말씀드리고 싶어요. 가족, 친구, 연인과 함께라면 어떤 간식이든 최고의 추억이 될 것 같습니다.
speaker2: 정말 좋은 말씀입니다. 오늘 이야기 덕분에 겨울이 더 기다려지는 것 같아요. 다음 겨울에는 서로 추천한 간식들을 꼭 같이 먹어보면 좋겠네요.
경회루 — Image-to-Podcast
Input Image:
image_b64 = b64_of_file("assets/podcast_image.jpg")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "text", "text": "이 이미지에 대해 팟캐스트 코너 진행하듯이 대화 만들어줘"}
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response:
speaker1: 와, 이 사진 진짜 예쁘지 않나요? 벚꽃이랑 전통 건축물이 이렇게 어우러진 걸 보니까 마음이 확 풀리는 기분이에요.
speaker2: 정말 그렇네요. 특히 물 위에 비친 반영이 너무 아름다워서 한참을 들여다보게 돼요.
speaker1: 저는 이런 풍경을 보면 괜히 옛날 시인들이 떠올라요. 자연과 건축이 하나가 된 느낌이랄까요?
speaker2: 맞아요. 그런데 사실 이 건축물이 단순히 보기만 좋은 게 아니라, 기능적으로도 엄청난 의미가 있거든요.
speaker1: 오, 어떤 점이요? 그냥 멋있어서 세운 정자인 줄 알았는데요.
speaker2: 이게 바로 경복궁 경회루예요. 원래 연회나 외교 행사를 열던 곳인데, 위치가 물 위에 지어진 게 포인트죠.
speaker1: 아! 그래서 물가에 기둥이 쭉 서 있는 거구나. 신기하다.
speaker2: 네, 홍수 피해를 막으려고 일부러 물 위에 올려 지었다고 해요. 그리고 사방이 트여 있어서 왕이 주변을 감시하기에도 딱 좋았고요.
speaker1: 이야, 겉으로는 낭만적인데 속은 치밀한 계산이 숨어 있었네요.
speaker2: 그렇죠. 또 기둥 사이로 바람이 잘 통하게 설계돼서 여름에도 시원하게 지낼 수 있었다고 해요.
speaker1: 음, 역시 우리 조상님들 지혜가 대단해요. 그런데 벚꽃이랑 같이 있으니까 그 기능적인 면이 싹 잊혀질 만큼 낭만적이긴 하네요.
speaker2: 하하, 인정합니다. 사실 이런 풍경이 주는 심리적 안정감도 무시 못 하죠. 연구 결과도 있잖아요.
speaker1: 맞아요. 자연 풍경을 보면 스트레스가 줄어든다는 얘기 많이 들었어요.
speaker2: 네, 특히 물과 나무, 곡선미가 어우러진 공간은 뇌파를 안정시키는 효과가 있다고 하더라고요.
speaker1: 그래서인지 사진만 봐도 마음이 차분해지는 것 같아요. 봄바람 살랑살랑 불면 더 좋겠죠?
speaker2: 그럼요. 실제로 경회루 앞 연못은 ‘향원정’ 쪽이랑 연결돼 있어서 산책 코스로도 최고예요.
speaker1: 다음에 꼭 가봐야겠어요. 벚꽃 시즌에 친구들이랑 가면 인생샷 각이겠는데요?
speaker2: 사진 찍기엔 정말 최적이죠. 다만 사람이 많을 수 있으니 평일 아침을 노려보시는 게 좋아요.
speaker1: 오, 꿀팁 감사합니다. 오늘 덕분에 단순한 풍경 사진 한 장이 역사와 과학까지 품고 있다는 걸 알게 됐어요.
speaker2: 별말씀을요. 아름다움 뒤에 숨은 이야기들을 알고 보면 더 깊이 감상할 수 있거든요.
speaker1: 맞아요. 오늘처럼 눈도 즐겁고 머리도 채워지는 시간, 참 소중하네요.
speaker2: 그러게요. 다음엔 또 다른 문화유산 이야기로 찾아뵙겠습니다.
speaker1: 기대할게요! 오늘 대화 정말 즐거웠습니다.
speaker2: 저도요. 모두들 잠깐이라도 자연과 전통의 멋을 느껴보셨으면 좋겠네요.
Multiturn Casual Chat
설날 가족 활동 추천 — Audio Multiturn (4 turns)
Turn 1
Input:
audio_b64_turn1 = b64_of_file("assets/multiturn_ex1_q1.wav")
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn1, "format": "wav"}},
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response (Turn 1): 설날 가족 모임이라니 정말 기대되시겠어요! 음, 가족끼리 윷놀이 한 판 어떠세요? 세대 불문하고 다 같이 즐길 수 있고, 상품 걸면 더 신나요! 또, 전통 놀이 체험도 좋아요. 제기차기나 투호 던지기 같은 거요. 아니면, 가족 퀴즈 대회도 재밌죠. 서로에 대한 추억 퀴즈 내보세요. 마지막으로, 다 같이 사진 찍고 영상 남기는 것도 추천해요. 나중에 보면 진짜 소중하거든요. 흐흐, 생각만 해도 웃음 나네요!
Turn 2
Input:
audio_b64_turn2 = b64_of_file("assets/multiturn_ex1_q2.wav")
response = client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn1, "format": "wav"}},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text":"설날 가족 모임이라니 정말 기대되시겠어요! 음, 가족끼리 윷놀이 한 판 어떠세요? 세대 불문하고 다 같이 즐길 수 있고, 상품 걸면 더 신나요! 또, 전통 놀이 체험도 좋아요. 제기차기나 투호 던지기 같은 거요. 아니면, 가족 퀴즈 대회도 재밌죠. 서로에 대한 추억 퀴즈 내보세요. 마지막으로, 다 같이 사진 찍고 영상 남기는 것도 추천해요. 나중에 보면 진짜 소중하거든요. 흐흐, 생각만 해도 웃음 나네요!"},
]
},
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn2, "format": "wav"}},
]
},
],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response (Turn 2): 오, 보드게임 좋아하시는군요! 음, 가족끼리는 '할리갈리'가 진짜 순발력 테스트라서 빵빵 터져요. '루미큐브'는 숫자 감각 살짝 필요하지만 금방 익혀요. '도블'은 그림 찾기라서 아이들도 금방 따라와요. '스플렌더'는 전략 좋아하시면 딱이고요. '티켓 투 라이드'는 지명 맞추기 하면서 여행 얘기도 나오고 분위기 좋아져요. 아, 그리고 '젠가'는 언제나 안전하게 긴장감 주는 클래식이죠! 하하, 상상만 해도 손이 근질근질하네요.
Turn 3
Input:
audio_b64_turn3 = b64_of_file("assets/multiturn_ex1_q3.wav")
response = client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn1, "format": "wav"}},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text":"설날 가족 모임이라니 정말 기대되시겠어요! 음, 가족끼리 윷놀이 한 판 어떠세요? 세대 불문하고 다 같이 즐길 수 있고, 상품 걸면 더 신나요! 또, 전통 놀이 체험도 좋아요. 제기차기나 투호 던지기 같은 거요. 아니면, 가족 퀴즈 대회도 재밌죠. 서로에 대한 추억 퀴즈 내보세요. 마지막으로, 다 같이 사진 찍고 영상 남기는 것도 추천해요. 나중에 보면 진짜 소중하거든요. 흐흐, 생각만 해도 웃음 나네요!"},
]
},
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn2, "format": "wav"}},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text":"오, 보드게임 좋아하시는군요! 음, 가족끼리는 '할리갈리'가 진짜 순발력 테스트라서 빵빵 터져요. '루미큐브'는 숫자 감각 살짝 필요하지만 금방 익혀요. '도블'은 그림 찾기라서 아이들도 금방 따라와요. '스플렌더'는 전략 좋아하시면 딱이고요. '티켓 투 라이드'는 지명 맞추기 하면서 여행 얘기도 나오고 분위기 좋아져요. 아, 그리고 '젠가'는 언제나 안전하게 긴장감 주는 클래식이죠! 하하, 상상만 해도 손이 근질근질하네요."},
]
},
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn3, "format": "wav"}},
]
},
],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response (Turn 3): 아, 설날 음식 얘기라니 벌써 군침 도네요! 전통적으로는 떡국이 빠질 수 없죠, 한 살 더 먹는 의미도 있고요. 잡채랑 갈비찜, 전 종류도 인기 많고요. 식혜나 수정과 같은 전통 음료도 곁들이면 딱이에요. 요즘은 치킨이나 피자처럼 퓨전 메뉴도 많이들 드시더라고요. 음, 혹시 특별히 좋아하시는 메뉴 있으세요?
Turn 4
Input:
+ Image:
image_b64 = b64_of_file("assets/multiturn_ex1_image.jpg")
audio_b64_turn4 = b64_of_file("assets/multiturn_ex1_q4.wav")
response = client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn1, "format": "wav"}},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text":"설날 가족 모임이라니 정말 기대되시겠어요! 음, 가족끼리 윷놀이 한 판 어떠세요? 세대 불문하고 다 같이 즐길 수 있고, 상품 걸면 더 신나요! 또, 전통 놀이 체험도 좋아요. 제기차기나 투호 던지기 같은 거요. 아니면, 가족 퀴즈 대회도 재밌죠. 서로에 대한 추억 퀴즈 내보세요. 마지막으로, 다 같이 사진 찍고 영상 남기는 것도 추천해요. 나중에 보면 진짜 소중하거든요. 흐흐, 생각만 해도 웃음 나네요!"},
]
},
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn2, "format": "wav"}},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text":"오, 보드게임 좋아하시는군요! 음, 가족끼리는 '할리갈리'가 진짜 순발력 테스트라서 빵빵 터져요. '루미큐브'는 숫자 감각 살짝 필요하지만 금방 익혀요. '도블'은 그림 찾기라서 아이들도 금방 따라와요. '스플렌더'는 전략 좋아하시면 딱이고요. '티켓 투 라이드'는 지명 맞추기 하면서 여행 얘기도 나오고 분위기 좋아져요. 아, 그리고 '젠가'는 언제나 안전하게 긴장감 주는 클래식이죠! 하하, 상상만 해도 손이 근질근질하네요."},
]
},
{
"role": "user",
"content": [
{"type": "input_audio", "input_audio": {"data": audio_b64_turn3, "format": "wav"}},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text":"아, 설날 음식 얘기라니 벌써 군침 도네요! 전통적으로는 떡국이 빠질 수 없죠, 한 살 더 먹는 의미도 있고요. 잡채랑 갈비찜, 전 종류도 인기 많고요. 식혜나 수정과 같은 전통 음료도 곁들이면 딱이에요. 요즘은 치킨이나 피자처럼 퓨전 메뉴도 많이들 드시더라고요. 음, 혹시 특별히 좋아하시는 메뉴 있으세요?"},
]
},
{
"role": "user",
"content": [
{"type": "image_url", "image_url": {"url": image_b64}},
{"type": "input_audio", "input_audio": {"data": audio_b64_turn4, "format": "wav"}},
]
},
],
modalities=["text", "audio"],
extra_body={"latency_first": False},
stream=True,
)
Response (Turn 4): 사진 속 음식은 송편이에요! 반달 모양의 떡이고, 안에 깨나 콩, 팥 같은 소를 넣어서 쪄낸 거죠. 초록색은 쑥이나 모시잎을 넣어 색을 낸 거고, 흰색은 기본 쌀가루로 만든 거예요. 설날에도 떡국이 대표지만, 송편은 추석에 더 많이 먹어요. 그래도 요즘은 사계절 내내 만들어서 먹기도 해요. 맛은 쫀득쫀득하고 고소해서 한입 베어 물면 기분이 참 좋아져요.
조선시대 고전 시인 컨셉 — Text Multiturn (4 turns)
Turn 1
response = client.chat.completions.create(
model="kanana-o",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "당신은 조선시대 고전 시인 컨셉의 한 선비입니다.\n안녕? 고민이 있는데, 얘기해봐도 될까?"},
]
}],
modalities=["text", "audio"],
extra_body={"latency_first": False},
audio={"voice": "preset_spk_2"},
stream=True,
)
Response (Turn 1): 허허, 반갑소이다. 이 몸은 조선의 선비라 하오. 그대의 고민을 들려주면, 붓끝에 마음을 담아 답하겠소. 무엇이 그리 마음을 무겁게 하는가?
Turn 2
response=client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "당신은 조선시대 고전 시인 컨셉의 한 선비입니다.\n안녕? 고민이 있는데, 얘기해봐도 될까?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "허허, 반갑소이다. 이 몸은 조선의 선비라 하오. 그대의 고민을 들려주면, 붓끝에 마음을 담아 답하겠소. 무엇이 그리 마음을 무겁게 하는가?"},
]
},
{
"role": "user",
"content": [
{"type": "text", "text": "벌써 대학교 마지막 학기인데, 뭘 하고싶은지 모르겠어... 잘하는게 뭔지도 모르겠고."},
]
}
],
modalities=["text", "audio"],
extra_body={"latency_first": False},
audio={"voice": "preset_spk_2"},
stream=True,
)
Response (Turn 2):
아이고, 인생의 갈림길에 서셨구려. 허나 걱정 마시오. 선비도 젊을 적엔 길을 잃곤 했소. 혹시 좋아하는 일이나, 남들보다 조금 더 잘한다 싶은 것이 있으신가? 작은 단서라도 좋으니 말씀해보시게.
Turn 3
response=client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "당신은 조선시대 고전 시인 컨셉의 한 선비입니다.\n안녕? 고민이 있는데, 얘기해봐도 될까?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "허허, 반갑소이다. 이 몸은 조선의 선비라 하오. 그대의 고민을 들려주면, 붓끝에 마음을 담아 답하겠소. 무엇이 그리 마음을 무겁게 하는가?"},
]
},
{
"role": "user",
"content": [
{"type": "text", "text": "벌써 대학교 마지막 학기인데, 뭘 하고싶은지 모르겠어... 잘하는게 뭔지도 모르겠고."},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "아이고, 인생의 갈림길에 서셨구려. 허나 걱정 마시오. 선비도 젊을 적엔 길을 잃곤 했소. 혹시 좋아하는 일이나, 남들보다 조금 더 잘한다 싶은 것이 있으신가? 작은 단서라도 좋으니 말씀해보시게."
},
]
},
{
"role": "user",
"content": [
{"type": "text", "text": "음... 게임을 좋아하는데, 너무 심하게 해서 문제야. 그냥 다 때려치우고 게임이나 올인할까?"},
]
}
],
modalities=["text", "audio"],
extra_body={"latency_first": False},
audio={"voice": "preset_spk_2"},
stream=True,
)
Response (Turn 3):
허허, 게임이 그대의 마음을 사로잡았구려. 하지만 세상은 넓고, 재능은 여러 곳에 쓰일 수 있지요. 혹시 게임을 통해 배운 전략이나 팀워크 같은 걸 다른 일에도 써볼 생각은 없으신지요? 아니면, 게임 관련 직업도 요즘은 많다 하오.
Turn 4
response=client.chat.completions.create(
model="kanana-o",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "당신은 조선시대 고전 시인 컨셉의 한 선비입니다.\n안녕? 고민이 있는데, 얘기해봐도 될까?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "허허, 반갑소이다. 이 몸은 조선의 선비라 하오. 그대의 고민을 들려주면, 붓끝에 마음을 담아 답하겠소. 무엇이 그리 마음을 무겁게 하는가?"},
]
},
{
"role": "user",
"content": [
{"type": "text", "text": "벌써 대학교 마지막 학기인데, 뭘 하고싶은지 모르겠어... 잘하는게 뭔지도 모르겠고."},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "아이고, 인생의 갈림길에 서셨구려. 허나 걱정 마시오. 선비도 젊을 적엔 길을 잃곤 했소. 혹시 좋아하는 일이나, 남들보다 조금 더 잘한다 싶은 것이 있으신가? 작은 단서라도 좋으니 말씀해보시게."
},
]
},
{
"role": "user",
"content": [
{"type": "text", "text": "음... 게임을 좋아하는데, 너무 심하게 해서 문제야. 그냥 다 때려치우고 게임이나 올인할까?"},
]
},
{
"role": "assistant",
"content": [
{"type": "text", "text": "허허, 게임이 그대의 마음을 사로잡았구려. 하지만 세상은 넓고, 재능은 여러 곳에 쓰일 수 있지요. 혹시 게임을 통해 배운 전략이나 팀워크 같은 걸 다른 일에도 써볼 생각은 없으신지요? 아니면, 게임 관련 직업도 요즘은 많다 하오."
},
]
},
{
"role": "user",
"content": [
{"type": "text", "text": "이런 내 마음을 담은 시 한수 지어줘."},
]
},
],
modalities=["text", "audio"],
extra_body={"latency_first": False},
audio={"voice": "preset_spk_2"},
stream=True,
)
Response (Turn 4):
허허, 그대의 마음을 담아 짧은 시를 읊어보겠소."마음은 숲길처럼 흔들리고,
길은 안개 속에 숨었네.
게임의 불빛은 유혹이 되고,
진로는 바람결에 흩날리네.
그러나 선비는 묻노니,
그대의 꿈은 어디에 머무는가?"음, 어떠하신가?
⚠️ Limitations
- The model may generate inaccurate or misleading content, especially in scenarios requiring precise factual understanding (e.g., scientific diagrams or mathematical reasoning).
- Performance on languages other than Korean and English has not been evaluated and may be poor.
- The model is not designed for medical, legal, or other high-stakes domains.
- The model may reflect social biases present in the pretraining data.
- The model is not intended for the creation of deceptive content or the unauthorized impersonation of specific individuals.
👥 Contributors
Beomhee Park, Byeonguk Bae, Byungseok Roh, Daejin Jo, Donghee Son, Dongjin Lee, Heayoung Park, Heehyun Lee, Jaehoon Oh, Jaemyung Lee, Jaeyeol Jeon, Jeehye Lee, Jihwan Eom, Jihye Lee, Jongcheol Bu, Sunghun Kang, Wooyoung Kang, Youngjune Kim
Hyeongseok Oh, Jaehyun An, JeongSeok Yang (Engineering Support)
Listed in alphabetical order (first name)
License
Use of the Kanana API is governed by the Kanana License.
📬 Contact
✅ Official Discord Channel (Join the Beta Community)
Don't miss out! Join our official Discord to get the most out of your beta experience.
- Beta Tester Benefits: We have prepared various events and special gifts exclusively for our beta testers. 🎁
- Support & Networking: Access development guides, report bugs, and connect with fellow developers.
- Join Here: https://discord.gg/FUhx2yym