ระบบสังเคราะห์เสียงพูดภาษาไทย (วาจา: VAJA)
วันที่เขียน 27/9/2566 21:20:52     แก้ไขล่าสุดเมื่อ 8/4/2568 7:18:05
เปิดอ่าน: 777 ครั้ง

Vaja คือ ระบบสังเคราะห์เสียงพูดภาษาไทย หรือ ระบบแปลงข้อความภาษาไทยให้เป็นเสียงพูด โดยมีเวอร์ชันล่าสุดคือ วาจาเวอร์ชัน 9.0 เพื่อเป็นผู้ช่วยเหล่าเมกเกอร์และนักพัฒนาซอฟต์แวร์ในการสร้างไลบรารี (Library)

องค์ประกอบที่สำคัญของระบบวาจา

  1. เสียงสังเคราะห์เลือกได้ 4 เสียง ได้แก่ เสียงผู้ชาย, เสียงผู้หญิง, เสียงเด็กผู้ชาย และเสียงเด็กผู้หญิง
  2. ข้อความระบุได้ทั้งแบบรูปเขียน (grapheme) และรูปเสียง (phoneme)
  3. สามารถเลือกได้ว่าจะให้โมเดลเว้นวรรคให้ หรือผู้ใช้ทำหน้าที่เว้นวรรคด้วยตนเอง
  4. ผลลัพธ์แสดงได้ทั้งเสียง และภาพ โดยสามารถใช้งานร่วมกับโมเดล 3 มิติที่รองรับ ARKit Blendshape หรือ VRM Blendshape ตัวอย่างเช่นโมเดลจาก ReadyPlayerMe และ VRoid

การสังเคราะห์เสียงผู้ชาย, ผู้หญิง, เด็กผู้ชาย และเด็กผู้หญิงโดยใช้ภาษาจาวาบน Colab

1. เริ่มจากการระบุ Apikey

Apikey = input("ให้ทำการใส่ Apikey:")
print(f'คุณได้ใส่ {Apikey}:')
 
2. ระบุ Vaja9 API
url = 'https://api.aiforthai.in.th/vaja9/synth_audiovisual'
 
3. ระบุข้อความที่ต้องการสร้างเสียงสังเคราะห์
text = input("ให้เขียนสิ่งที่ต้องการจะพูด")
 
4. เลือกเสียงที่ต้องการ
from ipywidgets import Select, HBox, Label
from IPython.display import display

supported_voice_gen = ["Phoom (ผู้ชาย)", "NamPhueng (ผู้หญิง)", "Pop (เด็ก)", "Pim (เด็กผู้หญิง)"]

print("กรุณาเลือกเสียงที่ต้องการใช้ในการทดสอบ")
voice_select = Select(options=supported_voice_gen, value=None)
display(HBox([voice_select]))
 
speaker = voice_select.index
speaker_type = voice_select.value
if speaker is None:
  speaker = -1
  speaker_type = "robot"
print("speaker("+speaker_type+"): "+str(speaker))
 
5. สังเคราะห์เสียงพูด
import requests
headers = {'Apikey':Apikey,"Content-Type": "application/json"}
data = {'input_text':text,'speaker': speaker}
response = requests.post(url, json=data, headers=headers)
print(response.json())
 
6. ดาวน์โหลดผลลัพธ์ และฟังเสียง
import IPython

def download_and_play(sWav_url):
  with open('test.wav', 'wb') as a:
      resp = requests.get(sWav_url,headers={'Apikey':Apikey})
      if resp.status_code == 200:
          a.write(resp.content)
          print('Downloaded: '+response.json()['wav_url'])
          IPython.display.display(IPython.display.Audio('test.wav'))
      else:
          print(resp.reason)
          exit(1)
 
if(response.json()['msg'] == 'success'):
  download_and_play(response.json()['wav_url'])
 

การสังเคราะห์เสียง ที่เว้นวรรคแบบอัตโนมัติ และกำหนดเอง

