Abogen - สร้างหนังสือเสียงจาก EPUB, PDF และข้อความ
(github.com/denizsafak)- Abogen เป็นเครื่องมือโอเพนซอร์สที่แปลงไฟล์ ePub, PDF และข้อความให้เป็น หนังสือเสียงคุณภาพสูง ได้อย่างง่ายดาย
- ระหว่างกระบวนการแปลง ระบบยังสร้าง คำบรรยายที่ซิงก์กับเสียง (subtitle) ให้อัตโนมัติ
- มีฟีเจอร์หลากหลาย เช่น การมิกซ์ เสียงที่ปรับแต่งเอง, ฟอร์แมตการเข้ารหัส, การแบ่งบท, และการประมวลผลแบบกลุ่ม (queue mode)
- ใช้ เอนจินสังเคราะห์เสียง Kokoro-82M รุ่นล่าสุด เพื่อรองรับ TTS ที่เป็นธรรมชาติและหลายภาษา
- เมื่อเทียบกับโปรเจกต์อื่น มีจุดเด่นด้าน GUI ที่ใช้งานเข้าใจง่าย, การจัดการโฟลเดอร์แยกตามโปรเจกต์ และการจัดการเมทาดาทาอัตโนมัติ
ภาพรวมและความสำคัญของ Abogen
- Abogen เป็นเครื่องมือโอเพนซอร์สสำหรับแปลงข้อความเป็นเสียง (TTS) ที่สามารถเปลี่ยนไฟล์ข้อความ (เช่น ePub, PDF, .txt) ให้เป็น หนังสือเสียงที่ฟังเป็นธรรมชาติ ได้อย่างรวดเร็ว
- มีฟังก์ชันครบถ้วน เช่น อินเทอร์เฟซที่ใช้งานง่าย, การประมวลผลหลายไฟล์พร้อมกัน, การมิกซ์เสียงผู้ใช้, ฟอร์แมตเอาต์พุตหลากหลาย, การจัดการบท และการรองรับเมทาดาทา
- ต่างจากโปรเจกต์โอเพนซอร์สอื่นตรงที่สามารถสร้างเสียงคุณภาพสูงได้ง่ายด้วย การใช้งานที่ไม่ซับซ้อน โดยเฉพาะ TTS ที่ใช้ Kokoro-82M พร้อมคำบรรยาย
- ขั้นตอนติดตั้งเริ่มต้นและการตั้งค่าสภาพแวดล้อม Python ที่ซับซ้อนถูกทำให้เป็นอัตโนมัติ จึงใช้งานได้ง่ายแม้สำหรับนักพัฒนามือใหม่
- โดยเฉพาะอย่างยิ่ง การจัดการบทและเมทาดาทาแยกตามโปรเจกต์, สภาพแวดล้อม GUI และฟีเจอร์เสียงแบบกำหนดเอง ถูกมองว่าเป็นข้อได้เปรียบในการแข่งขันในอุตสาหกรรม
สรุปคุณสมบัติหลัก
- แปลง ePub, PDF และไฟล์ข้อความเป็นเสียงภายในไม่กี่วินาทีด้วย การแปลงข้อความเป็นเสียง (TTS)
- สร้าง คำบรรยายที่ซิงก์กัน (subtitles) อัตโนมัติ รองรับรูปแบบที่เสียงและคำบรรยายตรงกันอย่างสมบูรณ์
- ใช้ Voice Mixer เพื่อผสมโมเดลเสียงหลายแบบและสร้างโปรไฟล์เสียงเฉพาะตัว
- ฟีเจอร์ queue mode รองรับการประมวลผลหลายไฟล์แบบชุด พร้อมคงค่าตั้งแยกสำหรับแต่ละไฟล์
- สร้าง chapter marker / เมทาดาทาอัตโนมัติ และมีฟังก์ชันจัดการโฟลเดอร์โปรเจกต์
- ฟอร์แมตเอาต์พุตหลากหลาย: รองรับ WAV, FLAC, MP3, OPUS, M4B และคำบรรยายแบบ SRT/ASS เป็นต้น
- รองรับภาษาหลัก: อังกฤษแบบอเมริกัน/อังกฤษ, สเปน, ฝรั่งเศส, ฮินดี, อิตาลี, ญี่ปุ่น, โปรตุเกส, จีน เป็นต้น
- มอบคุณภาพเสียงสูงและการออกเสียงที่เป็นธรรมชาติบนพื้นฐานของ เอนจิน TTS Kokoro-82M
- รองรับทั้ง GUI และบรรทัดคำสั่ง และสามารถใช้งานผ่าน Docker container ได้
สรุปรายละเอียดฟีเจอร์ของ Abogen
#การเริ่มต้นและพื้นหลังการติดตั้ง
- เครื่องมือ TTS เดิม ๆ มักมีข้อจำกัดด้านการติดตั้ง, การตั้งค่าสภาพแวดล้อม, คุณภาพ, การปรับแต่ง และการจัดการหลายไฟล์
- Abogen ถูกสร้างขึ้นเพื่อให้แม้แต่มือใหม่ก็เข้าถึงฟีเจอร์ขั้นสูงอย่างการแปลงข้อความเป็นเสียง, การสร้างคำบรรยาย และการมิกซ์เสียง ได้ง่ายผ่าน อินเทอร์เฟซที่เรียบง่ายแต่ทรงพลัง
- ใช้งานได้บนหลายระบบปฏิบัติการ (Windows, Linux, macOS) และรองรับการจัดเตรียมสภาพแวดล้อมในตัว/ติดตั้งอัตโนมัติโดยไม่จำเป็นต้องติดตั้ง Python ล่วงหน้า
#วิธีใช้งานหลัก
- สามารถ ลากแล้ววาง ไฟล์ ePub, PDF หรือข้อความ หรือใช้เอดิเตอร์ในตัวก็ได้
- การตั้งค่า: เลือกได้อย่างละเอียดทั้งความเร็วในการอ่าน, เสียง (โมเดล·เพศ·ภาษา), รูปแบบคำบรรยาย (แยกตามประโยค·ตามคำ), ฟอร์แมตเอาต์พุตเสียง·คำบรรยาย, พาธเอาต์พุต เป็นต้น
- เพียงกดปุ่มเริ่มแปลง ก็จะได้ผลลัพธ์ทันที
#การสาธิตจริง
- แม้ใช้ GPU สเปกไม่สูง ก็สามารถสร้างเสียงยาว 3 นาที 28 วินาทีจากข้อความประมาณ 3,000 ตัวอักษรได้ภายใน 11 วินาที
- ความเร็วในการประมวลผลจะแตกต่างกันตามสเปกฮาร์ดแวร์
#ตัวเลือกการตั้งค่า
- วิธีป้อนข้อมูล: รองรับการลากแล้ววาง, เอดิเตอร์ในตัว และการจัดการคิวเพื่อประมวลผลหลายไฟล์พร้อมกัน
- ความเร็วในการอ่าน: ปรับละเอียดได้ตั้งแต่ 0.1x ~ 2.0x
- การเลือกเสียงและการพรีวิว: เลือกโมเดลตามภาษา·เพศ และกำหนดโปรไฟล์เสียงของตัวเองผ่าน custom mixer
- การสร้างคำบรรยาย: ทำคำบรรยายอัตโนมัติตามประโยค, ตามเครื่องหมายจุลภาค หรือทุก n คำ
- เอาต์พุตเสียง: WAV, FLAC, MP3, OPUS, M4B (รวมบท)
- ฟอร์แมตคำบรรยาย: รองรับการปรับแต่งเช่น SRT, ASS
- การจัดการบทและโปรเจกต์: บันทึกเป็นโฟลเดอร์โปรเจกต์พร้อมเสียงแยกตามบท, ไฟล์รวม, และเมทาดาทา
- มีตัวเลือก UI หลากหลาย เช่น ธีม, log, shortcut เป็นต้น
#Voice Mixer
- สามารถผสมโมเดลเสียงหลายตัวด้วย การปรับค่าน้ำหนัก เพื่อสร้าง บันทึก และนำเสียงเฉพาะตัวกลับมาใช้ซ้ำได้
- สามารถพรีวิวและนำผลลัพธ์จากการมิกซ์เสียงไปใช้เป็นโปรไฟล์เสียงได้
#Queue Mode
- คงค่าตั้งแยกสำหรับแต่ละไฟล์ และรองรับ การแปลงข้อความและ eBook หลายรายการพร้อมกันโดยอัตโนมัติ
- เมื่อเพิ่มแต่ละไฟล์ลงคิว ระบบจะบันทึกค่าตั้ง ณ เวลานั้นแยกไว้ ไม่ขึ้นกับการเปลี่ยนค่าหลักภายหลัง
#Chapter Marker / เมทาดาทา
- แทรกแท็กแบ่งบทโดยอัตโนมัติ
- สามารถแทรกแท็ก `` ได้ด้วยตนเองเช่นกัน
- หากเกิดข้อผิดพลาด จะสะดวกต่อการประมวลผลซ้ำเฉพาะบทนั้นอย่างรวดเร็ว
- เพิ่มข้อมูลอย่างชื่อเรื่อง, ผู้แต่ง, ปี เป็นต้น ผ่าน แท็กเมทาดาทา เพื่อให้แอปหนังสือเสียงแสดงข้อมูลได้
- สามารถเพิ่มได้ที่ส่วนต้นของไฟล์ข้อความ
#ภาษาที่รองรับ
- รองรับหลายภาษาผ่านเอนจิน Kokoro-82M
- อังกฤษ (สหรัฐฯ/สหราชอาณาจักร), สเปน, ฝรั่งเศส, ฮินดี, อิตาลี, ญี่ปุ่น, โปรตุเกสแบบบราซิล, จีน เป็นต้น
- คำบรรยายสำหรับภาษาอื่น ๆ สามารถขอเพิ่มได้ในอนาคตเนื่องจากข้อจำกัดทางเทคนิคของเอนจิน
#เอาต์พุตและการนำไปใช้
- แนะนำให้ใช้มีเดียเพลเยอร์ขั้นสูงอย่าง MPV ซึ่งรองรับคำบรรยายแบบซิงก์
- รองรับการรันเซิร์ฟเวอร์บน Docker
#จุดแตกต่างจากโปรเจกต์ที่คล้ายกัน
- Abogen มอบความสะดวกระดับสูงสุดด้วย GUI แบบ standalone และความสามารถในการปรับแต่ง, การจัดการโฟลเดอร์แยกตามโปรเจกต์, ระบบอัตโนมัติสำหรับบทและเมทาดาทา, การประมวลผลคิว และการมิกซ์เสียง
- มีความคล้ายกับ audiblez, autiobooks, pdf-narrator, epub_to_audiobook, ebook2audiobook แต่จุดต่างคือความใช้งานง่ายของ GUI, เอนจิน TTS ขั้นสูง, และการซิงก์บท/คำบรรยาย
#โรดแมปและการมีส่วนร่วม
- มีแผนเพิ่ม OCR (รู้จำเอกสาร) และเสริม GUI หลายภาษา
- ทุกคนสามารถ fork แล้วมีส่วนร่วมกับโอเพนซอร์สได้ ไม่ว่าจะเพิ่มฟีเจอร์หรือแก้บั๊ก
#เครดิตด้านเทคนิคและไลเซนส์
- ใช้เทคโนโลยีโอเพนซอร์สจากพาร์ตเนอร์ต่าง ๆ เช่น Kokoro-82M TTS, GUI บนพื้นฐาน PyQt และการเชื่อมต่อกับ EbookLib
- ใช้ไลเซนส์ MIT (อนุญาตให้ใช้งานเชิงพาณิชย์และดัดแปลงได้อย่างอิสระ) ส่วนเอนจิน Kokoro ใช้ไลเซนส์ Apache-2.0
#ข้อควรระวังและข้อจำกัด
- ฟีเจอร์คำบรรยายแบบซิงก์ปัจจุบันรองรับเฉพาะภาษาอังกฤษเท่านั้น (การรองรับภาษาอื่นต้องรอการพัฒนาในเอนจิน Kokoro)
- บางฟีเจอร์มีข้อจำกัด (เช่น การพรีวิวเสียงภายใน Docker)
- สำหรับคู่มือการติดตั้งและการตั้งค่าสภาพแวดล้อมโดยละเอียด โปรดดูเอกสารทางการ
1 ความคิดเห็น
ความเห็นจาก Hacker News
ฉันนึกภาพไปป์ไลน์ที่รับหนังสือจาก Calibre-Web แปลงเป็นเวอร์ชันเสียงผ่าน Abogen แล้วนำไปให้บริการต่อด้วย Audiobookshelf ซึ่งดูเหมือนจะเป็นโซลูชันที่ดีมากสำหรับผู้พิการทางการได้ยินด้วย ดู Calibre-Web และ audiobookshelf
การใช้เครื่องมือนี้ทำหนังสือที่เป็นข้อความให้กลายเป็นออดิโอบุ๊กเพื่อฟังเองส่วนตัวนั้นโอเค แต่ถ้าให้นักเขียนนำมันไปทำไฟล์สำหรับแจกจ่ายถือว่าเสี่ยงมาก นักเขียนอิสระทุกวันนี้ก็ลำบากมากอยู่แล้วในการโปรโมตงานของตัวเอง และช่วงนี้แค่ผู้อ่านเห็นร่องรอยว่าใช้ AI ก็มักจะเลิกสนใจทันที สำหรับฉันเลยเริ่มจ้างนักพากย์ที่แสดงได้ดีแต่ไม่ได้ใช้ภาษาอังกฤษเป็นภาษาแม่ หรือนักพากย์ที่ที่บ้านใช้ภาษาอื่นด้วย บางครั้งก็ขอให้ใส่สำเนียงให้ชัดขึ้นอีกหน่อย ซึ่งช่วยให้แยกจาก AI ได้ และยังเพิ่มเสน่ห์ให้หนังสือสำหรับคนที่อยากได้ประสบการณ์ใหม่ ๆ ด้วย ก่อนหน้านี้ฉันเคยประหลาดใจมากตอนออดิชันนักแสดงจากแถบเมดิเตอร์เรเนียนที่อัดออดิโอบุ๊กได้มีชีวิตชีวามาก
ฉันสงสัยว่านี่เป็นแค่การแปลงข้อความเป็นเสียง หรือมันทำออกมาได้เหมือนออดิโอบุ๊กจริง ๆ กันแน่ ออดิโอบุ๊กที่ดีมักมีนักพากย์ที่ให้เสียงตัวละครแตกต่างกัน และถ่ายทอดสำเนียงหรือภาษาถิ่นต่างกันด้วย สิ่งพวกนี้อาจพอทำได้ไม่กี่ประโยคด้วยเครื่องมืออย่าง chatgpt แต่ถ้าเป็นออดิโอบุ๊กยาว 8–20 ชั่วโมงทั้งเล่มคงไม่ง่าย ในระดับปัจจุบันฉันยังคิดว่าการแปลง epub ให้กลายเป็นออดิโอบุ๊กระดับแนวหน้ายังมีอุปสรรคพื้นฐานอยู่ อยากรู้ว่าฉันพลาดอะไรไปหรือเปล่า
เครื่องมือนี้ต้องมี
pipตอนรันแอป abogen ดังนั้นต้องใช้ในสภาพแวดล้อมที่ใช้pipได้ เริ่มได้ด้วยคำสั่งuv tool run abogenแต่จะค้างตอนติดตั้งโมเดล พอลองuv venv && uv pip install pip && source .venv/bin/activate && abogenก็พบว่ารันได้ปกติ GUI ที่แพ็กมาแล้วก็ทำได้ดี UI สำหรับเลือกหน้าหรือส่วนต่าง ๆ จากไฟล์ PDF ก็ดี และบนแล็ปท็อป GTX 1650 ของฉันก็ทำงานได้เร็ว ผลลัพธ์ออกมาเป็นไฟล์เสียง .ogg กับไฟล์ซับไตเติล .ass ซึ่งพอเปิดด้วย mpv ก็ฟังไปอ่านไปในเทอร์มินัลได้เลย ข้อเสียอย่างหนึ่งคือการขึ้นบรรทัดใหม่จาก PDF ต้นฉบับยังติดมาด้วย ทำให้บางประโยคถูกตัดกลางประโยคยาว ๆ จนรบกวนความเข้าใจ แต่ถ้าเปิดฟังก์ชันข้าม single newline ก็ช่วยได้ชัดเจนฉันชอบออดิโอบุ๊กมาก แต่เรื่องผู้บรรยายนั้นเรื่องมากมาก ออดิโอบุ๊กหลายเล่มฉันฟังไปครึ่งทางแล้วต้องเลิกเพราะนักพากย์ไม่เข้ากับฉัน ดังนั้นกว่าบริการแบบนี้จะใช้งานได้จริงสำหรับฉันคงอีกนาน
น่าจะใช้กับหนังสือที่มีโค้ด แผนภาพ รูปภาพ ฯลฯ นอกเหนือจากข้อความได้ไม่ดีนัก (ซึ่งก็เป็นเรื่องที่เข้าใจได้) ฉันเลยสงสัยว่ามีโอเพนซอร์สนิวรัลเน็ตเวิร์กที่รับหน้า PDF แล้วแปลงให้เป็นเวอร์ชัน "ร้อยแก้วล้วน" ได้ไหม เช่น ถ้าเป็นหน้าที่มีภาพกับข้อความอยู่ด้วยกัน ก็สามารถถ่ายทอดเนื้อหาหรือคำบรรยายของภาพออกมาเป็นข้อความได้
ฉันเคยใช้ Kokoro TTS กับบล็อกหรือบทความสั้น ๆ แต่ผลลัพธ์ยังไม่ถึงที่หวัง ตอนนี้ Gemini 2.5 Flash TTS ทำได้ดีกว่ามากและโควต้าฟรีก็ใจกว้างกว่า (10 นาทีต่อการสร้าง, 90 นาทีต่อวัน) สำหรับงานสั้น ๆ ปัญหาเรื่องความสม่ำเสมอของเสียงอาจไม่ชัด แต่ถ้าเป็นระดับทั้งเล่มของหนังสือ นี่จะเป็นปัญหาแน่นอน
ฉันลองใช้เครื่องมือนี้ทำหนังสือปรัชญาให้เป็นออดิโอบุ๊กเพื่อเพิ่มการเข้าถึง แต่เจอปัญหาสำคัญคือ ถ้าประโยคที่ป้อนเข้า Kokoro ยาวเกินไป คำหรือช่วงท้ายประโยคจะถูกข้ามไปหรือเสียงพร่า abogen จะตัดข้อความเป็นระดับประโยคก่อนส่งเข้าไป แต่ถ้าประโยคยาวก็ยังส่งเข้าหา Kokoro แบบเดิม ทำให้ออดิโอบุ๊กออกมาใช้งานไม่ได้เลย ดังนั้นฉันเลยกำลังทำแอป GUI ด้วย tkinter ของตัวเอง โดยใช้ nltk กับ regex แบ่งให้ละเอียดกว่านี้
ส่วนตัวฉันหวังว่าจะมีโซลูชันที่ทำ PDF ให้กลายเป็น ePub ที่จัดระเบียบดีได้สักที
ฉันเคยใช้ Kokoro TTS คู่กับ audiblez สำหรับ CLI แม้จะเป็นโมเดลเล็กแต่ก็เร็วและคุณภาพเสียงน่าประทับใจ อย่างไรก็ตามยังมีจุดน่าเสียดายอยู่บ้าง: a) มันแยกไม่ออกระหว่างจุดจบประโยคกับจุดในคำย่ออย่าง "Mr." หรือ "Mrs." เลยเกิดจังหวะหยุดแปลก ๆ b) จัดการเครื่องหมายจุดไข่ปลา (...) ได้ไม่ดี c) การออกเสียงคำจะเหมือนเดิมเสมอแม้บริบทต่างกัน