AI Voice AgentภาษาไทยSpeech to TextTTSVoice Assistant

AI Agent + Voice — สอนสร้าง Voice Assistant ภาษาไทย

สอนสร้าง AI Voice Agent ภาษาไทยตั้งแต่ STT → LLM → TTS พร้อม tutorial Python และ use case จริง — เริ่มต้นได้วันนี้ที่ aiunlock.co

AI Unlocked Team
17/08/2569

AI Agent + Voice — สอนสร้าง Voice Assistant ภาษาไทย

เมื่อ 2–3 ปีก่อน Voice AI ภาษาไทยยังเป็นเรื่องที่ฟังดูไกลตัว — เสียงหุ่นยนต์ฟังยาก, ไม่เข้าใจ accent ไทย, latency สูงจนคุยไม่รู้เรื่อง

แต่ปี 2026 ตลาดเปลี่ยนไปอย่างสิ้นเชิง

Call center ไทยหลายแห่งเริ่มใช้ AI Voice Agent รับสายแทนคนจริงแล้วในกะดึก ร้านอาหาร drive-thru บางเจ้าทดลอง Voice AI รับออร์เดอร์ ลูกค้าโต้ตอบกลับภาษาไทยได้อย่างเป็นธรรมชาติ

ถ้าคุณอยากสร้าง AI Voice Agent ภาษาไทย เอง — บทความนี้จะพาคุณเดินทางตั้งแต่ concept ไปจนถึง code ที่รันได้จริง


1. Voice Agent ภาษาไทย — เทรนด์ 2026

ข้อมูลจาก Gartner ปี 2026 ระบุว่า 30% ของ interaction ระหว่างธุรกิจกับลูกค้า จะผ่าน Voice AI ภายในปี 2028 และตัวเลขในเอเชียตะวันออกเฉียงใต้เติบโตเร็วกว่าค่าเฉลี่ยโลกเนื่องจากพฤติกรรมการโทรยังคงแข็งแกร่ง

สำหรับไทยโดยเฉพาะ ปัจจัยที่ขับเคลื่อนตลาด:

  • ต้นทุนแรงงาน Call Center สูงขึ้น — เงินเดือน agent เริ่มต้น 15,000–20,000 บาท/เดือน บวกค่า turnover ที่สูง
  • ลูกค้าไทยโทรหาบริษัทมากกว่าพิมพ์ — โดยเฉพาะกลุ่มอายุ 35+ ที่คุ้นเคยกับ Voice มากกว่า Chat
  • Whisper + LLM ทำให้ภาษาไทยแม่นขึ้นมาก — accuracy ของ ASR ภาษาไทยพุ่งจาก ~70% ในปี 2022 เป็น 92–95% ในปี 2026
  • API cost ถูกลง 10x — ทำให้ scale ได้โดยไม่ต้องลงทุน infrastructure เอง

ถ้าคุณสนใจภาพรวม AI Agent ในไทย แนะนำอ่าน คู่มือสร้าง AI Agent ภาษาไทย 2026 ก่อนเพื่อเข้าใจ foundation


2. Architecture: STT → LLM → TTS

Voice Agent ทุกตัวทำงานบน pipeline เดียวกัน:

ผู้ใช้พูด
    ↓
[STT] Speech-to-Text  →  text ภาษาไทย
    ↓
[LLM] Language Model  →  คำตอบที่เหมาะสม
    ↓
[TTS] Text-to-Speech  →  เสียงพูดตอบกลับ
    ↓
ผู้ใช้ได้ยิน

แต่ละ block มีทางเลือกหลายตัว และการเลือกถูกต้องส่งผลต่อ latency, ความแม่นยำ และต้นทุน อย่างมีนัยสำคัญ

ข้อจำกัดที่ต้องเข้าใจก่อน

ภาษาไทยมีความท้าทายเฉพาะตัว:

  • ไม่มี space ระหว่างคำ — ทำให้ word segmentation ยากกว่า
  • tone mark — คำเดียวกันออกเสียงต่างกันได้ถึง 5 tones
  • คำทับศัพท์อังกฤษ — ออกเสียงแตกต่างกันมากตาม speaker
  • ภาษาปาก vs ทางการ — model ต้องรองรับทั้งสองแบบ

