Text to Speech

              หลังจากที่ลองไปค้นมาก็เจอตัวที่น่าสนใจอยู่สองสามตัวนะครับ ซึ่งแตกต่างกันตามนี้

  1. API gTTS by Google ข้อดีคือใช้ร่วมกับภาษาไทยได้เลย ข้อเสียคือใช้ผ่านอินเตอร์เน็ต ทำให้ต้องต่อเน็ตตลอดเวลา และมีข้อจำกัดดูได้จาก ที่นี้ ไฟล์ที่ใช้จะเป็น MP3 นะครับ วิธีติดตั้งมีตามนี้นะครับ
    1. pip3 install gTTS
    2. pip3 install playsound 
    3. กรณีมีปัญหาด้าน Token ให้ใช้คำสั่ง pip3 install gTTS-token ถ้าแก้ไม่ได้อาจจะเพราะใช้งานมากเกินข้อจำกัดนะครับ
    4. ทดสอบด้วยการลองทำ python script สักไฟล์ เปิด TextEditer สักตัว แล้วใส่โค้ดตามนี้นะครับ
      #!/usr/bin/env python3
      from gtts import gTTS
      from playsound import playsound

      contentToRead="สวัสดี valenteer สบายดีไหม"
      nation='th'
      setNameMp3='testTTS.MP3'

      def TextToSpeech(content,nation,name):
          tts = gTTS(text=content, lang=nation)
          tts.save(name)
          playsound(name)

      TextToSpeech(contentToRead,nation,setNameMp3)
      print("Success") 
    5. เซฟในชื่อ "TestTTS.py" ไว้ที่ /home/ MyComputerName ตรง MyComputerName แก้ให้เป็นชื่อเครื่องตัวเองนะครับ แล้วเปิด Terminal ใช้คำสั่ง python3 TestTTS.py นะครับ ถ้าทำงานได้ปกติ ก็จะได้ยินเสียงที่ช่างไร้อารมณ์ออกมาทักทายนะครับ 
    6. ขีดจำกัดการใช้งานนะครับ ห้ามเกิน 5000 ตัวอักษรต่อครั้ง ส่งรีเควสได้ไม่เกิน 300 ครั้งต่อนาที และรวมไม่เกิน 150,000 ตัวอักษรต่อนาที นะครับ
  2. API eSpeak นะครับ ตัวนี้เมื่อก่อนจะไม่รองรับภาษาไทย แต่ตอนนี้รองรับ 121 ภาษา ซึ่งมีไทยรวมในนั้นด้วยนะครับ ซึ่งต้องหลังเวอร์ชั่น 1.48.15 ขึ้นไปนะครับ ซึ่งตัวนี้ที่ผมลงใน ubuntu 18.04.5 ยังเป็นเวอร์ชั่นเก่าที่ไม่รองรับภาษาไทยนะครับ ดังนั้นจะยังไม่เขียนอะไรมากนะครับ เพราะมันเป็นส่วนประกอบของ API ข้อ 3. อ้อ แล้วก็มันจะเซฟเป็นไฟล์ wav นะครับ
    1. sudo apt install espeak -y
    2. espeak --version เช็คเวอร์ชั่นที่ลง
    3. espeak --voices หรือเช็คเสียงในภาษาต่างๆ ที่รองรับนะครับ
  3. API pyttsx3 ตัวนี้ข้อดีคือใช้แบบ offline ได้นะครับ สนใจดู Document ได้ครับ เมื่อก่อนก็ไม่รองรับภาษาไทยเช่นเดียวกัน
    1. pip3 install pyttsx3
    2. เช็คข้อมูลภาษาทั้งหมดได้ด้วย python script นี้นะครับ
      #!/usr/bin/env python3
      import pyttsx3
      engine = pyttsx3.init()
      voices = engine.getProperty('voices')
      for voice in voices:
          print("Voice: %s" % voice.name)
          print(" - ID: %s" % voice.id)
          print(" - Languages: %s" % voice.languages)
          print(" - Gender: %s" % voice.gender)
          print(" - Age: %s" % voice.age)
          print("\n")
    3. ซึ่งตัวนี้ที่ผมลงใน ubuntu 18.04.5 ยังเป็นเวอร์ชั่นเก่าที่ไม่รองรับภาษาไทยนะครับ ดังนั้นจะยังไม่เขียนอะไรมากนะครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

โปรโมชั่นเน็ต TOT

โน๊ตบุ๊ค acer switch sa5-271 แบตบวม T^T

Blog นี้สร้างเพื่อ?