การแปลงคําพูดเป็นข้อความด้วย API การแปลงคําพูดเป็นข้อความ

Cloud Speech API ช่วยให้คุณอ่านออกเสียงข้อความจากไฟล์เสียงได้มากกว่า 80 ภาษา

ในห้องทดลองนี้ เราจะบันทึกไฟล์เสียงและส่งไปยัง Cloud Speech API เพื่อถอดเสียงเป็นคํา

สิ่งที่คุณจะได้เรียนรู้

  • การสร้างคําขอ Speech API และเรียก API ด้วย Curl
  • การเรียก Speech API พร้อมไฟล์เสียงในภาษาต่างๆ

สิ่งที่ต้องมี

  • โครงการ Google Cloud Platform
  • เบราว์เซอร์ เช่น Chrome หรือ Firefox

คุณจะใช้บทแนะนํานี้อย่างไร

อ่านจบเท่านั้น อ่านและตอบแบบฝึกหัด

คุณจะให้คะแนนประสบการณ์การใช้งาน Google Cloud Platform ของคุณมากน้อยเพียงใด

มือใหม่ ปานกลาง เชี่ยวชาญ

การตั้งค่าสภาพแวดล้อมด้วยตนเอง

หากยังไม่มีบัญชี Google (Gmail หรือ Google Apps) คุณต้องสร้างบัญชี ลงชื่อเข้าใช้คอนโซล Google Cloud Platform (console.cloud.google.com) และสร้างโปรเจ็กต์ใหม่ ดังนี้

ภาพหน้าจอจาก 2016-02-10 12:45:26.png

โปรดทราบว่ารหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ํากันสําหรับโปรเจ็กต์ Google Cloud ทั้งหมด (ชื่อข้างต้นมีผู้อื่นนําไปใช้แล้ว ขออภัยในความไม่สะดวก) และจะเรียกใน Codelab นี้ว่า PROJECT_ID ในภายหลัง

จากนั้นคุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากรของ Google Cloud

การเรียกใช้ Codelab นี้ไม่ควรมีค่าใช้จ่ายเกิน 2-3 ดอลลาร์ แต่อาจมากกว่านั้นหากคุณตัดสินใจใช้ทรัพยากรเพิ่มเติมหรือปล่อยให้ทรัพยากรทํางาน (ดู "cleanup" ในตอนท้ายของเอกสารนี้)

ผู้ใช้ใหม่ของ Google Cloud Platform มีสิทธิ์รับช่วงทดลองใช้ฟรี $300

คลิกไอคอนเมนูที่ด้านซ้ายบนของหน้าจอ

เลือกแดชบอร์ด API และบริการจากเมนูแบบเลื่อนลง

คลิกเปิดใช้ API และบริการ

จากนั้นค้นหา "Speech" ในช่องค้นหา คลิก Google Cloud Speech API ดังนี้

คลิกเปิดใช้เพื่อเปิดใช้ Cloud Speech API

โปรดรอสักครู่เพื่อเปิดใช้ คุณจะเห็นข้อมูลนี้เมื่อเปิดใช้แล้ว

Google Cloud Shell คือสภาพแวดล้อมบรรทัดคําสั่งที่ทํางานในระบบคลาวด์ เครื่องเสมือนแบบ Debian นี้เต็มไปด้วยเครื่องมือสําหรับการพัฒนาทั้งหมดที่คุณต้องมี (gcloud, bq, git และอื่นๆ) และให้บริการไดเรกทอรีหน้าแรกขนาด 5GB อย่างถาวร เราจะใช้ Cloud Shell เพื่อสร้างคําขอไปยัง Speech API

เริ่มต้นใช้งาน Cloud Shell โดยคลิกไอคอน "เปิดใช้งาน Google Cloud Shell" Screen Shot 2015-06-08 เวลา 17:30.32 น. ที่มุมขวาบนของแถบส่วนหัว

เซสชัน Cloud Shell จะเปิดในเฟรมใหม่ที่ด้านล่างของคอนโซลและแสดงข้อความแจ้งบรรทัดคำสั่ง รอจนกว่าข้อความแจ้ง user@project:~$ จะปรากฏขึ้น

เนื่องจากเราจะใช้ curl เพื่อส่งคําขอไปยัง Speech API เราจึงต้องสร้างคีย์ API เพื่อส่งผ่าน URL คําขอ หากต้องการสร้างคีย์ API ให้ไปที่ส่วน API และ &Services; > Credentials ของหน้าแดชบอร์ดของโปรเจ็กต์

จากนั้นคลิกสร้างข้อมูลเข้าสู่ระบบ ดังนี้

เลือกคีย์ API ในเมนูแบบเลื่อนลง ดังนี้

จากนั้นคัดลอกคีย์ที่คุณเพิ่งสร้างขึ้น แล้วเลือกปิด (อย่าจํากัดคีย์)

ตอนนี้คุณมีคีย์ API แล้ว ให้บันทึกไว้ในตัวแปรสภาพแวดล้อมเพื่อหลีกเลี่ยงการแทรกค่าของคีย์ API ในคําขอแต่ละรายการ โดยใช้ Cloud Shell โปรดแทนที่ <your_api_key> ด้วยคีย์ที่คุณเพิ่งคัดลอก

export API_KEY=<YOUR_API_KEY>

คุณสร้างคําขอไปยัง API เสียงพูดในไฟล์ request.json ได้ หากต้องการสร้างและแก้ไขไฟล์นี้ คุณสามารถใช้ตัวแก้ไขบรรทัดคําสั่งที่ต้องการ (nano, vim, emacs) หรือใช้เครื่องมือแก้ไขเว็บในตัวใน Cloud Shell ก็ได้

