การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

วิธีการทำวินโดวส์และเฟรม

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN) ลักษณะรูปคลื่นของสัญญาณสัญญาณเสียงพูดนั้นเป็นสัญญาณที่มีการเปลี่ยนแปลงตามเวลา การหาค่าลักษณะสำคัญบนฐานของการแปลงฟูริเยร์นั้นจึงต้องใช้เทคนิคที่เรียกว่า การแปลงฟูริเยร์ในช่วงสั้น (Short-time Fourier Transform: STFT) เพื่อวิเคราะห์สัญญาณสัญญาณเสียงพูดไปเป็นลำดับของเฟรม (Sequence of frames) นั้นๆ วินโดวส์ (Window) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN) ใช้เพื่อแบ่งเฟรมของสัญญาณเสียงพูดในเชิงเวลา เห็นได้ในรูปที่ 3.2 วินโดว์นั้นมีหลายแบบมากซึ่งสามารถเลือกใช้ได้ตามความเหมาะสมของงานนั้นๆ  วินโดวส์ (Window) ในเชิงเวลา กำหนดด้วย w(n) ซึ่งเป็นลำดับจำกัด (Finite-length sequence) สำหรับใช้ในการเลือกเฟรมจากสัญญาณเดิม (s(n)) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)ด้วยการคูณในเชิงเวลา สมมติให้วินโดวส์เป็น Causal sequence ซึ่งมีจุดเริ่มต้นที่ n = 0 มีระยะ (Duration) คือ Wn และเป็น Linear phase sequence) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN) วินโดวส์ในเชิงความถี่จะถูกกำหนดตามสมการ

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

กระบวนการสร้างเฟรมโดยใช้วินโดวส์ทำได้โดยกลับรูป (Reverse) วินโดวส์ในเชิงเวลาและใช้การเลื่อน (Shift) ขอบของวินโดวส์ไปยังจุดเริ่มต้นซึ่งเป็นเวลาที่ต้องการ m จะได้ w(m-n) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)และเฟรมของสัญญาณ  s(n) กล่าวคือ fs(n;m) ซึ่งมีความยาวเท่ากับ N และสิ้นสุดที่ m จะได้จาก

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

แสดงสเปกตรัมความถี่ของสัญญาณฮาร์โมนิกส์ด้วยความถี่พื้นฐานและ สี่โอเวอร์โทน สัญญาณมีการ sampling ความถี่เป็น 22 kHz และขนาดของเฟรมเป็น 512 samples

โดยทั่วไปฟังก์ชันวินโดวส์ที่ใช้จะเป็นลักษณะเรียว (Tapered window) เพื่อลดความไม่ต่อเนื่องที่จะเกิดขึ้นที่ขอบ ซึ่งส่งผลให้เกิดองค์ประกอบความถี่สูงขึ้นในสเปกตรัม การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)นอกจากนี้ความยาวของวินโดวส์ที่ใช้ยังส่งผลต่อ Time resolution และ Frequency resolution ของสเปกตรัมอีก หากวินโดวส์มีความยาวมาก แต่ Frequency resolution ที่ต่ำจะทำให้ได้รายละเอียดการกระจายข้อมูลของสัญญาณน้อยกว่าที่เป็นอยู่จริงมาก สำหรับฟังชั่นวินโดวส์พื้นฐานที่มีอยู่ในปัจจุบันนั้นมีอยู่ 5 วินโดว์ การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN) คือ วินโดวส์ Rectangular วินโดวส์Triangular วินโดวส์ Hanning วินโดว์ hamming และ วินโดว์ blanckman ตามลำดับ

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

สำหรับวินโดวส์ที่นิยมใช้ที่รับมาจากพื้นฐานของวินโดวส์ hanning คือ วินโดวส์ hamming เนื่องจากมี Frequency resolution ที่ค่อนข้างสูงและการลดทอนที่ Side lobs ที่มากกว่า 43 dB ซึ่ง วินโดวส์ Hamming นี้มีความแตกต่างจากวินโดวส์ hanning คือ วินโดวส์ hamming มีขอบของวินโดวส์ที่สูงขึ้น 0.08 ฟังก์ชันวินโดวส์ hamming กำหนดตามสมการ

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

สัญญาณเสียงพูดที่เป็น .WAV

