Cloud Speech API ช่วยให้คุณอ่านออกเสียงข้อความจากไฟล์เสียงได้มากกว่า 80 ภาษา
ในห้องทดลองนี้ เราจะบันทึกไฟล์เสียงและส่งไปยัง Cloud Speech API เพื่อถอดเสียงเป็นคํา
สิ่งที่คุณจะได้เรียนรู้
- การสร้างคําขอ Speech API และเรียก API ด้วย Curl
- การเรียก Speech API พร้อมไฟล์เสียงในภาษาต่างๆ
สิ่งที่ต้องมี
คุณจะใช้บทแนะนํานี้อย่างไร
คุณจะให้คะแนนประสบการณ์การใช้งาน Google Cloud Platform ของคุณมากน้อยเพียงใด
การตั้งค่าสภาพแวดล้อมด้วยตนเอง
หากยังไม่มีบัญชี Google (Gmail หรือ Google Apps) คุณต้องสร้างบัญชี ลงชื่อเข้าใช้คอนโซล Google Cloud Platform (console.cloud.google.com) และสร้างโปรเจ็กต์ใหม่ ดังนี้
โปรดทราบว่ารหัสโปรเจ็กต์ ซึ่งเป็นชื่อที่ไม่ซ้ํากันสําหรับโปรเจ็กต์ 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" ที่มุมขวาบนของแถบส่วนหัว
เซสชัน 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 พร้อมไฟล์เสียงในภาษาต่างๆ
ขั้นตอนถัดไป
- ดูบทแนะนําของ Speech API ในเอกสารประกอบ
- ลองใช้ Vision API และ Natural Language API