ระบบสังเคราะห์เสียงพูดภาษาไทย (วาจา: VAJA)
วันที่เขียน 27/9/2566 21:20:52     แก้ไขล่าสุดเมื่อ 21/11/2567 19:04:54
เปิดอ่าน: 638 ครั้ง

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'])
 
 

ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานเทคโนโลยีสารสนเทศ
กลุ่มงานเทคโนโลยีสารสนเทศ » UX/UI Design ต่างกันอย่างไร
การออกแบบเว็บไซต์ การออกแบบผลิตภัณฑ์และบริการดิจิทัล มีความสำคัญมากขึ้นเป็นอย่างมาก โดยเฉพาะอย่างยิ่งการออกแบบประสบการณ์ผู้ใช้ (User Experience Design: UX Design) และการออกแบบส่วนต่อประสานผู้ใช้ (...
UI Design  UX Design  UX UI  UX/UI  การออกแบบเว็บ     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน ช่อทิพย์ สิทธิ  วันที่เขียน 6/9/2567 14:14:09  แก้ไขล่าสุดเมื่อ 21/11/2567 16:01:52   เปิดอ่าน 101  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาโปรแกรม » การพัฒนาระบบเพื่อลดขั้นตอนการปฏิบัติงาน สำหรับการจัดเก็บและทำลายเอกสาร
การพัฒนาระบบเพื่อลดขั้นตอนการปฏิบัติงาน สำหรับการจัดเก็บและทำลายเอกสาร โดยมีวัตถุประสงค์ เพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน โดยการนำระบบจัดเก็บและทำลายเอกสารมาช่วยปรับปรุงประสิทธิผล ในกระบวนการทำ...
Re-Design Process?  ระบบจัดเก็บและทำลายเอกสาร     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน ณัฐกฤตา โกมลนาค  วันที่เขียน 5/9/2567 11:45:54  แก้ไขล่าสุดเมื่อ 21/11/2567 15:53:41   เปิดอ่าน 250  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาระบบสารสนเทศ » ข้อมูลเปิด (Open Data) เบื้องต้น
ข้อมูลเปิด (Open Data) คือ ข้อมูลที่สามารถเข้าถึง ใช้งาน แก้ไข และแบ่งปันได้โดยไม่จำกัดข้อกำหนดหรือค่าใช้จ่าย ข้อมูลเปิดมักถูกเผยแพร่ในรูปแบบที่สามารถอ่านและวิเคราะห์ได้ง่าย เช่น ไฟล์ CSV, JSON, หร...
การเข้าถึง  การใช้งาน  การแบ่งปัน  การเปิดเผย  ข้อมูลเปิด     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 2/9/2567 9:45:13  แก้ไขล่าสุดเมื่อ 21/11/2567 16:01:22   เปิดอ่าน 98  ครั้ง | แสดงความคิดเห็น 0  ครั้ง