text = 'ทดสอบโปรแกรมการสังเคราะห์เสียงพูดแบบเว้นวรรคโดยอัตโนมัติในการเผยแพร่องค์ความรู้ในมหาวิทยาลัยแม่โจ้'

# ทำการเว้นวรรคแบบอัตโนมัติ
iPhrase_break=0

data = {'input_text':text,'speaker': 0, 'phrase_break':iPhrase_break, 'audiovisual':0}
 
response = requests.post(url, json=data, headers=headers)
 
print(response.json())

if(response.json()['msg'] == 'success'):
  download_and_play(response.json()['wav_url'])
 

การสังเคราะห์เสียงแบบระบุข้อความที่ใช้รูปเขียน(graphemes) และรูปเสียง(phonemes)

# การระบุรูปเสียงให้ระบุ phones ที่ต้องการ ให้อยู่ภายในวงเล็บแบบปีกกา
text = 'นี่คือการ {th o3 t^ s @@1 p^ sp}วาจาเวอร์ชันใหม่ ที่สามารถป้อนได้ทั้งรูปเขียน และรูปเสียง'

data = {'input_text':text,'speaker': 0, 'phrase_break':0, 'audiovisual':0}
 
response = requests.post(url, json=data, headers=headers)
 
print(response.json())

if(response.json()['msg'] == 'success'):
  download_and_play(response.json()['wav_url'])
 
 

คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://e-manage.mju.ac.th/acticleDetail.aspx?qid=1391
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานเทคโนโลยีสารสนเทศ
การพัฒนาระบบสารสนเทศ » การใช้งาน Microsoft-Copilot ในการวิเคราะห์และตรวจสอบ มคอ.3 รายวิชาการประมวลผลภาษาธรรมชาติ
ผลการวิเคราะห์จาก Microsoft-Copilot พบว่า รายวิชา "การประมวลผลภาษาธรรมชาติ" ครอบคลุมแนวคิดและเทคนิคสำคัญในด้าน NLP เช่น การแบ่งส่วนคำ การวิเคราะห์ประโยค การสร้างโมเดลภาษา และการประยุกต์ใช้ในงานต่าง...
CLOs  Co-pilot  Microsoft  PLOs  การวิเคราะห์  มคอ.3     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 4/4/2568 11:48:15  แก้ไขล่าสุดเมื่อ 8/4/2568 4:20:57   เปิดอ่าน 37  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาระบบสารสนเทศ » Ann algorithm กับ Multi-labels
Approximate Nearest Neighbor (ANN) algorithm ซึ่งเป็นเทคนิคที่ใช้ในด้านการค้นหาข้อมูลที่ใกล้เคียง (nearest neighbors) ในฐานข้อมูลหรือดาต้าเซ็ตที่มีขนาดใหญ่มาก โดยไม่ต้องค้นหาทุก ๆ ตัวในฐานข้อมูลที่...
Approximate Nearest Neighbor  classification  Multi-labels     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 11/2/2568 9:52:24  แก้ไขล่าสุดเมื่อ 7/4/2568 18:29:31   เปิดอ่าน 165  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
กลุ่มงานเทคโนโลยีสารสนเทศ » UX/UI Design ต่างกันอย่างไร
การออกแบบเว็บไซต์ การออกแบบผลิตภัณฑ์และบริการดิจิทัล มีความสำคัญมากขึ้นเป็นอย่างมาก โดยเฉพาะอย่างยิ่งการออกแบบประสบการณ์ผู้ใช้ (User Experience Design: UX Design) และการออกแบบส่วนต่อประสานผู้ใช้ (...
UI Design  UX Design  UX UI  UX/UI  การออกแบบเว็บ     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน ช่อทิพย์ สิทธิ  วันที่เขียน 6/9/2567 14:14:09  แก้ไขล่าสุดเมื่อ 7/4/2568 9:47:57   เปิดอ่าน 295  ครั้ง | แสดงความคิดเห็น 0  ครั้ง