3. STT ภาษาไทย — ตัวเลือกที่ดีที่สุดปี 2026

OpenAI Whisper (แนะนำสำหรับ accuracy สูง)

Whisper Large v3 รองรับภาษาไทยได้ดีที่สุดในกลุ่ม open-source accuracy ~93–95% กับเสียงพูดทั่วไป

import whisper

model = whisper.load_model("large-v3")
result = model.transcribe("audio.wav", language="th")
print(result["text"])

ข้อดี: Free, privacy สูง (run local), accuracy ดีมาก ข้อเสีย: ต้องการ GPU สำหรับ real-time, latency 0.5–2 วินาที

Google Speech-to-Text (แนะนำสำหรับ production)

Google STT v2 รองรับ th-TH พร้อม streaming mode ทำให้ latency ต่ำลง

from google.cloud import speech

client = speech.SpeechClient()
config = speech.RecognitionConfig(
    encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16,
    sample_rate_hertz=16000,
    language_code="th-TH",
)

ข้อดี: Streaming real-time, scalable, ไม่ต้องดู hardware ข้อเสีย: มีค่าใช้จ่าย ~$0.006/15 วินาที

Botnoi STT (สำหรับ Thai-first)

Botnoi Voice เป็น Thai startup ที่สร้าง STT/TTS เฉพาะภาษาไทย รองรับ accent ท้องถิ่นได้ดีกว่า global model

ข้อดี: Thai-native, ราคาถูกกว่า Google ในบางแพลน, รองรับสำเนียงไทย ข้อเสีย: Latency สูงกว่านิดหน่อย, ecosystem เล็กกว่า

สำหรับ benchmark STT ภาษาไทยแบบละเอียด อ่านต่อที่ AI Speech to Text ภาษาไทย — เปรียบเทียบ 2026


4. LLM + Memory — สมองของ Voice Agent

เมื่อ STT แปลงเสียงเป็น text แล้ว LLM จะประมวลผลและสร้างคำตอบ

เลือก LLM ตามงาน

Use CaseModel แนะนำเหตุผล
Customer ServiceClaude 3.7 Sonnetเข้าใจ context ยาว, ตอบสุภาพ
General AssistantGPT-5 miniเร็ว, ถูก, เหมาะ real-time
Complex reasoningClaude Opus 4ต้องการ reasoning ลึก
Low latency criticalLlama 3.3 70BSelf-host ได้, ควบคุม latency

Memory ทำให้ Voice Agent จำได้

Voice Agent ที่ดีต้องจำ context ของการสนทนาได้ ไม่ใช่ตอบแบบ stateless

from anthropic import Anthropic

client = Anthropic()
conversation_history = []

def chat_with_memory(user_message: str) -> str:
    conversation_history.append({
        "role": "user",
        "content": user_message
    })
    
    response = client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=500,
        system="""คุณเป็น Voice Assistant ภาษาไทยที่ฉลาดและเป็นมิตร
ตอบกระชับ เหมาะกับการพูด ไม่ใช้ bullet point หรือ markdown
ตอบเป็นประโยคที่ฟังแล้วเป็นธรรมชาติ""",
        messages=conversation_history
    )
    
    assistant_message = response.content[0].text
    conversation_history.append({
        "role": "assistant", 
        "content": assistant_message
    })
    
    return assistant_message

สำหรับ production ต้องเพิ่ม session management เพื่อ isolate conversation ระหว่าง caller แต่ละคน และใช้ database เก็บ history แทน in-memory list

ถ้าต้องการเชื่อม Voice Agent กับข้อมูลธุรกิจ ดูที่ สร้าง AI Agent Customer Service ภาษาไทย ที่ครอบคลุม RAG และ knowledge base


5. TTS ภาษาไทย — เสียงที่ฟังเป็นธรรมชาติ