สร้างไฟล์ในไดเรกทอรีหน้าแรกเพื่อให้อ้างอิงได้ง่ายและเพิ่มสิ่งต่อไปนี้ในไฟล์ request.json :

request.json

{
  "config": {
      "encoding":"FLAC",
      "languageCode": "en-US"
  },
  "audio": {
      "uri":"gs://cloud-samples-tests/speech/brooklyn.flac"
  }
}

เนื้อหาของคําขอมีออบเจ็กต์ config และ audio ในเดือนconfig เราจะแจ้ง Speech API ให้ดําเนินการตามคําขอ พารามิเตอร์ encoding จะบอก API ประเภทการเข้ารหัสเสียงที่คุณใช้สําหรับไฟล์เสียงที่คุณส่งไปยัง API FLAC เป็นประเภทการเข้ารหัสสําหรับไฟล์ .raw (ดูรายละเอียดเพิ่มเติมได้ที่เอกสารประกอบสําหรับประเภทการเข้ารหัส) มีพารามิเตอร์อื่นๆ ที่คุณเพิ่มลงในออบเจ็กต์ config ได้ แต่ encoding เป็นพารามิเตอร์เดียวที่จําเป็น languageCode จะมีค่าเริ่มต้นเป็นภาษาอังกฤษหากออกจากคําขอ

ในออบเจ็กต์ audio คุณสามารถส่ง API ของ URI ของไฟล์เสียงของเราใน Cloud Storage หรือเสียงที่เข้ารหัสแบบ Base64 เป็นสตริงได้ ที่นี่ใช้ URL ของ Cloud Storage ขั้นตอนถัดไปคือการเรียก Speech API

ตอนนี้คุณสามารถส่งเนื้อความคําขอไปพร้อมๆ กับตัวแปรสภาพแวดล้อมคีย์ API ที่คุณบันทึกไว้ก่อนหน้านี้ไปยัง Speech API ด้วยคําสั่ง curl ต่อไปนี้ได้แล้ว (ทั้งหมดนี้อยู่ในบรรทัดคําสั่งเดียว)

curl -s -X POST -H "Content-Type: application/json" --data-binary @request.json "https://speech.googleapis.com/v1/speech:recognize?key=${API_KEY}"

การตอบกลับที่กําหนดโดยคําสั่ง curl นี้ควรมีลักษณะดังนี้

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "how old is the Brooklyn Bridge",
          "confidence": 0.98267895
        }
      ]
    }
  ]
}

ค่า transcript จะแสดงผลการถอดคําพูดเป็นข้อความของไฟล์เสียง และค่า confidence แสดงถึงความมั่นใจว่า API มีการถอดเสียงเป็นคําเสียงของคุณอย่างถูกต้อง

คุณจะสังเกตเห็นว่าเรียกใช้เมธอด recognize ในคําขอข้างต้น Speech API รองรับทั้งการถอดเสียงเป็นคําแบบเรียลไทม์และการไม่พร้อมกัน ในตัวอย่างนี้ เราได้ส่งไฟล์เสียงที่สมบูรณ์ แต่คุณสามารถใช้เมธอด longrunningrecognize เพื่อพูดสตรีมมิงไปยังการถอดเสียงเป็นคําข้อความขณะที่ผู้ใช้ยังพูดอยู่ได้

คุณพูดได้หลายภาษาไหม Speech API รองรับการถอดเสียงคําพูดเป็นข้อความกว่า 100 ภาษา คุณจะเปลี่ยนพารามิเตอร์ languageCode ได้ใน request.json ดูรายการภาษาที่รองรับได้ที่นี่

มาลองไฟล์เสียงแบบฝรั่งเศสกัน (ฟังที่นี่หากต้องการดูตัวอย่าง) เปลี่ยน request.json เป็นสิ่งต่อไปนี้

request.json

 {
  "config": {
      "encoding":"FLAC",
      "languageCode": "fr"
  },
  "audio": {
      "uri":"gs://speech-language-samples/fr-sample.flac"
  }
}

คุณควรเห็นการตอบกลับต่อไปนี้

{
  "results": [
    {
      "alternatives": [
        {
          "transcript": "maître corbeau sur un arbre perché tenait en son bec un fromage",
          "confidence": 0.9710122
        }
      ]
    }
  ]
}

ประโยคนี้เป็นประโยคจากเรื่องราวในวัยเด็กของฝรั่งเศสยอดนิยม หากมีไฟล์เสียงในภาษาอื่น คุณอาจลองเพิ่มไฟล์ลงใน Cloud Storage และเปลี่ยนพารามิเตอร์ languageCode ในคําขอ

คุณได้เรียนรู้การถอดคําพูดเป็นข้อความด้วย Speech API แล้ว ในตัวอย่างนี้ คุณได้ส่ง API ของ Google Cloud Storage ไปยังไฟล์เสียงของคุณใน API หรือจะส่งผ่านสตริงที่เข้ารหัสเนื้อหาของเสียงฐาน 64 ก็ได้

สิ่งที่เราพูดถึง

  • การส่ง Speech API ไปยัง URI ของ Google Cloud Storage ของไฟล์เสียง
  • การสร้างคําขอ Speech API และเรียก API ด้วย Curl
  • การเรียก Speech API พร้อมไฟล์เสียงในภาษาต่างๆ

ขั้นตอนถัดไป