เป็นสัญญาณเสียงพูดที่เก็บไว้ในฐานข้อมูลจำนวน 200 สัญญาณเสียงพูดโดยที่รวมถึง 100 สัญญาณเสียงพูดสำหรับสัญญาณเสียงพูดคำว่าเปิด 100 สัญญาณเสียงพูด สำหรับสัญญาณเสียงพูดคำว่าปิด 100 สัญญาณเสียงพูด

การวิเคราะห์ระบบการจำแนกสัญญาณเสียงพูด

เนื้อหาของวิทยานิพนธ์นี้มีโครงสร้างดังรูปที่ 3.5 โดยขั้นตอน 1 เรียกว่า Preprocessing เป็นการปรับปรุงคุณภาพสัญญาณเสียงพูด โดยที่จะแปลงความถี่จาก 44.1 kHz เป็น 22 kHz, ขั้นตอนที่ 2 เป็นการนำเสนอเครื่องมือการดึงคุณลักษณะเด่นของสัญญาณเสียงพูด ซึ่งในวิทยานิพนธ์นี้ใช้ ค่าสัมประสิทธ์เซปสตรัมบนสเกลเมล (Mel Frequency Cepstral Coefficient) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)อัตราการตัดศูนย์ (Zero Crossing Rate) และขั้นตอนที่สุดท้าย เป็นวิธีการจำแนกสัญญาณเสียงพูด

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

กระบวนการปรับปรุง (Preprocessing)

ในขั้นตอนนี้เป็นการทำ Down-sampling คือจะทำสัญญาณเสียงพูดจาก 44.1 kHz เป็น 22.050 kHz การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)ซึ่งการทำ down-sampling มีผลกระทบในทางที่ดีต่อการวิเคราะห์ในการค้นคว้าความคล้ายคลึงของสัญญาณเสียงพูด การดึงสัญญาณเสียงพูดดิจิตอลจากไฟล์ จาก n=0,…,N-1 ที่ซึ่ง N เป็นจำนวนของการสุ่มในไฟล์สัญญาณเสียงพูด

กระบวนการหาค่าเวกเตอร์คุณลักษณะเด่นของสัญญาณสัญญาณเสียงพูด

หัวข้อนี้เป็นการคำนวณเพื่อหาลักษณะต่างๆ ของรูปคลื่นสัญญาณ โดยที่สัญญาณมีการเปลี่ยนแปลงตามเวลา การหาค่าคุณลัษณะเด่นบนฐานของการแปลงฟูริเยร์นั้นจึงต้องใช้เทคนิคที่เรียกว่า การแปลงฟูริเยร์ในช่วงสั้น (Short-time Fourier Transform: STFT) เพื่อวิเคราะห์สัญญาณเสียงไปเป็นลำดับของเฟรม (Sequence of frames) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)ซึ่งแต่ละเฟรมแทนด้วยคอลัมน์เวกเตอร์ของเวกเตอร์ค่าคุณลักษณะเด่นของสเปกตรัมในเฟรมนั้นๆ

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)

สมมุติให้ Xn คือ ค่าสัญญาณเสียงพูดที่คอมพิวเตอร์ทำการสุ่มเข้ามาครั้งที่ n ดังนั้นสัญญาณที่สุ่มเข้ามาภายในช่วงเวลาหนึ่งจำนวน N ค่า จะสามารถแทนด้วยชุดสัญญาณเสียงพูด [x1,x2,…,xn] ซึ่งเราสามารถคำนวณคุณลักษณะเด่นของสัญญาณเสียงพูดได้โดยใช้เครื่องมือเหล่านี้

Mel-Frequency Cepstral Coefficient (MFCC)

ค่าสัมประสิทธิ์เซปสตรัมบนสเกลเมล (Mel Frequency Cepstral Coefficient: MFCC) ซึ่งเป็นลักษณะเด่นที่ปรับปรุงมาจาก ) การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)สัมประสิทธิ์เซปสตรัมปกติ ด้วยการปรับสเกลของสเปกตรัมให้อยู่บนเสกลที่เหมาะสมสำหรับการรับฟังของมนุษย์ เพื่อให้สามารถเก็บรายละเอียดของสัญญาณเสียงช่วงความถี่ต่ำ ซึ่งมีนัยสำคัญมากกว่า ช่วงความถี่สูง เรียกว่า สเกลเมล (Mel Scale) ความถี่ของเสียงพูดสามารถปรับให้อยู่ในสเกลเมล (m) ดังสมการ

การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)
การรู้จำแบบทนทานต่อเสียงรบกวนสำหรับเสียงพูด ภาษาไทยโดยใช้อัลกอริทึม K-nearest neighborhood (K-NN)