Text-to-Speech คือส่วนที่ส่งผลต่อ "ความรู้สึก" ของผู้ใช้มากที่สุด เสียงหุ่นยนต์ทำลายประสบการณ์ทั้งหมดได้ทันที

ElevenLabs (คุณภาพสูงสุด)

ElevenLabs รองรับภาษาไทยด้วย multilingual v2 model คุณภาพเสียงเป็นธรรมชาติที่สุด

from elevenlabs.client import ElevenLabs

client = ElevenLabs(api_key="YOUR_API_KEY")

audio = client.text_to_speech.convert(
    voice_id="Thai_Female_Voice_ID",
    text="สวัสดีครับ มีอะไรให้ช่วยไหมครับ",
    model_id="eleven_multilingual_v2",
    output_format="mp3_44100_128"
)

ดู guide ละเอียดที่ ElevenLabs TTS ภาษาไทย — คู่มือฉบับสมบูรณ์ และ เปรียบเทียบ AI Voice ภาษาไทย 2026

Botnoi TTS (Thai-native, ราคาคุ้ม)

Botnoi เป็นตัวเลือกที่ดีสำหรับ Thai market โดยเฉพาะ — สำเนียงชัด, รองรับ tone ได้ดี และราคาถูกกว่า ElevenLabs

import requests

def botnoi_tts(text: str, speaker: str = "1") -> bytes:
    response = requests.post(
        "https://api-voice.botnoi.ai/openapi/v1/generate_audio",
        headers={
            "Botnoi-Token": "YOUR_TOKEN",
            "Content-Type": "application/json"
        },
        json={
            "text": text,
            "speaker": speaker,
            "volume": 1,
            "speed": 1,
            "type_media": "mp3"
        }
    )
    return response.content

Google TTS (เสถียร, ราคาต่ำ)

สำหรับ volume สูงและงบจำกัด Google TTS ภาษาไทย (th-TH, WaveNet) ให้คุณภาพดีพอและ latency ต่ำ


6. Tutorial: สร้าง Voice Agent ขั้นพื้นฐาน (Python)

มาสร้าง Voice Agent แบบ end-to-end ที่รันได้จริงบน local machine

ติดตั้ง dependencies

pip install openai-whisper anthropic elevenlabs pyaudio sounddevice numpy

Voice Agent แบบ complete pipeline

import anthropic
import whisper
import sounddevice as sd
import numpy as np
import tempfile
import wave
from elevenlabs.client import ElevenLabs
from elevenlabs import play

# Initialize clients
whisper_model = whisper.load_model("base")  # ใช้ "large-v3" สำหรับ production
anthropic_client = anthropic.Anthropic(api_key="YOUR_ANTHROPIC_KEY")
elevenlabs_client = ElevenLabs(api_key="YOUR_ELEVENLABS_KEY")

conversation_history = []

SYSTEM_PROMPT = """คุณเป็น Voice Assistant ภาษาไทยที่เป็นมิตรและช่วยเหลือได้ดี
ตอบสั้นและกระชับ ใช้ภาษาพูดที่เป็นธรรมชาติ
ห้ามใช้ bullet points, markdown หรือสัญลักษณ์พิเศษ
ตอบเป็นประโยคสมบูรณ์ที่ฟังแล้วไม่ขัดหู"""


def record_audio(duration: int = 5, sample_rate: int = 16000) -> str:
    """บันทึกเสียงและบันทึกเป็นไฟล์ชั่วคราว"""
    print(f"กำลังฟัง... ({duration} วินาที)")
    recording = sd.rec(
        int(duration * sample_rate),
        samplerate=sample_rate,
        channels=1,
        dtype=np.int16
    )
    sd.wait()
    
    temp_file = tempfile.mktemp(suffix=".wav")
    with wave.open(temp_file, "wb") as wf:
        wf.setnchannels(1)
        wf.setsampwidth(2)
        wf.setframerate(sample_rate)
        wf.writeframes(recording.tobytes())
    
    return temp_file


