สารบัญ:
วีดีโอ: VoiceLantern - ตะเกียงควบคุมด้วยเสียง!: 6 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
อาร์เรย์ไมโครโฟน miniDSP UMA-8 พร้อมการตรวจจับทิศทางออนบอร์ด การยกเลิกเสียงสะท้อน และการลดสัญญาณรบกวน มีการใช้งานที่หลากหลาย ในคำแนะนำนี้ เราจะใช้งานกับบริการ Speech-to-Text ของ IBM Watson เพื่อควบคุมโคมไฟ LED
ทำไมต้องใช้ UMA-8?
อุปกรณ์ที่ควบคุมด้วยเสียงต้องใช้ไมโครโฟนในการบันทึกเสียง และอาจกล่าวได้ว่าคุณสามารถใช้ไมโครโฟนสุ่ม 2 ดอลลาร์ได้ นี่เป็นเรื่องปกติถ้าคุณนั่งอยู่หน้าคอมพิวเตอร์โดยตรงที่ด้านหน้าของไมโครโฟน แต่สำหรับ "สนามไกล" การควบคุมแบบแฮนด์ฟรีจำเป็นต้องใช้ไมโครโฟนที่มีความซับซ้อนมากขึ้น UMA-8 มี:
- Beam-forming ทำงานผ่านไมโครโฟน 7 ตัวเพื่อปรับปรุงการตรวจจับเสียงและขจัดเสียงรบกวนจากภายนอก
- การยกเลิกเสียงสะท้อนและการลดเสียงรบกวนเพื่อลดผลกระทบของเสียงที่ไม่ใช่เสียง (เช่น การเล่นเพลง) และเสียงรบกวน (การจราจร เสียงในห้องครัว เป็นต้น)
UMA-8 คือ "ปลั๊กแอนด์เพลย์" – คุณไม่จำเป็นต้องกำหนดค่าใดๆ เพื่อให้ทำงานกับ RPi ได้ อย่างไรก็ตาม หากคุณต้องการ คุณสามารถใช้ปลั๊กอิน miniDSP เพื่อปรับแต่งพารามิเตอร์การประมวลผลของอาร์เรย์ไมโครโฟน (แนะนำสำหรับผู้ใช้ขั้นสูงเท่านั้น!)
ขั้นตอนที่ 1: สิ่งที่คุณต้องการ
สิ่งที่คุณต้องมี
- 1 x Raspberry Pi 2 หรือ 3 พร้อมด้วยแหล่งจ่ายไฟ USB สำหรับ Pi. ของคุณ
- 1 x คีย์บอร์ด
- 1 x จอแสดงผล HDMI
- การเชื่อมต่ออินเทอร์เน็ต
-
1 x โคมไฟ LED ขนาดเล็ก (~ $ 10)
- ลิงค์อีเบย์
- ลิงค์ AliExpress
-
สายจัมเปอร์หญิง-หญิงบางสาย (~ $3)
- ลิงค์อีเบย์
- ลิงค์ AliExpress
-
1 x 2n2222 ทรานซิสเตอร์ NPN (~ $ 3)
- ลิงค์อีเบย์
- ลิงค์ AliExpress
- 1 x การประสาน เตารีด (พร้อมตัวประสานและความร้อนหดตัว) เพื่อเชื่อมต่อสายไฟ
-
1 x miniDSP UMA-8 USB ไมโครโฟน อาร์เรย์
ซื้อโดยตรงจากเว็บไซต์ MiniDSP
- บัญชี IBM BlueMix (ดูรายละเอียดด้านล่างสำหรับการลงทะเบียน)
สิ่งที่คุณต้องรู้
- ประสบการณ์พื้นฐานบางอย่างกับแพลตฟอร์ม Raspberry Pi
- ทักษะพื้นฐานของ Bash (cd, ls, ฯลฯ)
- ทักษะพื้นฐานในการแก้ไขข้อความนาโน (การเปิดและการบันทึก)
- ใจจดจ่อ พร้อมเรียนทำโคมบังคับด้วยเสียง!
ขั้นตอนที่ 2: เชื่อมต่อทุกอย่างขึ้น
ก่อนอื่น มาต่อสายอุปกรณ์ของเรากัน! นำ Raspberry Pi ของคุณและเชื่อมต่อแป้นพิมพ์และจอแสดงผล HDMI
ตอนนี้เราจำเป็นต้องแยกตะเกียงออกจากกันเพื่อเปิดเผยสายไฟ อย่างที่คุณเห็น หลังจากถอดสกรู 4 ตัวบนฐานยึดแบตเตอรี่แล้ว เราจะเข้าถึงสายไฟ RED (5v) และ BLUE (GND) ได้ ในการเปิดหรือปิดตะเกียง สิ่งที่เราต้องทำคือส่งสายไฟ 5v ลงไป!
เราจะใช้ทรานซิสเตอร์ส่งแรงดันไฟฟ้านี้และเปิดและปิดตะเกียง ทำไมไม่ลองเชื่อมต่ออินพุตของหลอดไฟเข้ากับ RPi ตรงๆ ล่ะ? นั่นเป็นเพราะหมุดควบคุมของ RPi (เรียกอีกอย่างว่า “GPIO”) ไม่สามารถส่งพลังงานที่เราจะต้องใช้ในการส่องสว่างตะเกียง ทรานซิสเตอร์ทำงานในลักษณะเดียวกันกับรีเลย์ เช่น สวิตช์อิเล็กทรอนิกส์ที่ส่งกระแสไฟผ่านเมื่อใช้แรงดันไฟฟ้า
เราจะสลับพินที่เชื่อมต่อกับสายสีม่วง HIGH และ LOW เพื่อควบคุมทรานซิสเตอร์ซึ่งจะส่ง 5v ลงไปที่ตะเกียง ทรานซิสเตอร์ต้องต่อสายเพื่อตัดกับสาย BLUE (GND) เพื่อให้ทำงานได้อย่างถูกต้อง
ให้ความสนใจเป็นพิเศษกับไดอะแกรมและรูปภาพด้านล่างเมื่อเดินสายโคมขึ้น
เราประสานส่วนหัวของตัวเมียเข้ากับสายไฟของตะเกียงเพื่อให้ง่ายต่อการเชื่อมต่อ หากคุณไม่เคยบัดกรีมาก่อน ดูคำแนะนำนี้ซึ่งมีคำอธิบายที่ดี
สุดท้าย คุณจะต้องเสียบปลั๊กไฟและ miniDSP UMA-8 USB Microphone Array เพียงแค่เสียบเข้ากับพอร์ต USB! นั่นคือทั้งหมดที่มีเพราะ UMA-8 เป็นแบบพลักแอนด์เพลย์ด้วย RPi
ขั้นตอนที่ 3: เตรียม Pi
ก่อนเปิด Pi คุณจะต้องดาวน์โหลด Raspbian Stretch LITE จาก Raspberry Pi Foundation ตรวจสอบให้แน่ใจว่าคุณได้รับเวอร์ชัน LITE ซึ่งไม่มีเดสก์ท็อป เบิร์นภาพที่ดาวน์โหลดมาลงในการ์ด micro-SD เสียบการ์ด micro-SD เข้ากับ Pi และเสียบปลั๊กไฟ คุณจะเห็นจอภาพหรือทีวีของคุณพร้อมท์ให้เข้าสู่ระบบ
ในการเข้าสู่ระบบ ให้ใช้รายละเอียดการเข้าสู่ระบบ Raspberry Pi เริ่มต้น
ชื่อผู้ใช้: piรหัสผ่าน: raspberry
หากคุณมีการเชื่อมต่ออินเทอร์เน็ตแบบอีเทอร์เน็ต (แบบมีสาย) คุณก็พร้อมแล้ว มิฉะนั้น คุณจะต้องตั้งค่า Wifi ทำตามคำแนะนำนี้เพื่อกำหนดค่า Wifi บน Pi ของคุณ
การดาวน์โหลดและติดตั้ง NodeJS
ขั้นแรก ติดตั้ง NodeJS โดยใช้ตัวจัดการแพ็คเกจ นี่คือคู่มือที่มีประโยชน์ซึ่งอธิบายคำสั่งปัจจุบันที่จำเป็น ในขณะที่เขียนคำสั่งเหล่านี้คือ:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -sudo apt-get install -y nodejs
ขั้นต่อไป เราต้องติดตั้งแอปพลิเคชันที่ NodeJS จะทำงานเพื่อให้โคมไฟของเราได้ยิน (ผ่าน UMA-8) และควบคุมหลอดไฟ (ผ่านส่วนหัว GPIO) ขั้นแรกให้ดาวน์โหลดที่เก็บซึ่งมีรหัส: (รับโดยการคัดลอก URL ของไฟล์ zip ที่แนบมากับขั้นตอนนี้)
wget https://cdn.instructables.com/ORIG/FBU/XWAG/J86HJLO9/FBUXWAGJ86HJLO9.zipunzip voice-light.zipcd voice-light
ตอนนี้ มาติดตั้งบิตและบ็อบพิเศษทั้งหมดที่แอปพลิเคชันนี้ต้องการเพื่อเรียกใช้:
npm ติดตั้ง
เมื่อการติดตั้งเสร็จสมบูรณ์ คุณก็พร้อมที่จะเข้าสู่ IBM Watson
ขั้นตอนที่ 4: การกำหนดค่า IBM Watson
ตอนนี้เมื่อตะเกียงของเราวางสายแล้ว เราก็สามารถเริ่มทำงานในการจดจำเสียงได้! หากคุณยังไม่ได้สมัครใช้งาน IBM BlueMix เมื่อคุณเข้าสู่ระบบแล้ว ให้ไปที่แดชบอร์ดบริการ BlueMix
คลิกปุ่ม "สร้างบริการ Watson" ขนาดใหญ่ตรงกลางหน้าจอ ดูรูปที่ 1
ถัดไป คุณจะเห็นแค็ตตาล็อกของบริการทั้งหมดที่ IBM BlueMix มีให้ ข้ามไปที่ส่วน "วัตสัน" ในแถบด้านข้าง ดูรูปที่ 2
ตอนนี้เราต้องเพิ่มบริการ "พูดเป็นข้อความ" ซึ่งจะทำให้เราสามารถส่งกระแสข้อมูลเสียงพูดไปยัง WATSON และให้สตรีมกลับข้อความ (แปลงจากเสียงที่เข้ามา) ดูรูปที่ 3
ในการดำเนินการนี้ ให้คลิกไทล์ (ตามสีแดงด้านบน) เมื่อโหลดหน้าเว็บแล้ว เราสามารถปล่อยการตั้งค่าเริ่มต้นไว้และเลือกปุ่ม "สร้าง" ที่มุมล่างซ้าย ดูรูปที่ 4
สุดท้ายเราต้องได้รับ "ข้อมูลรับรองบริการ" แอปของเราจะใช้รายละเอียดเหล่านี้เพื่อเชื่อมต่อกับวัตสัน ดูรูปที่ 5
คลิกปุ่ม "ดูข้อมูลรับรอง" เพื่อขยายไทล์แล้วคัดลอกบรรทัดที่มี "ชื่อผู้ใช้" และ "รหัสผ่าน" ลงในเอกสารข้อความบนคอมพิวเตอร์ของคุณ เราต้องการสิ่งเหล่านี้ในภายหลัง ดังนั้นตรวจสอบให้แน่ใจว่ามีป้ายกำกับชัดเจนว่า "WATSON Creds" หรือคล้ายกัน ดูรูปที่ 6
ขั้นตอนที่ 5: การเพิ่มข้อมูลรับรอง WATSON ของเราลงในแอป
ตอนนี้เราได้เสร็จสิ้นกระบวนการดึงข้อมูลประจำตัวของวัตสันแล้ว เราต้องแจ้งให้โคมของเราทราบวิธีลงชื่อเข้าใช้วัตสัน ย้อนกลับไปที่หน้า Pi ของคุณและให้แน่ใจว่าคุณอยู่ในไดเร็กทอรีเสียงแสงซึ่งมีแอปอยู่ เราจำเป็นต้องแก้ไขไฟล์ “settings.js” เพื่อรวมรายละเอียดเหล่านี้ เปิดไฟล์ด้วยคำสั่งนี้:
nano settings.js
ตอนนี้ แทนที่การตั้งค่าแต่ละรายการที่ระบุไว้ในไฟล์นี้ ด้วยการตั้งค่าที่คุณบันทึกไว้ก่อนหน้านี้
ขั้นตอนที่ 6: เรียกใช้ Lantern ที่ควบคุมด้วยเสียงของเรา
เมื่อกำหนดค่าแอปของคุณแล้ว ก็พร้อมใช้งานได้เลย!
ในการเปิดตะเกียง ให้พูดว่า "Let there be light!" หรือปิดโคมไฟ ให้พูดว่า "Let there be dark!" จับตาดูเอาต์พุตคอนโซลของ Raspberry Pi เพื่อดูว่า WATSON ตีความสิ่งที่คุณพูดอย่างไร
sudo node app.js