Contact
Line : comsiam
Contact
Line : comsiam

Gemini Live API คือ API สำหรับสร้าง AI ที่สามารถรับและตอบข้อมูลแบบ Real-Time ผ่านการเชื่อมต่อ WebSocket เหมาะกับระบบที่ต้องการการตอบสนองความหน่วงต่ำ เช่น Voice Assistant, AI Call Center, ผู้ช่วยขายสินค้าแบบพูดคุย, AI ที่มองภาพจากกล้อง หรือระบบสนทนาที่ผู้ใช้สามารถพูดแทรก AI ได้เหมือนคุยกับคนจริง
ต่างจาก Gemini API แบบ Request/Response ทั่วไปที่ทำงานประมาณนี้
User
↓
ส่ง Request
↓
Gemini ประมวลผล
↓
รับ Response
↓
จบ Connection
Live API จะรักษา Session ผ่าน WebSocket
User
↕
Microphone / Camera / Text
↕
WebSocket
↕
Gemini Live API
↕
Audio / Text / Function Calls
Connection จึงสามารถรับและส่งข้อมูลไปพร้อมกันได้อย่างต่อเนื่อง
โมเดลสำคัญสำหรับการสร้าง Voice AI แบบ Real-Time ในปัจจุบันคือ
gemini-3.1-flash-live-preview
ซึ่ง Google ออกแบบเป็นโมเดล Audio-to-Audio ที่มี Latency ต่ำ เหมาะกับ Real-time Dialogue และ Voice-first Application โดยเฉพาะ
Live API เป็น Stateful API ที่ใช้ WebSocket
คำว่า Stateful หมายความว่า Session สามารถรักษาบริบทของการสนทนาระหว่าง Connection ไว้ได้
ตัวอย่าง
User:
สวัสดี ผมชื่อสมชาย
AI:
สวัสดีคุณสมชาย
User:
เมื่อกี้ผมบอกว่าชื่ออะไร
AI:
คุณชื่อสมชาย
ไม่จำเป็นต้องสร้าง Request ใหม่แบบแยกขาดจากกันทุกประโยค
เหมาะกับ Conversation ที่ต้องการความต่อเนื่อง
บทความก่อนหน้าอธิบาย Streaming Response ซึ่งทำงานลักษณะ
User ส่ง Request
↓
Gemini
↓
ข้อความ Chunk 1
↓
Chunk 2
↓
Chunk 3
เป็นการ Stream Response กลับมา
แต่ Live API เป็น
Client
↕
Gemini
แบบ Bidirectional
จึงสามารถส่ง
และรับ
ได้ระหว่าง Session
ใช้
Interactions API + Streaming
มักง่ายกว่า
ใช้
Live API
ใช้
Live API
ใช้
Live API
ใช้
Batch API
แต่ละ API ถูกออกแบบมาคนละงาน
ปัจจุบันโมเดลหลักสำหรับ Voice AI แบบ Real-Time คือ
gemini-3.1-flash-live-preview
Google อธิบายว่าเป็น
Low-latency
Audio-to-Audio
Real-time Dialogue
Voice-first AI
พร้อมความสามารถด้าน
จุดนี้สำคัญมาก
สถานะปัจจุบันคือ
Preview
ไม่ใช่ Stable/GA
ดังนั้นก่อนนำไปใช้กับ Production Critical System ต้องพิจารณา
Google ยังไม่ได้ประกาศ Shutdown Date ของ gemini-3.1-flash-live-preview ณ ข้อมูลปัจจุบัน
Tutorial เก่าอาจพบชื่อ เช่น
gemini-live-2.5-flash-preview
หรือ
gemini-2.5-flash-native-audio-preview-12-2025
Google แนะนำให้ย้ายมาที่
gemini-3.1-flash-live-preview
สำหรับ Live Conversation รุ่นปัจจุบัน
ดังนั้นก่อน Copy Code จาก Tutorial ควรตรวจ Model ID ล่าสุดเสมอ
Live API ใช้
WebSocket
หรือ
WSS
สำหรับ Connection ที่เข้ารหัส
WebSocket Reference ปัจจุบันแสดง Endpoint ใน API Version v1beta สำหรับ BidiGenerateContent
แนวคิดคือ
Client
↓
เปิด WebSocket
↓
ส่ง Session Configuration
↓
Session Ready
↓
ส่ง/รับข้อมูล Real-time
↓
Close
BidiGenerateContent คืออะไรคำว่า
Bidi
=
Bidirectional
หมายถึงข้อมูลสามารถไหลได้สองทิศทาง
Client → Gemini
Gemini → Client
พร้อมกัน
ต่างจาก HTTP Request ทั่วไปที่มักเป็น
Request
→
Response
อย่างละหนึ่งรอบ
นี่เป็นพื้นฐานสำคัญที่ทำให้ Voice Conversation ดูเป็นธรรมชาติ
gemini-3.1-flash-live-preview รองรับ Input เช่น
Text
Image
Audio
Video
ทำให้สามารถสร้าง Application เช่น
Microphone
↓
Gemini
↓
Voice
Camera
+
Microphone
↓
Gemini
↓
Voice
User พูด
+
แสดงสินค้าให้กล้องดู
↓
Gemini
↓
ตอบด้วยเสียง
เมื่อใช้ Native Audio Model ปัจจุบัน Session Configuration ใช้
response_modalities = AUDIO
เป็นหลัก
ถ้าต้องการข้อความของสิ่งที่ Gemini พูด สามารถเปิด
output_audio_transcription
เพื่อรับ Transcript เพิ่ม
จึงไม่จำเป็นต้องเปลี่ยน Voice Response เป็น Text Response อย่างเดียว
ติดตั้ง SDK ปัจจุบัน
pip install -U google-genai
จากนั้นสร้าง Connection
import asyncio
from google import genai
client = genai.Client()
model = "gemini-3.1-flash-live-preview"
config = {
"response_modalities": [
"AUDIO"
],
}
async def main():
async with client.aio.live.connect(
model=model,
config=config,
) as session:
print("Live session started")
if __name__ == "__main__":
asyncio.run(main())
เมื่อเข้าสู่
async with
WebSocket Session จะถูกเปิด
เมื่อออกจาก Block Session จะถูกปิด
SDK
npm install @google/genai
ตัวอย่างพื้นฐาน
import {
GoogleGenAI,
Modality
} from "@google/genai";
const ai = new GoogleGenAI({});
const model =
"gemini-3.1-flash-live-preview";
const session =
await ai.live.connect({
model,
callbacks: {
onopen() {
console.log("Connected");
},
onmessage(message) {
console.log(message);
},
onerror(error) {
console.error(error);
},
onclose(event) {
console.log(
"Closed:",
event.reason
);
},
},
config: {
responseModalities: [
Modality.AUDIO
],
},
});
JavaScript SDK ใช้ Callback สำหรับรับ Event จาก Session
Live API ใช้ Raw Audio
รูปแบบหลักคือ
16-bit PCM
Little-endian
Input Native Rate คือ
16 kHz
ตัวอย่าง MIME Type
audio/pcm;rate=16000
Python
await session.send_realtime_input(
audio=types.Blob(
data=audio_chunk,
mime_type=(
"audio/pcm;rate=16000"
),
)
)
Audio ที่ Gemini ส่งกลับใช้
Raw
16-bit PCM
Little-endian
24 kHz
ดังนั้น Audio Player ต้องตั้ง Playback Format ให้ถูก
Input
16 kHz
Output
24 kHz
อย่านำ Output 24 kHz ไป Play ด้วย Configuration 16 kHz เพราะเสียงจะผิด Speed/Pitch
Google ระบุว่า Native Input Rate คือ
16 kHz
แต่ Live API สามารถ Resample Input Rate อื่นได้
Developer ควรระบุ Sample Rate จริงใน MIME Type เช่น
audio/pcm;rate=48000
หากส่ง 48 kHz
อย่างไรก็ตาม 16 kHz เหมาะสำหรับ Voice Input และลด Bandwidth ได้ดี
async for response in session.receive():
if (
response.server_content
and
response.server_content.model_turn
):
for part in (
response
.server_content
.model_turn
.parts
):
if part.inline_data:
audio_data = (
part.inline_data.data
)
# ส่ง audio_data
# ไป Audio Playback Queue
Gemini ส่ง Audio Response กลับมาเป็น Chunks
Application ควรนำ Chunk เหล่านี้เข้า Playback Buffer
ถ้าทำ
รับ Audio Chunk ทั้งหมด
↓
รวม
↓
รอ Gemini พูดจบ
↓
เริ่ม Play
จะเสียประโยชน์ของ Real-time API
ควรเป็น
Audio Chunk
↓
Playback Queue
↓
Speaker
Audio Chunk ถัดไป
↓
Playback Queue
ทำให้ AI เริ่มพูดก่อน Response ทั้งหมดเสร็จ
Architecture พื้นฐาน
Microphone
↓
Capture PCM
↓
แบ่ง Audio Chunks
↓
send_realtime_input()
↓
Gemini
ฝั่ง Output
Gemini
↓
Audio Chunks
↓
Playback Queue
↓
Speaker
Input กับ Output ต้องทำงานพร้อมกัน
จึงนิยมใช้
ตามภาษาและ Framework
asyncio.gather() ได้Python Application สามารถมี Task
send_audio()
และ
receive_audio()
ทำงานพร้อมกัน
แนวคิด
await asyncio.gather(
send_audio(session),
receive_audio(session),
)
เพราะ Voice Conversation ต้องรับ Microphone และเล่น AI Audio พร้อมกัน
Gemini 3.1 Flash Live รองรับ Text Input
สำหรับการสนทนาระหว่าง Session ปัจจุบันใช้
await session.send_realtime_input(
text="สวัสดี ช่วยแนะนำตัวหน่อย"
)
JavaScript
session.sendRealtimeInput({
text:
"สวัสดี ช่วยแนะนำตัวหน่อย"
});
ทำให้ Application สามารถผสม
Voice
+
Text
+
Video
ใน Session เดียว
send_client_content เปลี่ยนสำหรับ Gemini 3.1 Liveนี่เป็นจุดที่ Tutorial เก่าอาจทำให้สับสน
สำหรับ
gemini-3.1-flash-live-preview
send_client_content ใช้สำหรับการ Seed Initial Context History เท่านั้น โดยต้องเปิด Configuration ที่เกี่ยวข้อง
หลังจาก Model Turn แรกแล้ว Text Update ระหว่าง Conversation ควรใช้
send_realtime_input(text=...)
แทน
ดังนั้นอย่า Copy Pattern ของ Live Model รุ่นเก่าโดยไม่ตรวจ Documentation ปัจจุบัน
Live API รับ Video เป็น Frames
ไม่ได้ส่ง MP4 Stream ทั้งไฟล์ตรง ๆ ในรูปแบบเดียวกับ Video Player
ตัวอย่าง Python
await session.send_realtime_input(
video=types.Blob(
data=jpeg_frame,
mime_type="image/jpeg",
)
)
Google ระบุ Video Frame Rate สูงสุดประมาณ
1 frame / second
สำหรับ Live API Input ตาม Specification ปัจจุบัน
Live Vision ไม่ได้ออกแบบเหมือนระบบ Video Streaming 30–60 FPS
เป้าหมายคือให้ Gemini รับ Context Visual เป็นระยะ
เช่น
กล้องมองสินค้า
↓
1 frame/sec
↓
Gemini เข้าใจสิ่งที่เห็น
เหมาะกับ
ไม่ใช่ Video Processing Frame-by-Frame แบบ Computer Vision ความเร็วสูง
ได้
Live API รองรับภาษาไทย
Thai
BCP-47 = th
และ Native Audio Models สามารถสลับภาษาใน Conversation ได้ตามบริบท
ตัวอย่าง
User:
สวัสดีครับ
Gemini:
สวัสดีครับ มีอะไรให้ช่วยครับ
หรือ User สามารถสลับภาษาได้ตามความสามารถของโมเดล
Live API ปัจจุบันรองรับประมาณ
97 languages
รวมภาษาไทย
เหมาะกับ
ได้
กำหนด Voice ผ่าน
speech_config
ตัวอย่าง Python
config = {
"response_modalities": [
"AUDIO"
],
"speech_config": {
"voice_config": {
"prebuilt_voice_config": {
"voice_name": "Kore"
}
}
},
}
Developer ควรทดลองเสียงใน AI Studio เพื่อเลือก Voice ที่เหมาะกับ Brand และ Use Case
Gemini 3.1 Flash Live ใช้
thinkingLevel
แทน thinkingBudget ของ Live Model รุ่น 2.5
รองรับระดับ เช่น
minimal
low
medium
high
Default ปัจจุบันคือ
minimal
เพื่อให้ Latency ต่ำที่สุด
minimalVoice Conversation ต้องตอบเร็ว
ถ้า User พูดว่า
สวัสดี
แล้ว AI ใช้ Reasoning หลายวินาทีก่อนตอบ
ประสบการณ์จะไม่เป็นธรรมชาติ
ดังนั้นงานสนทนาทั่วไปเหมาะกับ
minimal
หรือ low
ส่วนงานยากค่อยเพิ่ม Thinking
ใช้ได้ตาม Requirement แต่ต้อง Benchmark
High Thinking สามารถเพิ่ม
ดังนั้น
Voice Greeting
→ minimal
แต่
Complex Technical Diagnosis
→ อาจทดลอง low/medium/high
แล้ววัดผล
หาก Output เป็น Audio แต่อยากแสดง Subtitle
เปิด
config = {
"response_modalities": [
"AUDIO"
],
"output_audio_transcription": {},
}
จากนั้นตรวจ
response.server_content.output_transcription
และอ่านข้อความจาก
response
.server_content
.output_transcription
.text
เหมาะกับ
สามารถเปิด
input_audio_transcription
เพื่อรับ Transcript ของ Audio Input
ตัวอย่าง Configuration
config = {
"response_modalities": [
"AUDIO"
],
"input_audio_transcription": {},
}
จากนั้นตรวจ
input_transcription
ทำให้สร้าง UI
User:
"ช่วยเช็กสถานะคำสั่งซื้อ"
Gemini:
"กรุณาบอกเลขคำสั่งซื้อครับ"
ได้ง่ายขึ้น
ขึ้นกับ Product และ Privacy Policy
Conversation อาจมี
ดังนั้นไม่ควร Save Transcript ทุก Session โดยอัตโนมัติโดยไม่พิจารณา
ควรกำหนด
Retention
Consent
Access Control
Encryption
ตาม Requirement
VAD ย่อมาจาก
Voice Activity Detection
มีหน้าที่ตรวจว่า
User เริ่มพูดเมื่อไร
User หยุดพูดเมื่อไร
เพื่อแบ่ง Conversation เป็น Turns
Live API เปิด Automatic VAD เป็น Default
ถ้าไม่มี VAD Application อาจต้องมีปุ่ม
Start Talking
Stop Talking
ทุกครั้ง
แต่ Automatic VAD สามารถฟัง Stream ต่อเนื่องและตรวจช่วง Speech เอง
Flow
Silence
↓
User เริ่มพูด
↓
VAD ตรวจพบ
↓
ส่ง Speech Turn
↓
User หยุดพูด
↓
Gemini ตอบ
หนึ่งในความสามารถสำคัญคือ
Barge-in
สมมติ Gemini กำลังพูดว่า
จากข้อมูลที่พบ...
User พูดแทรก
หยุดก่อน
VAD สามารถตรวจ Start of Activity
แล้ว Interrupt Generation ปัจจุบัน
ทำให้ Conversation ใกล้เคียงการพูดกับคนมากขึ้น
เมื่อ Server แจ้ง
interrupted = true
Application ควร
Stop Audio Playback
+
Clear Playback Queue
ทันที
ไม่เช่นนั้น Gemini อาจหยุดสร้างแล้ว แต่ Speaker ยังเล่น Audio เก่าที่ Buffer ไว้
ทำให้ User รู้สึกว่า AI ไม่ยอมหยุดพูด
async for response in session.receive():
if (
response.server_content
and
response.server_content.interrupted
):
stop_audio_playback()
clear_audio_queue()
นี่เป็น Logic สำคัญมากสำหรับ Voice Assistant
Google ระบุว่าเมื่อ Audio Stream หยุดนานกว่า 1 วินาที เช่น User ปิด Microphone
ควรส่ง
audio_stream_end
เพื่อ Flush Audio ที่ Server เก็บอยู่
Python
await session.send_realtime_input(
audio_stream_end=True
)
เมื่อ User เปิด Microphone ใหม่ก็สามารถส่ง Audio ต่อได้
Hybrid VAD รวม
Server Automatic VAD
+
Client-side End-of-Speech Detection
Server ยังตรวจ Speech Start
แต่ Client สามารถตรวจว่า User หยุดพูดแล้วและส่ง
audio_stream_end
ทันที
ช่วยลดเวลารอ Silence Timeout ของ Server
Flow
User พูดจบ
↓
Client VAD ตรวจได้ทันที
↓
audio_stream_end
↓
Gemini เริ่มตอบ
แทน
User พูดจบ
↓
รอ Server Silence Detection
↓
Gemini ตอบ
แต่ Client VAD ต้องตั้ง Threshold ให้ดี
ถ้าตัดเร็วเกินไปอาจตัดคำพูดกลางประโยค
silenceDurationMs ควรตั้งเท่าไรเอกสารปัจจุบันของ Google แนะนำช่วงประมาณ
500–800 ms
เป็น Balance ที่ดีระหว่าง
Server Default ภายในอยู่ประมาณ
800 ms
หากตั้งต่ำมาก เช่น
100–200 ms
อาจตัด Turn ระหว่างที่ User หยุดคิดหรือหายใจ
เช่น
2,000 ms+
AI อาจรอนานหลัง User พูดจบ
ทำให้ Conversation รู้สึก
User:
สวัสดี
...เงียบ...
AI:
สวัสดีครับ
ดังนั้น VAD Configuration มีผลต่อ UX โดยตรง
ได้
สามารถปิด Automatic VAD
config = {
"response_modalities": [
"AUDIO"
],
"realtime_input_config": {
"automatic_activity_detection": {
"disabled": True
}
},
}
จากนั้น Client ส่ง
await session.send_realtime_input(
activity_start=types.ActivityStart()
)
ส่ง Audio
แล้ว
await session.send_realtime_input(
activity_end=types.ActivityEnd()
)
เมื่อปิด Automatic VAD
Client ต้องจัดการเองว่า
เหมาะกับ Application ที่ต้องควบคุม Turn-taking อย่างละเอียด
สำหรับ Project แรกควรเริ่มจาก Automatic VAD ก่อน
สมมติ Gemini พูดผ่าน Speaker
Microphone รับเสียง Gemini กลับเข้าไป
Gemini Speaker
↓
Microphone
↓
Gemini API
ระบบอาจเข้าใจว่า User กำลังพูด
เกิด
Production Voice App จึงควรใช้
ตาม Audio Platform
ช่วง Development หากเกิด AI พูดแทรกตัวเองบ่อย
ลองใช้
Headphones / Headset
ถ้าปัญหาหาย มีโอกาสสูงว่า Audio Output กำลังย้อนเข้า Microphone
จากนั้นค่อยแก้ Echo Cancellation สำหรับ Speaker Mode
นี่เป็น Feature สำคัญมากสำหรับสร้าง Voice Agent ที่ทำงานจริง
ตัวอย่าง
User:
เช็ก Order 12345 ให้หน่อย
Gemini สามารถสร้าง
get_order_status(
order_id="12345"
)
Application ไปอ่าน Database
แล้วส่ง Result กลับ
Gemini จึงพูด
Order 12345 ถูกจัดส่งแล้วครับ
ทำให้ Voice Assistant ไม่ได้เพียงพูด แต่ทำงานกับ Business System ได้
สำหรับ
gemini-3.1-flash-live-preview
Google ระบุว่า Async Function Calling ยังไม่รองรับ
Function Calling ปัจจุบันเป็นแบบ Synchronous
โมเดลจะรอ
Tool Result
ก่อนตอบต่อ
ดังนั้น Function Backend ต้องเร็ว
ไม่เช่นนั้น User จะรู้สึกว่า AI หยุดนาน
สมมติ Gemini ใช้เวลา
300 ms
เลือก Function
แต่ Database API ใช้
5 seconds
Voice Assistant ก็ต้องรอประมาณนั้น
ดังนั้น Real-time Agent ต้อง Optimize
Model Latency
+
Network
+
Tool Latency
+
Audio Playback
พร้อมกัน
gemini-3.1-flash-live-preview รองรับ
Grounding with Google Search
จึงสร้าง Voice AI ที่ตอบข้อมูลปัจจุบัน เช่น
User:
วันนี้มีข่าว AI อะไรสำคัญ
Gemini สามารถใช้ Search แล้วตอบด้วยเสียง
แต่ Search Tool มี Pricing เพิ่มตาม Usage
Model ปัจจุบันไม่รองรับบาง Feature เช่น
Context Caching
Code Execution
File Search
Google Maps Grounding
Image Generation
Structured Output
URL Context
Batch API
ดังนั้นอย่านำ Feature Matrix ของ gemini-3.7-flash มาคิดว่า Live Model รองรับเหมือนกันทั้งหมด
Live API Platform มี Feature ด้าน Audio ขั้นสูงหลายแบบ
แต่ Model
gemini-3.1-flash-live-preview
ปัจจุบันไม่รองรับ
Affective Dialog
ตาม Model Capability ปัจจุบัน
อย่านำ Configuration จาก Live Model รุ่นอื่นมาใช้โดยตรง
เช่นเดียวกัน
Proactive Audio
ยังไม่รองรับสำหรับ Gemini 3.1 Flash Live ตาม Migration Guidance ปัจจุบัน
หากเห็น Tutorial ที่เปิด Feature นี้ ต้องตรวจว่าใช้ Model ตัวไหน
วิธีที่ตรงไปตรงมาสำหรับ Backend คือ
Browser / Mobile
↓
Audio
↓
Your Server
↓
WebSocket
↓
Gemini Live API
ข้อดี
ข้อเสีย
อีกแบบคือ
Browser / Mobile
↓
WebSocket
↓
Gemini Live API
ไม่ผ่าน Backend สำหรับ Media Stream
ข้อดีคือ
แต่ห้ามฝัง Gemini API Key ปกติใน Browser
Google แนะนำอย่างชัดเจนว่า Production Client-to-Server ควรใช้
Ephemeral Token
ไม่ใช่ Standard API Key
Architecture
Browser
↓
ขอ Ephemeral Token
↓
Your Backend
↓
สร้าง Token ด้วย Gemini API Key
↓
ส่ง Temporary Token ให้ Browser
↓
Browser เชื่อม Live API
API Key จริงไม่ออกจาก Server
หากเขียน
const apiKey = "REAL_API_KEY";
User สามารถดูได้จาก
แล้วนำ Key ไปใช้นอก Application
จึงไม่เหมาะกับ Production
ค่า Default ปัจจุบันของ Token คือประมาณ
expireTime
=
30 นาที
และเวลาที่อนุญาตให้เปิด Session ใหม่ ด้วย Token นั้น Default ประมาณ
newSessionExpireTime
=
60 วินาที
ช่วยลด Window ที่ Credential ถูกนำไปใช้ผิดวัตถุประสงค์
ค่า Default ปัจจุบันคือ
uses = 1
หมายถึง Token ถูกออกแบบมาให้เปิด Session ตามข้อจำกัดที่กำหนด
สามารถกำหนด Policy เพิ่มได้เมื่อสร้าง Token
เหมาะกว่าการแจก Permanent Credential ให้ Client
Backend สามารถสร้าง Token ที่ผูก Constraint เช่น
model =
gemini-3.1-flash-live-preview
รวมถึง Session Configuration บางอย่าง
ทำให้แม้ Token หลุด ผลกระทบถูกจำกัดมากกว่า API Key หลัก
ข้อจำกัดปัจจุบันคือ
ประมาณ
15 นาที
ประมาณ
2 นาที
อย่างไรก็ตาม Google มี Session Management Technique สำหรับต่อ Session ได้ยาวขึ้น
ดังนั้น Production Voice App ไม่ควรสมมติว่า WebSocket เดียวจะเปิดได้ตลอดวัน
ถ้าต้องการ Conversation เช่น
Call Center
30 นาที
แต่ Audio-only Session มี Limit 15 นาที
Application ต้องวาง
Session Resumption
+
Context Management
เพื่อรักษาการสนทนาเมื่อ Connection ถูกต่อใหม่
ไม่ควรรอให้ Connection ถูกปิดแล้วเริ่ม Conversation จากศูนย์
Live API Session ปัจจุบันมี Context Window สำหรับ Native Audio Output Model ประมาณ
128k tokens
ดังนั้น Conversation ยาวมากก็ยังต้องมี Context Strategy
Summary
Session Management
Context Compression
ตาม Workflow ที่รองรับ
แม้สร้างระบบ Reconnect ให้สนทนาหลายชั่วโมงได้
ก็ไม่ได้หมายความว่า Gemini จะจำทุกคำตั้งแต่เริ่มไปตลอดแบบ Unlimited
ควรมี
Conversation Summary
Important Facts
User State
Business State
เก็บใน Backend เมื่อ Session ยาวมาก
สำหรับ Live Vision App ที่ต้องเปิดกล้องเป็นเวลานาน ต้องวาง Session Management เพิ่ม
อีกเรื่องสำคัญคือ Gemini 3.1 เปลี่ยน Default Turn Coverage ให้รวม
Audio Activity
+
All Video Frames
ดังนั้นหากส่ง Video Frame ตลอดเวลาโดยไม่จำเป็น Cost สามารถเพิ่มได้
Google แนะนำให้พิจารณาส่ง Video เฉพาะช่วงที่เกี่ยวข้องกับ Audio Activity ตาม Use Case
ราคาปัจจุบันของ
gemini-3.1-flash-live-preview
Paid Tier คือ
$0.75 / 1M tokens
$3.00 / 1M tokens
หรือประมาณ
$0.005 / นาที
$1.00 / 1M tokens
หรือประมาณ
$0.002 / นาที
ตามการประมาณของ Google
Audio Output ปัจจุบันอยู่ที่
$12 / 1M tokens
หรือประมาณ
$0.018 / นาที
ส่วน Text Output Pricing ปัจจุบันอยู่ที่
$4.50 / 1M tokens
ตาม Pricing Page
ราคาอาจเปลี่ยนได้เพราะ Model ยังเป็น Preview
สมมติอย่างง่าย
User พูดรวม
5 นาที
Gemini พูดรวม
5 นาที
Input Audio
5 × $0.005
=
$0.025
Output Audio
5 × $0.018
=
$0.09
รวม Audio โดยประมาณ
$0.115
ยังไม่รวม
เป็นเพียงตัวอย่างเพื่อให้เห็นโครงสร้างต้นทุน
Pricing ปัจจุบันสำหรับ Gemini 3.x ให้
5,000 Search Requests ฟรี/เดือน
แบบแชร์ระหว่าง Gemini 3.x ที่เกี่ยวข้อง
หลังจากนั้น
$14 / 1,000 Search Requests
และหนึ่ง User Request สามารถทำให้ Gemini สร้าง Search Query หลายครั้งได้
Voice Agent ที่ Search บ่อยจึงต้อง Monitor Tool Usage ด้วย
ควรมีอย่างน้อย
sessions
session_duration
audio_input_minutes
audio_output_minutes
ด้าน Latency
speech_end_to_response
first_audio_latency
tool_latency
ด้าน Reliability
disconnects
reconnects
interruptions
errors
ด้าน Cost
audio_input_tokens
audio_output_tokens
search_calls
cost_per_session
หนึ่งใน Metric ที่ User รู้สึกได้ชัดคือ
End of User Speech
↓
First AI Audio
ถ้ารอ
5 วินาที
Conversation จะรู้สึกไม่ธรรมชาติ
แต่ถ้าตอบภายในช่วงสั้นและ Turn-taking ดี จะรู้สึกเหมือนพูดคุยจริงมากกว่า
ดังนั้น Latency Optimization ต้องดูทั้ง VAD และ Model
Voice Assistant ทั่วไปอาจใช้
minimal
แล้วเฉพาะคำถามยากจึงเพิ่ม Reasoning ตาม Architecture
ถ้าใช้ High Thinking ทุกประโยค เช่น
User:
สวัสดี
อาจเพิ่ม Latency และ Cost โดยไม่สร้างคุณค่า
ตัวอย่าง
คุณเป็นผู้ช่วยฝ่ายขาย
ตอบภาษาไทย
ตอบกระชับ
อย่าพูดยาวเกิน 3 ประโยค
หากไม่แน่ใจข้อมูลสินค้า
ให้เรียก Tool ตรวจสอบก่อน
Voice Prompt ควรกระชับกว่าบาง Text Application
เพราะคำตอบยาวเกินไปทำให้ Conversation ช้าและ User พูดแทรกบ่อย
มนุษย์อ่าน Text 10 ย่อหน้าได้
แต่การฟัง AI พูด 10 ย่อหน้าเป็นประสบการณ์ที่ไม่ดี
Voice Agent ควรใช้ Pattern
ตอบสั้น
↓
ถามว่าต้องการรายละเอียดเพิ่มไหม
เช่น
ได้ครับ สินค้านี้รองรับ Wi-Fi 7
และเหมาะกับบ้านที่มีอุปกรณ์จำนวนมาก
ต้องการให้ผมเปรียบเทียบกับรุ่นอื่นไหมครับ
ดีกว่าพูด Specification ทั้งหมดในครั้งเดียว
AI Voice ที่ดีควร
จึงต้อง Optimize
VAD
+
Audio Queue
+
Interruption
+
Latency
ไม่ใช่แค่ Prompt Quality
Server-to-server มักควบคุม Security ง่าย
Client-to-server มีข้อได้เปรียบเพราะ Media ไม่ต้องวิ่งผ่าน Backend
แต่ต้องใช้
Ephemeral Token
เพื่อไม่เปิดเผย API Key
สำหรับ Production ควร Benchmark Architecture ทั้งสองแบบ
สมมติ Voice User บอก
ยกเลิก Order ของผมทั้งหมด
Gemini อาจเลือก
cancel_order()
Backend ยังต้องตรวจ
Voice AI ไม่ควร Execute Critical Action จาก Intent เพียงอย่างเดียว
ตัวอย่าง
Gemini:
คุณต้องการยกเลิก Order 12345
ใช่หรือไม่ครับ
User:
ใช่
Backend:
Validate
↓
Execute
ดีกว่า Cancel ทันทีจากคำพูดครั้งแรก
โดยเฉพาะเมื่อ Speech Recognition สามารถตีความผิดได้
ข้อมูล เช่น
Order 15837
หรือ
ราคา 15,830 บาท
ควรมี Confirmation ใน Action สำคัญ
เช่น
ผมได้ยินว่า Order 15837
ถูกต้องไหมครับ
ช่วยลดความเสียหายจาก Audio Misrecognition
Architecture
Telephone
↓
Telephony Provider
↓
Audio Stream
↓
Gemini Live
↓
Function Calling
↓
CRM / Order / Ticket
AI สามารถ
แต่ต้องมี Human Escalation เมื่อ AI จัดการไม่ได้
Customer
↓
Voice
↓
Gemini Live
↓
Product Function
↓
Inventory
↓
Recommendation
User สามารถถาม
มีเราเตอร์ Wi-Fi 7 ราคาไม่เกิน 5,000 ไหม
AI ไปตรวจ Product Database แล้วตอบด้วยเสียง
Live API เหมาะกับ
Player
↔
NPC
เพราะสามารถ
ทำให้ NPC ไม่ต้องมี Dialog Tree ตายตัวทั้งหมด
Camera
+
Microphone
↓
Gemini Live
↓
Voice
User ถาม
สิ่งที่อยู่ตรงหน้าคืออะไร
ระบบส่ง Visual Frames และ Audio ไปพร้อมกัน
เหมาะกับ Next-generation Interface
Live API Platform รองรับ Real-time Voice Translation
เหมาะกับ
Speaker A
ภาษาไทย
↓
AI
↓
Speaker B
ภาษาอื่น
อย่างไรก็ตาม Google มี Model/Feature เฉพาะด้าน Live Translation ด้วย จึงควรเลือก Model ให้ตรงงานหาก Product เน้น Translation โดยเฉพาะ
ถ้าต้องการเพียง
Speech
↓
Text
ไม่จำเป็นต้องใช้ Full Voice Agent Model เสมอไป
ปัจจุบัน Google มี
gemini-3.5-transcribe-live
สำหรับ Low-latency Streaming Speech-to-Text
ดังนั้นเลือก
ต้องการ Transcript
→ Transcribe Live
ต้องการ AI สนทนาด้วยเสียง
→ Gemini Flash Live
Specialized Transcription Model อาจเหมาะกว่าในเรื่อง
ขึ้นอยู่กับ Requirement
Model Selection ต้องเริ่มจาก Task
อย่าทดสอบเฉพาะห้องเงียบ
ควรมี Scenario
จะเห็นปัญหา Real-world มากกว่า Demo
ทดสอบทั้ง
Headset
และ
Speakerphone
เพราะระบบที่ทำงานดีบน Headset อาจเกิด Echo เมื่อเปิด Loudspeaker
นี่เป็นปัญหา Audio Pipeline ไม่ใช่ Model อย่างเดียว
Real-time Voice ต้องพึ่ง Connection ต่อเนื่อง
ควรทดสอบ
แล้วดู
Reconnect Behavior
ก่อน Production
WebSocket สามารถหลุดได้จาก
Application ควรมี
Disconnect
↓
Backoff
↓
Reconnect
↓
Resume Context
แทน Crash ทั้ง Conversation
ตัวอย่าง
Retry 1
1 second
Retry 2
2 seconds
Retry 3
4 seconds
พร้อม Maximum Retry
ไม่ควร Reconnect ทุก 10 ms
เพราะจะเพิ่ม Traffic และ Load
แม้ Live API เป็น Stateful
ระบบธุรกิจควรเก็บ State สำคัญ เช่น
customer_id
order_id
current_task
confirmed_actions
conversation_summary
ใน Application เอง
อย่าให้ Gemini Session เป็น Database หลักของ Business
ไม่ควรส่ง
Database Password
API Key
Private Token
เข้า Voice Session
Function Calling Backend ควรจัดการ Secret เอง
Gemini ต้องเห็นเฉพาะ Result ที่จำเป็น
ตัวอย่าง
Web / Mobile
↓
Authentication
↓
Ephemeral Token Service
↓
Gemini Live API
↘
Backend Tools
↓
CRM / Database
แยก
Media Path
ออกจาก
Business Action Path
ช่วยลด Latency พร้อมรักษา Security
ควรมี
Sessions today
Average session duration
Audio minutes
ด้าน Experience
Response latency
Interruption rate
Disconnect rate
ด้าน AI
Tool calls
Tool errors
Search calls
ด้าน Cost
Cost/session
Cost/minute
สำหรับระบบ Real-time ของ comsiam การวัด Cost ต่อ Session มีประโยชน์มากกว่าดู Token รวมอย่างเดียว เพราะสามารถเชื่อมค่า AI กับ User หรือ Feature ที่สร้างรายได้จริงได้ง่ายกว่า
สมมติ
Average Session
=
8 นาที
User พูด
4 นาที
Gemini พูด
4 นาที
Audio Cost โดยประมาณจาก Pricing ปัจจุบัน
Input
4 × $0.005
=
$0.020
Output
4 × $0.018
=
$0.072
รวม
$0.092
ก่อนรวม Search, Video, Text และ Tools
จากนั้นคูณ
Sessions / เดือน
เพื่อวาง Budget
เสียงไม่ควรถูก Stream แบบไม่มี Purpose ตลอดเวลาหาก Product ไม่ต้องการ
Gemini 3.1 เปลี่ยน Turn Coverage ให้รวม Video Frame มากขึ้นตาม Default ของ Model
Application ที่ส่ง
1 FPS
ตลอด Session
อาจมี Video Input Cost เพิ่มอย่างต่อเนื่อง
ถ้ากล้องมีประโยชน์เฉพาะเมื่อ User ถามเกี่ยวกับสิ่งที่เห็น
ควรพิจารณาส่ง Frame ตาม Event หรือ Activity
Live API ไม่ใช่ Unlimited Connection
ต้องตรวจ Active Rate Limits ของ Project
โดยเฉพาะ Production ที่มี
100
1,000
10,000
Concurrent Voice Users
Capacity Planning ต้องดูทั้ง
ถ้าใช้ Server-to-server
Server ของเราต้องรับ
Audio Upload
+
Audio Download
ทุก Session
ดังนั้น Total Cost คือ
Gemini Cost
+
Server
+
Bandwidth
+
Telephony
+
Database
+
Tools
อย่าคำนวณเฉพาะ Gemini Token
ถ้า Voice Agent รับโทรศัพท์จริง
Cost อาจเป็น
Phone Minutes
+
Gemini Audio
+
Search
+
CRM API
+
Infrastructure
ควรคำนวณ
Cost per resolved call
ไม่ใช่เพียง Cost per Audio Minute
AI Agent อาจใช้
$0.10 / call
แต่แก้ปัญหาสำเร็จ 90%
เทียบกับ Model/Configuration ที่
$0.07 / call
แต่แก้ได้เพียง 50%
ตัวที่ราคา Token ถูกกว่าอาจไม่คุ้มใน Business จริง
ควรวัด
Cost per Successful Resolution
ขั้นแรกควรสร้าง
Microphone
↓
Gemini
↓
Speaker
ให้ทำงานก่อน
ยังไม่ต้องเพิ่ม
เมื่อ Voice Loop เสถียรแล้วค่อยเพิ่ม Tool ทีละตัว
ลด Debug Complexity อย่างมาก
Voice, Vision หรือ Multimodal
gemini-3.1-flash-live-preview
เก็บ Server-side
client.aio.live.connect()
AUDIO
เป็น PCM
ใช้ send_realtime_input
ผ่าน session.receive()
ที่ 24 kHz
เริ่มจาก Automatic
หยุด Playback Queue
ถ้าต้องการ
กำหนด Persona/Rules
เชื่อม Business Data
เฉพาะข้อมูลสด
หาก Client ต่อ Live API โดยตรง
รองรับ Session หลุด
นี่เป็นลำดับที่ปลอดภัยกว่าการสร้าง Agent ใหญ่ทุก Feature ตั้งแต่ครั้งแรก
เสีย Real-time Experience
AI ยังพูดต่อจาก Buffer
ทำให้ False Barge-in
send_client_content ทุก Turn กับ 3.1ควรใช้ Realtime Input หลัง Initial History
audio_stream_end เมื่อ Pause Streamมี Duration Limit
Cost เพิ่ม
Network หลุดแล้ว Conversation จบ
Scale แล้วค่าใช้จ่ายคาดไม่ถึง
System Instruction
คุณเป็นผู้ช่วยภาษาไทย
ตอบด้วยภาษาที่สุภาพและกระชับ
ตอบครั้งละไม่เกิน 3 ประโยค
หากไม่แน่ใจให้ถามกลับ
Architecture
Microphone
↓
Gemini Live
↓
Speaker
เมื่อพื้นฐานเสถียร
เพิ่ม
get_product()
แล้ว
get_order()
จากนั้นจึงเพิ่ม Search
อย่าทำทุกอย่างใน Version แรก
Customer Voice
↓
Gemini Live
↓
Intent
↓
Function Calling
↓
CRM
↓
Gemini Voice Response
ถ้า User บอก
อินเทอร์เน็ตใช้ไม่ได้
AI สามารถถาม Troubleshooting
ถ้าจำเป็นต้องตรวจ Account
get_customer_service_status()
แล้วตอบตามข้อมูลจริง
Camera Frame
+
Voice
↓
Gemini Live
User
สายเส้นนี้เสียบตรงไหน
Gemini ใช้ Visual Context ประกอบคำพูด
เหมาะกับ
User
ผมต้องการเราเตอร์สำหรับบ้านสองชั้น
Gemini ถามรายละเอียด
พื้นที่ประมาณกี่ตารางเมตร
และมีอุปกรณ์กี่เครื่องครับ
จากนั้นเรียก Product Tool
find_products()
แล้วพูด Recommendation
นี่เป็น Voice Commerce ที่ Function Calling มีประโยชน์มาก
Gemini ไม่จำเป็นต้องเห็น Database ทั้งหมด
Function
get_order_status()
ควรคืนเฉพาะ
{
"status": "shipped",
"estimated_delivery":
"2026-09-04"
}
ไม่ใช่ Customer Record ทั้งหมด
ใช้ Data Minimization
Voice AI ไม่ควรถูกออกแบบว่า
AI ต้องแก้ทุกเรื่อง
ควรมี Condition เช่น
User ขอพนักงาน
↓
Escalate
หรือ
AI ล้มเหลว 2–3 ครั้ง
↓
Escalate
หรือ Critical Issue
Payment / Account Security
↓
Human Review
ช่วย User Experience และลด Risk
นอกจาก Latency ควรวัด
First Contact Resolution
Average Handling Time
Escalation Rate
Repeat Question Rate
แล้วเชื่อมกับ
Cost per Call
เพื่อดู Business Value จริง
ถ้าต้องการ
Text
↓
Voice
อย่างเดียว TTS Model อาจเหมาะกว่า
Live API เหมาะเมื่อมี
Conversation
+
Listening
+
Interruption
+
Multimodal
+
Tools
แบบ Real-time
เลือก Technology ตาม Use Case
เป็น Stateful WebSocket API สำหรับสร้าง AI แบบ Real-Time ที่สามารถรับ Text, Audio, Image และ Video พร้อมตอบกลับด้วย Audio และข้อมูลของ Session อย่างต่อเนื่อง เหมาะกับ Voice Assistant และ Multimodal Agent
สำหรับ Voice Conversation ปัจจุบันโมเดลหลักคือ gemini-3.1-flash-live-preview ซึ่ง Google ออกแบบเป็น Low-latency Audio-to-Audio Model สำหรับ Real-time Dialogue โดยตรง
รองรับ ภาษาไทยอยู่ในรายการภาษาที่ Live API รองรับ และ Native Audio Model สามารถสนทนาหลายภาษาได้ตาม Context
Live API ใช้ Raw 16-bit PCM แบบ Little-endian โดย Input Native Rate คือ 16 kHz และ Output Audio ใช้ 24 kHz
ข้อจำกัดปัจจุบันคือ Audio-only Session ประมาณ 15 นาที และ Audio+Video ประมาณ 2 นาที แต่สามารถใช้ Session Management Technique เพื่อสร้าง Conversation ที่ต่อเนื่องยาวกว่านี้ได้
ไม่ควร สำหรับ Client-to-Server Production Google แนะนำใช้ Ephemeral Token ที่ Backend สร้างให้ Client แทนการเปิดเผย API Key หลัก
Gemini Live API เป็น API สำหรับสร้าง AI แบบ Real-Time ผ่าน Stateful WebSocket เหมาะกับ Voice Assistant, AI Call Center, Gaming NPC, Smart Glasses, Camera Assistant และ Multimodal Agent ที่ต้องรับ Audio/Video ต่อเนื่องและตอบกลับด้วย Latency ต่ำ
โมเดลหลักในปัจจุบันคือ gemini-3.1-flash-live-preview ซึ่งเป็น Low-latency Audio-to-Audio Model รองรับ Text, Image, Audio และ Video Input พร้อม Function Calling, Google Search และ Thinking แต่ยังอยู่ในสถานะ Preview
Audio Input ใช้ Raw 16-bit PCM แบบ Little-endian โดย Native Input Rate คือ 16 kHz ส่วน Output Audio ใช้ 24 kHz Application จึงต้องออกแบบ Capture และ Playback Pipeline ให้ถูกต้อง
Automatic Voice Activity Detection เปิดเป็น Default ช่วยตรวจว่า User เริ่มและหยุดพูดเมื่อไร รวมถึงรองรับ Barge-in ซึ่งทำให้ User พูดแทรก AI ได้ เมื่อเกิด Interruption Application ต้องหยุด Playback และล้าง Audio Queue ทันที
สำหรับ Client-to-Server Architecture ไม่ควรฝัง API Key ใน Browser Google แนะนำใช้ Ephemeral Token ซึ่งมีอายุสั้นและสามารถจำกัด Model, Session Configuration และจำนวนครั้งที่ใช้ได้
ข้อจำกัดปัจจุบันของ Session คือ Audio-only ประมาณ 15 นาที และ Audio+Video ประมาณ 2 นาที พร้อม Context Window 128k Tokens สำหรับ Native Audio Output Model จึงควรวาง Session Resumption และ Context Management สำหรับ Conversation ระยะยาว
ด้านต้นทุน Gemini 3.1 Flash Live ปัจจุบันมี Audio Input ประมาณ $0.005 ต่อนาที และ Audio Output ประมาณ $0.018 ต่อนาทีตามการประมาณของ Google แต่ Total Cost ยังต้องรวม Text, Video, Search, Tools และ Infrastructure ด้วย
แนวทางของ comsiam คือเริ่มจาก Voice Loop พื้นฐาน Microphone → Gemini → Speaker ให้เสถียรก่อน จากนั้นเพิ่ม VAD, Transcript, Function Calling, Search และ Session Management ทีละส่วน พร้อมวัด Latency, Cost per Session และ Successful Task จริง
เมื่อระบบโตขึ้น comsiam ควรแยก Media Streaming ออกจาก Business Action Layer โดยใช้ Ephemeral Token สำหรับ Client Connection และให้ Backend เป็นผู้ตรวจ Authentication, Permission และ Critical Action เสมอ วิธีนี้รักษาทั้ง Latency และ Security ได้ดีกว่าปล่อยให้ Voice Model ควบคุมระบบธุรกิจโดยตรง