def speech_to_text(audio_file: str) -> str:
    """แปลงเสียงเป็น text ด้วย Whisper"""
    result = whisper_model.transcribe(audio_file, language="th")
    text = result["text"].strip()
    print(f"คุณพูดว่า: {text}")
    return text


def get_llm_response(user_text: str) -> str:
    """ส่ง text ให้ Claude และรับคำตอบ"""
    conversation_history.append({"role": "user", "content": user_text})
    
    response = anthropic_client.messages.create(
        model="claude-sonnet-4-5",
        max_tokens=300,
        system=SYSTEM_PROMPT,
        messages=conversation_history
    )
    
    answer = response.content[0].text
    conversation_history.append({"role": "assistant", "content": answer})
    print(f"AI ตอบว่า: {answer}")
    return answer


def text_to_speech(text: str) -> None:
    """แปลง text เป็นเสียงด้วย ElevenLabs"""
    audio = elevenlabs_client.text_to_speech.convert(
        voice_id="YOUR_THAI_VOICE_ID",
        text=text,
        model_id="eleven_multilingual_v2"
    )
    play(audio)


def run_voice_agent():
    """Main loop ของ Voice Agent"""
    print("Voice Agent พร้อมแล้ว! พูดเพื่อเริ่มต้น (Ctrl+C เพื่อหยุด)")
    
    while True:
        try:
            # Step 1: บันทึกเสียง
            audio_file = record_audio(duration=5)
            
            # Step 2: STT
            user_text = speech_to_text(audio_file)
            if not user_text:
                continue
            
            # Step 3: LLM
            response_text = get_llm_response(user_text)
            
            # Step 4: TTS
            text_to_speech(response_text)
            
        except KeyboardInterrupt:
            print("\nหยุด Voice Agent แล้ว")
            break


if __name__ == "__main__":
    run_voice_agent()

ทดสอบ

  1. ใส่ API keys ให้ครบ (ANTHROPIC_KEY, ELEVENLABS_KEY)
  2. รัน python voice_agent.py
  3. พูดคำถามภาษาไทย รอประมาณ 2–3 วินาที
  4. ฟัง AI ตอบกลับเป็นเสียงไทย

โค้ดนี้เป็น prototype — production จะต้องเพิ่ม VAD (Voice Activity Detection), error handling และ session management


7. Use Cases จริงที่ได้ผลในตลาดไทย

Call Center อัตโนมัติ

ธนาคารและบริษัทประกันหลายแห่งในไทยใช้ Voice AI รับสาย tier 1 (คำถามง่าย ๆ เช่น ยอดบัตร, สาขาใกล้เคียง) ก่อนโอนไปหา agent จริงเมื่อซับซ้อนขึ้น

ผลที่วัดได้จริง:

  • ลด call volume ที่ถึง agent จริง 40–60%
  • AHT (Average Handle Time) ลดลง เพราะ agent ได้รับ context จาก AI แล้ว
  • พร้อมรับสาย 24/7 โดยไม่เพิ่มต้นทุน headcount

Personal Assistant ภาษาไทย

Startup บางรายในไทยกำลังสร้าง Personal Voice Assistant ที่ช่วยจัดการ calendar, แปลภาษา, สรุปข่าว — ทำงานได้บน iOS/Android ผ่าน app

Drive-Thru อัจฉริยะ

ร้านอาหาร chain ในไทยทดลองระบบ Voice AI รับออร์เดอร์ drive-thru ที่เชื่อมกับ POS โดยตรง ลูกค้าสั่งอาหารด้วยเสียงภาษาไทยและได้รับการยืนยันออร์เดอร์

Inclusive Access สำหรับผู้ใช้ที่พิมพ์ยาก

Voice Agent ช่วยเปิด access ให้กลุ่มผู้สูงอายุและผู้พิการที่ใช้งาน keyboard ยาก — เป็น use case ที่มี social impact สูงและรัฐบาลไทยให้ความสนใจ

สำหรับ use case ด้าน AI Agent กับ SME ไทยโดยตรง อ่านเพิ่มที่ AI Agent สำหรับธุรกิจ SME ไทย


