Ollama 0.40.11 พูดได้แล้ว — เพิ่ม text-to-speech บน macOS พร้อม endpoint /v1/audio/speech แบบ OpenAI ใช้โมเดล Phonon ของ Gradium ขนาด 31M (Apache-2.0) แต่รุ่น 40M หลายภาษาเป็น non-commercial และยังไม่มีภาษาไทย
Ollama 0.40.11 (tag เมื่อ 23 ต.ค. 23:15 UTC หรือเช้า 24 ต.ค. ตามเวลาไทย) เพิ่มความสามารถใหม่ที่ release notes เขียนไว้สั้น ๆ ว่า “Ollama can now generate speech on macOS.” คำสั่ง ollama run อ่านข้อความหรือคำตอบของแชตโมเดลออกเสียงได้ทันทีระหว่างที่เสียงยังสร้างไม่เสร็จ และแอปสตรีมเสียงได้ผ่าน endpoint /v1/audio/speech ที่เข้ากันได้กับ OpenAI
ollama run phonon "Hello from Ollama."
ที่ผ่านมา Ollama ถูกใช้กับแชต, vision และ embedding เป็นหลัก การมีฝั่ง “พูด” เพิ่มเข้ามาทำให้ voice assistant ที่รันในเครื่องเหลือชิ้นส่วนที่ต้องหาเองน้อยลง เป็นเหตุผลที่เรื่องนี้น่าสนใจสำหรับนักพัฒนา
Phonon: โมเดล TTS ขนาด 31–40M จาก Gradium
โมเดลที่ Ollama ใช้คือ Phonon ของ Gradium (คนละตัวกับ Phonon-2 ที่เป็นโมเดลถอดเสียงของ Fermion Research ซึ่งเราเคยเขียนถึง) repo บน Hugging Face ถูกสร้างเมื่อ 19 ต.ค. และ runtime xn-ptts ออก v0.4.0 เมื่อ 20 ต.ค. ตาม model card ตัวโมเดลต่อยอดจาก Pocket TTS และ Mimi codec ของ Kyutai ใช้ flow-matching transformer ทำนาย audio latent ทีละเฟรม 80 ms แล้วให้ decoder ของ Mimi แปลงเป็นเสียง 24 kHz mono
| แท็กใน Ollama | ภาษา / ขนาด | หน่วยความจำบน M5 Max | ไลเซนส์ |
|---|---|---|---|
phonon (31m-en) | อังกฤษ, 31M | 121 MB | Apache-2.0 |
phonon:40m-en | อังกฤษ, 40M | 141 MB | CC BY-NC 4.0 |
phonon:fr / de / es / pt | ฝรั่งเศส/เยอรมัน/สเปน/โปรตุเกส, 40M | 141 MB | CC BY-NC 4.0 |
phonon:multilingual | ทั้ง 5 ภาษา, 40M | 141 MB | CC BY-NC 4.0 |
จุดที่ต้องระวังคือ มีแค่รุ่น 31M ภาษาอังกฤษเท่านั้นที่ใช้เชิงพาณิชย์ได้ ส่วนรุ่น 40M ทุกตัวเป็น CC BY-NC 4.0 และบน Hugging Face เป็นแบบ gated ด้วย ไฟล์น้ำหนัก q8 มีขนาดแค่ 64.5–74.6 MB มีเสียงให้เลือกประมาณ 100 เสียงใน repo gradium/phonon-voices (เช่น Zoey, Easton, Freya) ส่วนการโคลนเสียงและออกแบบเสียงต้องทำผ่าน Gradium Studio
ด้านคุณภาพ Gradium อ้างว่าในทุกภาษา โมเดลตระกูล Phonon ได้อันดับหนึ่งทั้ง Elo จากการฟังเทียบแบบ blind และค่า WER โดยเทียบกับ Kokoro, Magpie และ NeuTTS ตัวอย่างภาษาอังกฤษ: phonon-31m-en ได้ Elo 2098 และ WER บนชุดประโยคยาก (ตัวเลข วันที่ รหัส) 1.5% ส่วน Kokoro ได้ 2043 และ 3.5% ควรจำไว้ว่าตัวเลขทั้งหมดนี้เป็นผลวัดของ Gradium เอง เรายังไม่พบผลวัดอิสระ
ใช้งานผ่าน API แบบ OpenAI
ตามเอกสาร speech ของ Ollama โค้ดที่เคยเรียก audio.speech ของ OpenAI แค่เปลี่ยน base_url:
from openai import OpenAI
client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
with client.audio.speech.with_streaming_response.create(
model="phonon", voice="default",
input="Hello from Ollama.", response_format="wav",
) as r:
r.stream_to_file("speech.wav")
ข้อจำกัดที่เอกสารระบุไว้ชัด:
- รับ
inputได้สูงสุด 4,096 ตัวอักษรต่อคำขอ (ถ้าใช้ollama runจะตัดข้อความยาวที่ย่อหน้าและประโยคให้เอง) - ออกได้แค่
wav(16-bit, 24 kHz) และpcmถ้าส่ง option ที่โมเดลไม่รองรับ เช่น ฟอร์แมตอื่นspeedหรือinstructionsจะได้ error 400 ไม่ใช่ถูกเพิกเฉยเงียบ ๆ - ราคา ตัวเลข อีเมล และ URL จะถูกสะกดเป็นคำก่อนอ่าน แต่วันที่แบบตัวเลข เช่น
10/23จะอ่านตามตัวอักษร - ต่อ pipe จากแชตโมเดลได้ เช่น
ollama run gemma4 "..." | ollama run phononเสียงจะเริ่มเล่นหลังประโยคแรกหรือสองประโยคแรก - ถ้า redirect output ไปที่ไฟล์ จะได้ WAV แทนการเล่นเสียง จึงใช้บนเซิร์ฟเวอร์ที่ไม่มีลำโพงได้
ข้อควรรู้เรื่องแพลตฟอร์ม: หน้าโมเดลบน ollama.com ระบุว่าแพ็กเกจ Phonon ต้องใช้ Apple Silicon และ Ollama 0.40.9 ขึ้นไป ผู้ใช้ Linux/Windows จึงยังรันโมเดลนี้บนเครื่องตัวเองไม่ได้ แต่ถ้ามี Mac เป็นเซิร์ฟเวอร์ ก็ตั้ง OLLAMA_HOST ชี้ไปที่ Mac แล้วเล่นเสียงจากเครื่องที่เรียกคำสั่งได้ ใครต้องการรันข้ามแพลตฟอร์มตอนนี้ใช้ runtime ของ Gradium เองแทน (uvx ptts, npm phonon-tts, Rust, Android, Docker server แบบ OpenAI-compatible)
ใน release เดียวกัน Ollama ยังเพิ่ม d3 โมเดลสำหรับตัดสินใจจาก vLLM Semantic Router ขนาด 2B/4B/9B/27B ใช้จัดหมวด ตอบใช่/ไม่ใช่ หรือให้คะแนนตัวเลือกพร้อมความน่าจะเป็น
มุมมอง AI Curator
เรื่องที่สำคัญไม่ใช่ตัวโมเดล แต่คือการที่ TTS กลายเป็นส่วนหนึ่งของสแตก local แบบมาตรฐาน endpoint ที่เข้ากันได้กับ OpenAI ทำให้แอปที่เขียนไว้กับคลาวด์ย้ายมารันในเครื่องได้โดยแก้แค่บรรทัดเดียว และโมเดลขนาด 121 MB เบาจนแทบไม่ต้องคิดเรื่องทรัพยากร สำหรับงานอย่าง screen reader ในองค์กร ระบบที่ห้ามส่งข้อความออกนอกเครื่อง หรือ prototype ของ voice agent ถือว่าลดขั้นตอนไปได้มาก
แต่สำหรับผู้อ่านไทย ข้อจำกัดชัดเจน Phonon ยังไม่มีภาษาไทย และ model card เตือนว่าถ้าป้อนภาษาอื่นจะออกเสียงผิด ตอนนี้จึงเหมาะกับงานภาษาอังกฤษ หรือใช้เป็นโครงไว้ก่อนแล้วค่อยเปลี่ยนโมเดลเมื่อมี TTS ภาษาไทยแบบเปิดที่ดีพอ ข้อดีของการผูกกับ API มาตรฐานคือวันที่โมเดลไทยมาถึง โค้ดฝั่งแอปไม่ต้องแก้
อีกเรื่องที่ต้องย้ำเพราะมักพลาดกันคือไลเซนส์: รุ่นที่เสียงดีที่สุดตามตาราง (40M) ห้ามใช้เชิงพาณิชย์ ถ้าจะทำผลิตภัณฑ์ ให้ล็อกแท็กเป็น phonon:31m-en ให้ชัด อย่าใช้ phonon:multilingual แค่เพราะชื่อดูครอบคลุมกว่า และการที่ release นี้รองรับแค่ Apple Silicon ก็เป็นสัญญาณว่าฟีเจอร์ใหม่ของ Ollama มักลง Mac ก่อน ทีมที่ deploy บน Linux GPU ควรรอดูรอบถัดไป
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog