เนื้อหา
- การสร้างส่วนต่อประสานผู้ใช้ Speech-to-Text
- การเพิ่มการรู้จำเสียงในแอพ Android ของคุณ
- 1. เริ่มโปรแกรมจำแนกลายมือในรายการ
- 2. รับการตอบสนองคำพูด
- ทดสอบโครงการของคุณ
- ห่อ
แอพบริการและอุปกรณ์ในครัวเรือนจำนวนมากใช้การรู้จำเสียงเพื่อมอบประสบการณ์การใช้งานที่ดีขึ้นและปรับปรุงการเข้าถึง มีแอพ Android ที่นับไม่ถ้วนที่ใช้การรู้จำเสียงซึ่งโดดเด่นที่สุดคือ Google Assistant - ทำไมไม่ทำตามและเพิ่มคุณสมบัตินี้ลงในแอพพลิเคชั่น Android ของคุณเอง?
ในบทความนี้ฉันจะแบ่งปันวิธีที่รวดเร็วและง่ายดายในการเริ่มต้นด้วยเจตนาการพูดเป็นข้อความของ Android ซึ่งจะมีประโยชน์ในแอปพลิเคชันที่หลากหลาย ตัวอย่างเช่นคุณอาจใช้การรู้จำเสียงในการป้อนข้อมูลด้วยตนเองที่น่าเบื่อโดยอัตโนมัติสร้างคำบรรยายโดยอัตโนมัติหรือแม้กระทั่งเป็นพื้นฐานสำหรับแอปแปลที่ "ฟัง" เป็นอินพุตเสียงพูดแปลงเป็นข้อความจากนั้นแปลข้อความนี้และแสดงผลลัพธ์เป็น ผู้ใช้งาน.
ไม่ว่าคุณจะสร้างแอปพลิเคชันประเภทใดการรู้จำเสียงสามารถปรับปรุงการเข้าถึงได้โดยการให้ผู้ใช้มีทางเลือกอื่นในการโต้ตอบกับแอพของคุณ ตัวอย่างเช่นผู้ที่มีปัญหาด้านการเคลื่อนไหวความคล่องแคล่วหรือการมองเห็นอาจพบว่าการนำทางแอปพลิเคชั่นมือถือง่ายขึ้นโดยใช้คำสั่งเสียงแทนที่จะเป็นหน้าจอสัมผัสหรือแป้นพิมพ์ นอกจากนี้ตามข้อมูลขององค์การอนามัยโลก (WHO) ผู้คนกว่าพันล้านคนมีความพิการในรูปแบบหนึ่งซึ่งเท่ากับประมาณ 15% ของประชากรโลก การเพิ่มฟีเจอร์การช่วยสำหรับการเข้าถึงลงในแอปพลิเคชันของคุณสามารถเพิ่มกลุ่มเป้าหมายได้
ในตอนท้ายของบทความนี้คุณจะได้สร้างแอปพลิเคชัน Speech-to-Text แบบง่าย ๆ ที่บันทึกเสียงของคุณแปลงเป็นข้อความจากนั้นแสดงข้อความบนหน้าจอ
การสร้างส่วนต่อประสานผู้ใช้ Speech-to-Text
ในการเริ่มต้นสร้างโครงการ Android ใหม่โดยใช้เทมเพลต“ กิจกรรมที่ว่างเปล่า”
เราจะสร้างแอปพลิเคชันที่เรียบง่ายซึ่งประกอบด้วยปุ่มซึ่งเมื่อแตะแล้วจะเป็นการเปิดใช้งานคำพูดเป็นข้อความของ Android และแสดงกล่องโต้ตอบที่ระบุว่าแอปของคุณพร้อมที่จะรับอินพุตคำพูด เมื่อผู้ใช้พูดเสร็จแล้วอินพุตของพวกเขาจะถูกแปลงเป็นข้อความจากนั้นแสดงเป็นส่วนหนึ่งของ TextView
มาเริ่มด้วยการสร้างเลย์เอาต์ของเรา:
สิ่งนี้ทำให้เรามีรูปแบบต่อไปนี้:
การเพิ่มการรู้จำเสียงในแอพ Android ของคุณ
เรารวบรวมและประมวลผลคำพูดในสองขั้นตอน:
1. เริ่มโปรแกรมจำแนกลายมือในรายการ
วิธีที่ง่ายที่สุดในการทำการแปลงคำพูดเป็นข้อความคือใช้ RecognizerIntent.ACTION_RECOGNIZE_SPEECH เจตจำนงนี้จะแจ้งให้ผู้ใช้ป้อนอินพุตด้วยการเปิดตัวกล่องโต้ตอบไมโครโฟนที่คุ้นเคยของ Android
เมื่อผู้ใช้หยุดพูดกล่องโต้ตอบจะปิดโดยอัตโนมัติและ ACTION_RECOGNIZE_SPEECH จะส่งเสียงที่บันทึกไว้ผ่านตัวจำแนกเสียง
เราเริ่มต้น RecognizerIntent.ACTION_RECOGNIZE_SPEECH โดยใช้ startActivityForResult () พร้อมบริการเสริมแบบรวม โปรดทราบว่าหากไม่ได้ระบุไว้เป็นอย่างอื่นตัวจำแนกลายมือจะใช้ภาษาเริ่มต้นของอุปกรณ์
โมฆะสาธารณะ onClick (ดู v) {// ทริกเกอร์ RecognizerIntent เจตนา // เจตนาเจตนา = เจตนาใหม่ (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); ลอง {startActivityForResult (เจตนา REQUEST_CODE); } catch (ActivityNotFoundException a) {}}
2. รับการตอบสนองคำพูด
เมื่อการดำเนินการรู้จำเสียงเสร็จสิ้น ACTION_RECOGNIZE_SPEECH จะส่งผลลัพธ์กลับไปยังการเรียกกิจกรรมเป็นอาร์เรย์ของสตริง
เนื่องจากเราเรียกใช้ RecognizerIntent ผ่าน startActivityForResult () เราจัดการกับข้อมูลผลลัพธ์โดยการแทนที่ onActivityResult (int requestCode, int resultCode, ข้อมูล Intent) ในกิจกรรมที่เริ่มต้นการรู้จำเสียง
ผลลัพธ์จะถูกส่งกลับในลำดับความมั่นใจของตัวจำแนกเสียงพูดมากไปน้อย ดังนั้นเพื่อให้แน่ใจว่าเรากำลังแสดงข้อความที่ถูกต้องที่สุดเราจำเป็นต้องรับตำแหน่งศูนย์จาก ArrayList ที่ส่งคืนแล้วแสดงใน TextView ของเรา
@Override // กำหนดวิธีการ OnActivityResult ในกิจกรรมผู้เรียกเจตนาของเรา // โมฆะที่ได้รับการป้องกัน onActivityResult (int requestCode, int resultCode, ข้อมูล intent) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {// หากส่งคืน RESULT_OK ... // ถ้า (resultCode == RESULT_OK && null! = data) {//... จากนั้นเรียก ArrayList // ArrayList โปรดทราบว่า Speech-to-Text ไม่จำเป็นต้องมีการเชื่อมต่ออินเทอร์เน็ตที่ใช้งานดังนั้นมันจะทำงานได้อย่างถูกต้องแม้ว่าผู้ใช้จะออฟไลน์ หลังจากทำตามขั้นตอนข้างต้นเสร็จแล้ว MainActivity ของคุณควรมีลักษณะดังนี้: นำเข้า android.content.ActivityNotFoundException; นำเข้า androidx.appcompat.app.AppCompatActivity; นำเข้า android.os.Bundle; นำเข้า android.content.Tent; นำเข้า android.speech.RecognizerIntent; นำเข้า android.widget.TextView; นำเข้า android.view.View; นำเข้า java.util.ArrayList; MainActivity ระดับสาธารณะขยาย AppCompatActivity {ส่วนตัวคงที่สุดท้าย int REQUEST_CODE = 100; TextView textOutput ส่วนตัว @Override ที่ได้รับการป้องกันเป็นโมฆะ onCreate (บันเดิลที่บันทึกไว้InstanceState) {super.onCreate (hiddenInstanceState) setContentView (R.layout.activity_main); textOutput = (TextView) findViewById (R.id.textOutput); } // วิธีการนี้เรียกด้วยปุ่มกด // โมฆะสาธารณะ onClick (ดู v) // สร้างเจตนาด้วย“ RecognizerIntent.ACTION_RECOGNIZE_SPEECH” การกระทำ // {เจตนาเจตนา = เจตนาใหม่ (RecognizerIntent.ACTION_RECOGNIZE_SPEECH); ลอง {// เริ่มกิจกรรมและรอการตอบกลับ // startActivityForResult (เจตนา REQUEST_CODE); } catch (ActivityNotFoundException a) {}} @Override // จัดการผลลัพธ์ // โมฆะที่ได้รับการป้องกัน onActivityResult (int requestCode, int resultCode, ข้อมูล intent) {super.onActivityResult (requestCode, resultCode, data); switch (requestCode) {case REQUEST_CODE: {if (resultCode == RESULT_OK && null! = data) {ArrayList คุณสามารถดาวน์โหลดโครงการที่เสร็จสมบูรณ์จาก GitHub หากต้องการนำใบสมัครของคุณไปทดสอบ: ในบทความนี้เราเห็นว่าคุณสามารถเพิ่มการรู้จำเสียงในแอปพลิเคชั่น Android ของคุณได้อย่างรวดเร็วและง่ายดายโดยใช้ Speech-to-Text Intent คุณเคยพบแอพ Android ที่ใช้การรู้จำเสียงด้วยวิธีแปลกใหม่หรือไม่? ต่อไป: สร้างแอป Android เสมือนจริงด้วย Google ARCoreทดสอบโครงการของคุณ
ห่อ