8. Latency Optimization — เป้าหมาย < 500ms

Latency คือตัวแปรที่สำคัญที่สุดใน Voice UX การตอบช้า > 2 วินาทีทำให้ผู้ใช้รู้สึกว่าระบบค้างหรือไม่ได้ยิน

วัด latency แต่ละ stage

import time

def timed_pipeline(audio_file: str):
    t0 = time.time()
    
    # STT
    user_text = speech_to_text(audio_file)
    t1 = time.time()
    print(f"STT: {(t1-t0)*1000:.0f}ms")
    
    # LLM
    response = get_llm_response(user_text)
    t2 = time.time()
    print(f"LLM: {(t2-t1)*1000:.0f}ms")
    
    # TTS
    text_to_speech(response)
    t3 = time.time()
    print(f"TTS: {(t3-t2)*1000:.0f}ms")
    print(f"Total: {(t3-t0)*1000:.0f}ms")

เทคนิคลด latency

1. Streaming TTS — เริ่มเล่นเสียงทันทีที่ได้ token แรกจาก LLM แทนรอให้ครบทั้งประโยค

# ใช้ streaming response จาก Claude
with anthropic_client.messages.stream(
    model="claude-sonnet-4-5",
    max_tokens=200,
    messages=conversation_history
) as stream:
    full_response = ""
    for text in stream.text_stream:
        full_response += text
        # ส่ง text chunk ไปยัง TTS แบบ streaming

2. VAD (Voice Activity Detection) — หยุดบันทึกทันทีที่ผู้ใช้หยุดพูด แทนรอ fixed duration

3. Parallel processing — เริ่ม TTS request ทันทีที่ LLM สร้างประโยคแรกเสร็จ

4. ใช้ LLM model เล็กลงสำหรับ simple tasks — claude-haiku หรือ gpt-4o-mini latency ต่ำกว่า 2–3 เท่า

5. Cache คำตอบซ้ำ ๆ — คำถาม FAQ เช่น "เวลาทำการ" ไม่ต้องถาม LLM ทุกครั้ง

เป้าหมาย latency จริง

ComponentTargetAchievable
STT (Google Streaming)< 200msได้จริง
LLM (Haiku/GPT-4o-mini)< 150ms TTFTได้จริง
TTS (ElevenLabs Streaming)< 100msได้จริง
Total perceived< 500msทำได้

ถ้าทำ streaming ครบทุก stage สามารถให้ผู้ใช้รู้สึกว่า AI ตอบเกือบทันทีได้


9. ข้อผิดพลาดที่พบบ่อยและวิธีแก้

1. STT จับเสียงผิดเพราะ background noise

ปัญหา: Whisper หรือ Google STT ได้ข้อความผิดพลาดเมื่อมีเสียงรบกวนรอบข้าง

วิธีแก้:

  • ใช้ VAD (Voice Activity Detection) เช่น silero-vad เพื่อตัดเสียงรบกวนก่อนส่ง STT
  • เพิ่ม noise reduction ด้วย noisereduce library
  • ปรับ compression_ratio_threshold ใน Whisper ให้ต่ำลงเพื่อ reject input คุณภาพต่ำ

2. TTS ออกเสียงคำทับศัพท์ผิด

ปัญหา: คำเช่น "AI", "CPU", "GPU" ถูกอ่านออกมาแปลกๆ ในภาษาไทย

วิธีแก้:

  • เพิ่ม pre-processing ก่อนส่ง TTS เพื่อแปลงคำทับศัพท์เป็นการออกเสียงภาษาไทย เช่น "AI" → "เอไอ"
  • ใช้ pronunciation dictionary สำหรับคำศัพท์เทคนิคที่พบบ่อยในระบบของคุณ
  • ElevenLabs รองรับ SSML ที่ช่วย control การออกเสียงได้ละเอียดขึ้น

3. LLM ตอบยาวเกินไปสำหรับ Voice

ปัญหา: LLM ตอบเป็นรายการ bullet point หรือตอบยาวมากจนฟังไม่รู้เรื่องทาง Voice

