Skip to content

Open Source Text-to-Speech (TTS) ภาษาไทย — เครื่องมือสร้างเสียงพูดจากข้อความด้วยเทคนิค Flow Matching

License

VYNCX/F5-TTS-THAI

Repository files navigation

F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching. Support For Thai language.

python arXiv

Text-to-Speech (TTS) ภาษาไทย — เครื่องมือสร้างเสียงพูดจากข้อความด้วยเทคนิค Flow Matching ด้วยโมเดล F5-TTS

โมเดล Finetune : VIZINTZOR/F5-TTS-THAI (เหมาะสำหรับการอ่านออกเสียงภาษาไทยได้ดี แต่อาจจะข้ามบางคำหรือมีคำซ้ำ)

โมเดล Finetune V2 (IPA) : VIZINTZOR/F5-TTS-TH-V2 (เหมาะสำหรับลดข้อผิดพลาดการอ่านข้ามคำหรือซ้ำคำ)

  • การอ่านข้อความยาวๆ หรือบางคำ ยังไม่ถูกต้อง

การติดตั้ง

ก่อนเริ่มใช้งาน ต้องติดตั้ง:

  • Python (แนะนำเวอร์ชัน 3.10 ขึ้นไป)
  • CUDA แนะนำ CUDA version 11.8
  pip install f5-tts-th

หรือ

git clone https://github.com/VYNCX/F5-TTS-THAI.git
cd F5-TTS-THAI
python -m venv venv
call venv/scripts/activate
pip install git+https://github.com/VYNCX/F5-TTS-THAI.git

#จำเป็นต้องติดตั้งเพื่อใช้งานได้มีประสิทธิภาพกับ GPU
pip install torch==2.3.0+cu118 torchaudio==2.3.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

หรือ รันไฟล์ install.bat เพื่อติดตั้ง

การใช้งาน

🐍 ใช้งานกับ Python Package

from f5_tts_th.tts import TTS
import soundfile as sf

tts = TTS(model="v1") 
# โมเดลมี 2 เวอร์ชัน 
# "v1" จะออกเสียงภาษาไทยได้ดีกว่า 
# "v2" จะลดข้อผิดพลาดการอ่านของคำ โดยใช้ IPA

wav = tts.infer(
    ref_audio="YOUR_AUDIO_PATH",
    ref_text="ได้รับข่าวคราวของเราที่จะหาที่มันเป็นไปที่จะจัดขึ้น.", 
    gen_text="สวัสดีครับ นี่คือเสียงพูดภาษาไทย.", 
    step=32, 
    cfg=2.0, 
    speed=1.0
)

sf.write("test.wav", wav, 24000)

สามารถรันไฟล์ app-webui.bat เพื่อใช้งานได้

  python src/f5_tts/f5_tts_webui.py

หรือ

  f5-tts_webui

ใช้งานบน Google Colab

ตัวอย่าง WebUI
  • Text To Speech
    Example_Gradio#3

  • Multi Speech
    Example_Gradio#4

ฝึกอบรม และ Finetune

ใช้งานบน Google Colab Finetune หรือ

ติดตั้ง

  git clone https://github.com/VYNCX/F5-TTS-THAI.git
  cd F5-TTS-THAI
  pip install -e .

เปิด Gradio

  f5-tts_finetune-gradio

ตัวอย่างเสียง

  • เสียงต้นฉบับ
  • ข้อความ : ได้รับข่าวคราวของเราที่จะหาที่มันเป็นไปที่จะจัดขึ้น.
ref_gen_1.mov
  • เสียงที่สร้าง 1(ข้อความเดียวกัน)
  • ข้อความ : ได้รับข่าวคราวของเราที่จะหาที่มันเป็นไปที่จะจัดขึ้น.
tts_gen_1.mov
  • เสียงที่สร้าง 2(ข้อความใหม่)
  • ข้อความ : ฉันชอบฟังเพลงขณะขับรถ เพราะช่วยให้รู้สึกผ่อนคลาย
tts_gen_2.mov

คำแนะนำ

  • สามารถตั้งค่า "ตัวอักษรสูงสุดต่อส่วน" หรือ max_chars เพื่อลดความผิดพลาดการอ่าน แต่ความเร็วในการสร้างจะช้าลง สามารถปรับลด NFE Step เพื่อเพิ่มความเร็วได้.
  • อย่าลืมเว้นวรรคประโยคเพื่อให้สามารถแบ่งส่วนในการสร้างได้.
  • สำหรับ ref_text หรือ ข้อความตันฉบับ แนะนำให้ใช้เป็นภาษาไทยหรือคำอ่านภาษาไทยสำหรับเสียงภาษาอื่น เพื่อให้การอ่านภาษาไทยดีขึ้น เช่น Good Morning > กู้ดมอร์นิ่ง.
  • สำหรับเสียงต้นแบบ ควรใช้ความยาวไม่เกิน 8 วินาที ถ้าเป็นไปได้ห้ามมีเสียงรบกวน.
  • สามารถปรับลดความเร็ว เพื่อให้การอ่านคำดีขึ้นได้ เช่น ความเร็ว 0.8-0.9 เพื่อลดการอ่านผิดหรือคำขาดหาย แต่ลดมากไปอาจมีเสียงต้นฉบับแทรกเข้ามา.

อ้างอิง

About

Open Source Text-to-Speech (TTS) ภาษาไทย — เครื่องมือสร้างเสียงพูดจากข้อความด้วยเทคนิค Flow Matching

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages