จากระบบเดิมที่เคยใช้ ระบบสังเคราะห์ความถี่เสียงผ่านโปรแกรม คอมพิวเตอร์ด้วย ในภาคเรียนนี้จึงได้คิดเอา hardware อย่าง ardunio มาใช้ประยุกต์เข้ากับงานประชาสัมพันธ์ระบบเดิม ด้วยการขยายระบบด้วย TTS
ระบบแปลงข้อความเป็นเสียงพูดหรือ TTSแปลงข้อความปกติเป็นคำพูด เทคโนโลยีนี้ทำให้ระบบสามารถพูดข้อความด้วยเสียงของมนุษย์ มีตัวอย่างมากมายของการแปลงข้อความเป็นคำพูดเช่นประกาศที่การขนส่งสาธารณะการดูแลลูกค้าสายช่วยเสียงในสมาร์ทโฟนของคุณหรือเมนูการนำทางของเครื่องใด ๆ คุณสามารถค้นหา TTS ใน Microsoft Word ที่คุณตั้งไว้เพื่อพูดข้อความที่เขียนในเอกสาร
วันนี้ในการกวดวิชานี้เราจะได้เรียนรู้วิธีการทำแปลงข้อความเป็นคำพูดที่ใช้ Arduino ก่อนหน้านี้เราเคยใช้TTS กับ Raspberry pi ในการพูดนาฬิกาปลุกและแปลงการพูดเป็นข้อความใน raspberry piโดยใช้คีย์บอร์ดเสียงของ Google
ขั้นตอนแรกใน TTS เป็นก่อนการประมวลผลหรือการฟื้นฟู ขั้นตอนนี้เกี่ยวข้องกับการแปลงสัญลักษณ์ตัวเลขและตัวย่อเป็นคำที่เครื่องสามารถอ่านได้เช่น '?' จะถูกแปลงเป็น“ เครื่องหมายคำถาม”
ขั้นตอนที่สองเกี่ยวข้องกับการแปลงข้อความปกติเข้าไปในหน่วยเสียงหรือการถอดเสียงการออกเสียง หน่วยเสียงเป็นส่วนเล็ก ๆ ของคำพูดเช่นนี่คือเสียงที่สร้างประโยค ขั้นตอนนี้มีความสำคัญจริง ๆ เพื่อให้เครื่องจักรสามารถพูดคำเหมือนคนทำ
ขั้นตอนสุดท้ายคือการสังเคราะห์ของหน่วยเสียงเข้าไปในเสียงกล่าวนั้น ขั้นตอนนี้สามารถทำได้โดยวิธีที่แตกต่างกันเช่นโดยการบันทึกเสียงของมนุษย์สำหรับคำ / วลีที่แตกต่างกันหรือโดยการสร้างความถี่เสียงพื้นฐานและกองไว้เป็นหน่วยเสียงหรือโดยการคัดลอกกลไกการพูดของมนุษย์
ส่วนประกอบที่จำเป็น
- บอร์ด Arduino
- ลำโพง
- วงจรขยายสัญญาณ
- แหล่งจ่ายไฟที่มีการควบคุม
- สายเชื่อมต่อ
แผนภูมิวงจรรวม
ในตัวแปลงข้อความเป็นคำพูดเราได้ใช้วงจรขยายเสียงเพื่อลดเสียงรบกวนและรับเสียงที่ชัดเจน วงจรเครื่องขยายเสียงทำโดยใช้ไอซี LM386 แผนภาพวงจรของมันแสดงอยู่ด้านล่าง:
หม้อขนาด 100K ใช้สำหรับปรับเสียง ปรับแต่งเพื่อให้ได้เสียงที่ชัดเจน ถ้าคุณมีความสับสนใด ๆ เกี่ยวกับวงจรนี้แล้วตรวจสอบLM386 จากเครื่องขยายเสียงวงจร หากคุณไม่มีค่าที่แน่นอนของตัวต้านทานและตัวเก็บประจุให้ใช้ค่าปิด
เชื่อมต่อลำโพงกับ Arduino
การเชื่อมต่อนั้นง่ายมากเมื่อคุณสร้างวงจรขยาย
เชื่อมต่อแหล่งจ่ายไฟเข้ากับวงจรขยายและเชื่อมต่อขาดิจิตอล 3 ของตัวต้านทาน Arduino ของคุณเข้ากับตัวต้านทาน 10K และเชื่อมต่อกราวด์ของ Arduino กับสายดินของวงจร ตอนนี้เชื่อมต่อลำโพงโดยเชื่อมต่อขั้วลบกับขั้วต่อกราวด์และขั้วบวกกับตัวเก็บประจุ 220µF และเชื่อมต่อแหล่งจ่ายไฟ
การเขียนโปรแกรม Arduino สำหรับ TTS (Text To Speech)
โปรแกรมสำหรับTTS ที่ใช้ Arduinoนี้ยังง่ายมากเนื่องจากมีไลบรารีสำหรับสิ่งนี้ ห้องสมุดนี้เรียกว่าเป็นTalkieและสามารถเพิ่มได้โดยผู้จัดการห้องสมุด หากต้องการเพิ่มห้องสมุดไปSketch-> รวม Library-> ห้องสมุด
ตอนนี้ Library Manager จะปรากฏบนหน้าจอของคุณ ในแถบค้นหาประเภท Talkie และคลิกที่ปุ่มติดตั้ง ห้องสมุดจะได้รับการติดตั้ง
ห้องสมุดนี้มีประโยชน์มากและมีคำศัพท์และคำสั่งมากกว่า 1,000 รายการ มีหลายตัวอย่างคุณสามารถลองทั้งหมด แต่ที่นี่เราใช้รหัสง่าย ๆ เพื่ออธิบายการทำงาน
คุณยังสามารถลองคำสั่งอื่น ๆ ที่ให้ไว้ในไลบรารี่ หากต้องการรับคำสั่งเหล่านั้นให้ไปที่Documents \ Arduino \ libraries \ Talkie \ srcจากนั้นเปิดไฟล์ส่วนหัวและรับคำสั่งหลายอย่างที่สามารถใช้สำหรับการแจ้งเตือนที่แตกต่างกัน มีห้องสมุด TTS อื่น ๆ อีกมากมายเช่นห้องสมุดjscrane TTS , ห้องสมุดgoogle TTSเป็นต้นคุณสามารถลองใช้ได้เช่นกัน
ดังนั้นเรามาเริ่มการเข้ารหัส ประการแรกได้แก่ ไฟล์ส่วนหัวบาง Talkie.hใช้เพื่อเริ่มต้นไลบรารีนี้และตั้งค่า Digital pin 3 ของ Arduino เป็นขาออก Vocab_US_Large.hจะใช้ในการใช้งานการแจ้งเตือนเราจะใช้และVocab_Special.hจะใช้ในการหยุดใช้เราจะใช้
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
ตอนนี้กำหนด 'ค่า' ของวัตถุเพื่อใช้คำสั่ง:
เสียง Talkie;
ที่นี่ข้อความเดียวกันจะถูกทำซ้ำในลำโพงเพื่อให้ฟังก์ชั่นการตั้งค่าว่างเปล่าและทำให้คำสั่งในฟังก์ชั่นวน คำสั่งแรกvoice.say (spPAUSE2)คือการหยุดสั้น ๆ ในขณะที่ทำซ้ำข้อความแจ้งเตือน และคำสั่งถัดไปเป็นเพียงคำง่ายๆที่บ่งบอกถึง: อันตรายจากพายุในทิศเหนือ
void setup () { } void loop () { voice.say (spPAUSE2); voice.say (sp2_DANGER); voice.say (sp2_DANGER); voice.say (sp3_STORM); voice.say (sp3_IN); voice.say (sp3_THE); voice.say (sp3_NORTH); }
ในที่สุดอัปโหลดรหัสใน Arduino และเชื่อมต่อกับแหล่งจ่ายไฟ ทันทีที่คุณเปิดวงจรคุณจะเริ่มได้ยินเสียงเตือน! หากคุณไม่ได้รับเสียงที่ชัดเจนลองปรับลูกบิดของหม้อหรือตรวจสอบว่า Arduino ได้รับแหล่งจ่ายไฟที่เหมาะสมและตรวจสอบให้แน่ใจว่า GND ของ Arduino เชื่อมต่อกับพื้นดินของวงจร
ตรวจสอบรหัสที่สมบูรณ์พร้อมวิดีโอสาธิตที่ให้ไว้ด้านล่าง
#include "Talkie.h"
#include "Vocab_US_Large.h"
#include "Vocab_Special.h"
เสียง Talkie;
void setup () {
}
void loop () {
voice.say (spPAUSE2);
voice.say (sp2_DANGER);
voice.say (sp2_DANGER);
voice.say (sp3_STORM);
voice.say (sp3_IN);
voice.say (sp3_THE);
voice.say (sp3_NORTH);
}
เครดิค https://circuitdigest.com/ ขอบคุณครับ