วิธีแก้:

  • ระบุใน System Prompt อย่างชัดเจนว่า "ตอบสั้น กระชับ ไม่เกิน 2-3 ประโยค ห้ามใช้ bullet point"
  • เพิ่ม post-processing ตัด response ที่ยาวเกิน token limit ที่กำหนด
  • ใช้ max_tokens ต่ำ เช่น 150-300 tokens สำหรับ Voice response

4. Latency สูงเกินไป

ปัญหา: ระบบใช้เวลา 3-5 วินาทีกว่าจะตอบ ทำให้ UX แย่

วิธีแก้:

  • Switch จาก Whisper local ไปใช้ Google STT Streaming
  • ใช้ LLM model เล็กลง (Haiku หรือ GPT-4o-mini) สำหรับ conversational turns ที่ไม่ซับซ้อน
  • Implement streaming TTS — เริ่มเล่นเสียงก่อนที่ LLM จะตอบครบ

5. Session ปะปนกัน

ปัญหา: ใน multi-user environment, conversation history จากผู้ใช้คนหนึ่งไปปรากฏกับอีกคน

วิธีแก้:

  • ใช้ session_id แบบ UUID สำหรับแต่ละ caller
  • เก็บ history ใน Redis หรือ database โดย key ด้วย session_id
  • กำหนด session timeout (เช่น 5 นาที) เพื่อ clear history อัตโนมัติ

10. ขั้นตอนถัดไป — จาก Prototype สู่ Production

เมื่อ prototype รันได้แล้ว สิ่งที่ต้องทำก่อน production:

Infrastructure:

  • Host บน cloud ที่ใกล้ผู้ใช้ (Asia-Pacific region) เพื่อ latency ต่ำ
  • ใช้ WebSocket แทน HTTP polling สำหรับ real-time streaming
  • เพิ่ม load balancer รองรับ concurrent calls

Monitoring:

  • วัด latency แต่ละ stage แบบ real-time
  • Track STT accuracy ด้วยการ log transcription และให้ agent review
  • Monitor LLM cost per conversation เพื่อ optimize

Safety:

  • เพิ่ม content filtering ป้องกัน prompt injection ผ่าน Voice
  • Implement confidence threshold — ถ้า STT confidence ต่ำ ให้ถามซ้ำแทนดำเนินการ
  • มี fallback ชัดเจนเมื่อ AI ตอบไม่ได้ → โอนไปหาคนจริง

การทดสอบ:

  • ทดสอบกับ user จริงในสภาพแวดล้อมจริง ไม่ใช่แค่ controlled setting
  • ทดสอบกับสำเนียงที่หลากหลาย — ไทยกลาง, เหนือ, ใต้, อีสาน
  • Stress test ด้วย concurrent calls เพื่อหา bottleneck

สรุป — เริ่มต้น Voice Agent ภาษาไทยของคุณ

Voice Agent ภาษาไทยไม่ใช่เรื่องของ research lab อีกต่อไป — เครื่องมือพร้อม API พร้อม และตลาดไทยต้องการ

Checklist เริ่มต้น:

  1. เลือก STT — Whisper สำหรับ prototype, Google STT สำหรับ production
  2. เลือก LLM — Claude Sonnet หรือ GPT-5 mini ขึ้นอยู่กับ use case
  3. เลือก TTS — ElevenLabs สำหรับคุณภาพสูง, Botnoi สำหรับ Thai-native
  4. สร้าง pipeline แบบ streaming เพื่อ latency ต่ำ
  5. เพิ่ม Memory และ session management สำหรับ production

ถ้าคุณอยากเรียนรู้การสร้าง AI Agent ขั้นสูงในรูปแบบ workshop จริง มีทั้ง coding, deployment และ optimization — ดูหลักสูตรได้ที่ AI Unlocked Pricing

สำหรับคนที่อยู่ในเชียงใหม่ ยังมี workshop แบบ in-person ที่ AI Unlocked เชียงใหม่ 2026


บทความที่เกี่ยวข้อง:

เขียนโดย

AI Unlocked Team