You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
157 lines
12 KiB
157 lines
12 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "7e45d884493c5222348b43fbc4481b6a",
|
|
"translation_date": "2025-08-27T20:35:54+00:00",
|
|
"source_file": "6-consumer/lessons/1-speech-recognition/pi-microphone.md",
|
|
"language_code": "th"
|
|
}
|
|
-->
|
|
# ตั้งค่าไมโครโฟนและลำโพง - Raspberry Pi
|
|
|
|
ในส่วนนี้ของบทเรียน คุณจะเพิ่มไมโครโฟนและลำโพงให้กับ Raspberry Pi ของคุณ
|
|
|
|
## ฮาร์ดแวร์
|
|
|
|
Raspberry Pi ต้องการไมโครโฟน
|
|
|
|
เนื่องจาก Pi ไม่มีไมโครโฟนในตัว คุณจะต้องเพิ่มไมโครโฟนภายนอก มีหลายวิธีในการทำเช่นนี้:
|
|
|
|
* ไมโครโฟน USB
|
|
* ชุดหูฟัง USB
|
|
* ลำโพงแบบรวมไมโครโฟน USB
|
|
* อะแดปเตอร์เสียง USB และไมโครโฟนที่มีแจ็ค 3.5 มม.
|
|
* [ReSpeaker 2-Mics Pi HAT](https://www.seeedstudio.com/ReSpeaker-2-Mics-Pi-HAT.html)
|
|
|
|
> 💁 ไมโครโฟน Bluetooth ไม่ได้รองรับทั้งหมดบน Raspberry Pi ดังนั้นหากคุณมีไมโครโฟนหรือชุดหูฟัง Bluetooth คุณอาจพบปัญหาในการจับคู่หรือบันทึกเสียง
|
|
|
|
Raspberry Pi มาพร้อมกับแจ็คหูฟัง 3.5 มม. คุณสามารถใช้แจ็คนี้เชื่อมต่อหูฟัง ชุดหูฟัง หรือ ลำโพงได้ นอกจากนี้คุณยังสามารถเพิ่มลำโพงโดยใช้:
|
|
|
|
* เสียง HDMI ผ่านจอภาพหรือทีวี
|
|
* ลำโพง USB
|
|
* ชุดหูฟัง USB
|
|
* ลำโพงแบบรวมไมโครโฟน USB
|
|
* [ReSpeaker 2-Mics Pi HAT](https://www.seeedstudio.com/ReSpeaker-2-Mics-Pi-HAT.html) พร้อมลำโพงที่เชื่อมต่อผ่านแจ็ค 3.5 มม. หรือพอร์ต JST
|
|
|
|
## เชื่อมต่อและตั้งค่าไมโครโฟนและลำโพง
|
|
|
|
ไมโครโฟนและลำโพงต้องถูกเชื่อมต่อและตั้งค่าให้ถูกต้อง
|
|
|
|
### งาน - เชื่อมต่อและตั้งค่าไมโครโฟน
|
|
|
|
1. เชื่อมต่อไมโครโฟนโดยใช้วิธีที่เหมาะสม เช่น เชื่อมต่อผ่านพอร์ต USB หนึ่งในพอร์ต
|
|
|
|
1. หากคุณใช้ ReSpeaker 2-Mics Pi HAT คุณสามารถถอด Grove base hat ออก แล้วติดตั้ง ReSpeaker hat แทนที่
|
|
|
|

|
|
|
|
คุณจะต้องใช้ปุ่ม Grove ในบทเรียนนี้ แต่ปุ่มหนึ่งได้ถูกติดตั้งใน hat นี้แล้ว ดังนั้นจึงไม่จำเป็นต้องใช้ Grove base hat
|
|
|
|
เมื่อ hat ถูกติดตั้งแล้ว คุณจะต้องติดตั้งไดรเวอร์ ดูคำแนะนำการเริ่มต้นใช้งานได้ที่ [Seeed getting started instructions](https://wiki.seeedstudio.com/ReSpeaker_2_Mics_Pi_HAT_Raspberry/#getting-started) สำหรับคำแนะนำในการติดตั้งไดรเวอร์
|
|
|
|
> ⚠️ คำแนะนำใช้ `git` เพื่อโคลน repository หากคุณยังไม่มี `git` ติดตั้งใน Pi ของคุณ คุณสามารถติดตั้งได้โดยรันคำสั่งต่อไปนี้:
|
|
>
|
|
> ```sh
|
|
> sudo apt install git --yes
|
|
> ```
|
|
|
|
1. รันคำสั่งต่อไปนี้ใน Terminal บน Pi หรือเชื่อมต่อผ่าน VS Code และ remote SSH session เพื่อดูข้อมูลเกี่ยวกับไมโครโฟนที่เชื่อมต่อ:
|
|
|
|
```sh
|
|
arecord -l
|
|
```
|
|
|
|
คุณจะเห็นรายการไมโครโฟนที่เชื่อมต่อ มันจะมีลักษณะดังนี้:
|
|
|
|
```output
|
|
pi@raspberrypi:~ $ arecord -l
|
|
**** List of CAPTURE Hardware Devices ****
|
|
card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio]
|
|
Subdevices: 1/1
|
|
Subdevice #0: subdevice #0
|
|
```
|
|
|
|
หากคุณมีไมโครโฟนเพียงตัวเดียว คุณควรเห็นเพียงรายการเดียว การตั้งค่าไมโครโฟนอาจซับซ้อนใน Linux ดังนั้นการใช้ไมโครโฟนเพียงตัวเดียวและถอดตัวอื่นออกจะง่ายที่สุด
|
|
|
|
จดหมายเลขการ์ดไว้ เพราะคุณจะต้องใช้ในภายหลัง ในตัวอย่างข้างต้น หมายเลขการ์ดคือ 1
|
|
|
|
### งาน - เชื่อมต่อและตั้งค่าลำโพง
|
|
|
|
1. เชื่อมต่อลำโพงโดยใช้วิธีที่เหมาะสม
|
|
|
|
1. รันคำสั่งต่อไปนี้ใน Terminal บน Pi หรือเชื่อมต่อผ่าน VS Code และ remote SSH session เพื่อดูข้อมูลเกี่ยวกับลำโพงที่เชื่อมต่อ:
|
|
|
|
```sh
|
|
aplay -l
|
|
```
|
|
|
|
คุณจะเห็นรายการลำโพงที่เชื่อมต่อ มันจะมีลักษณะดังนี้:
|
|
|
|
```output
|
|
pi@raspberrypi:~ $ aplay -l
|
|
**** List of PLAYBACK Hardware Devices ****
|
|
card 0: Headphones [bcm2835 Headphones], device 0: bcm2835 Headphones [bcm2835 Headphones]
|
|
Subdevices: 8/8
|
|
Subdevice #0: subdevice #0
|
|
Subdevice #1: subdevice #1
|
|
Subdevice #2: subdevice #2
|
|
Subdevice #3: subdevice #3
|
|
Subdevice #4: subdevice #4
|
|
Subdevice #5: subdevice #5
|
|
Subdevice #6: subdevice #6
|
|
Subdevice #7: subdevice #7
|
|
card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio]
|
|
Subdevices: 1/1
|
|
Subdevice #0: subdevice #0
|
|
```
|
|
|
|
คุณจะเห็น `card 0: Headphones` เสมอ เนื่องจากนี่คือแจ็คหูฟังในตัว หากคุณเพิ่มลำโพงเพิ่มเติม เช่น ลำโพง USB คุณจะเห็นรายการนี้ด้วย
|
|
|
|
1. หากคุณใช้ลำโพงเพิ่มเติม และไม่ได้ใช้ลำโพงหรือหูฟังที่เชื่อมต่อกับแจ็คหูฟังในตัว คุณต้องตั้งค่าให้เป็นค่าเริ่มต้น โดยรันคำสั่งต่อไปนี้:
|
|
|
|
```sh
|
|
sudo nano /usr/share/alsa/alsa.conf
|
|
```
|
|
|
|
คำสั่งนี้จะเปิดไฟล์การตั้งค่าใน `nano` ซึ่งเป็นโปรแกรมแก้ไขข้อความใน Terminal ใช้ปุ่มลูกศรบนคีย์บอร์ดเลื่อนลงจนเจอบรรทัดต่อไปนี้:
|
|
|
|
```output
|
|
defaults.pcm.card 0
|
|
```
|
|
|
|
เปลี่ยนค่าจาก `0` เป็นหมายเลขการ์ดของการ์ดที่คุณต้องการใช้จากรายการที่ได้จากคำสั่ง `aplay -l` ตัวอย่างเช่น ในผลลัพธ์ข้างต้นมีการ์ดเสียงที่สองชื่อ `card 1: M0 [eMeet M0], device 0: USB Audio [USB Audio]` ใช้การ์ด 1 ในการใช้งานนี้ ฉันจะอัปเดตบรรทัดให้เป็น:
|
|
|
|
```output
|
|
defaults.pcm.card 1
|
|
```
|
|
|
|
ตั้งค่านี้ให้เป็นหมายเลขการ์ดที่เหมาะสม คุณสามารถเลื่อนไปยังหมายเลขโดยใช้ปุ่มลูกศรบนคีย์บอร์ด จากนั้นลบและพิมพ์หมายเลขใหม่ตามปกติเมื่อแก้ไขไฟล์ข้อความ
|
|
|
|
1. บันทึกการเปลี่ยนแปลงและปิดไฟล์โดยกด `Ctrl+x` กด `y` เพื่อบันทึกไฟล์ จากนั้นกด `return` เพื่อเลือกชื่อไฟล์
|
|
|
|
### งาน - ทดสอบไมโครโฟนและลำโพง
|
|
|
|
1. รันคำสั่งต่อไปนี้เพื่อบันทึกเสียง 5 วินาทีผ่านไมโครโฟน:
|
|
|
|
```sh
|
|
arecord --format=S16_LE --duration=5 --rate=16000 --file-type=wav out.wav
|
|
```
|
|
|
|
ขณะที่คำสั่งนี้กำลังทำงาน ให้ส่งเสียงเข้าไมโครโฟน เช่น พูด ร้องเพลง บีทบ็อกซ์ เล่นเครื่องดนตรี หรืออะไรก็ได้ที่คุณต้องการ
|
|
|
|
1. หลังจาก 5 วินาที การบันทึกจะหยุด รันคำสั่งต่อไปนี้เพื่อเล่นเสียงที่บันทึกไว้:
|
|
|
|
```sh
|
|
aplay --format=S16_LE --rate=16000 out.wav
|
|
```
|
|
|
|
คุณจะได้ยินเสียงที่เล่นผ่านลำโพง ปรับระดับเสียงของลำโพงตามความเหมาะสม
|
|
|
|
1. หากคุณต้องการปรับระดับเสียงของพอร์ตไมโครโฟนในตัว หรือปรับ gain ของไมโครโฟน คุณสามารถใช้ยูทิลิตี้ `alsamixer` คุณสามารถอ่านเพิ่มเติมเกี่ยวกับยูทิลิตี้นี้ได้ที่ [Linux alsamixer man page](https://linux.die.net/man/1/alsamixer)
|
|
|
|
1. หากคุณพบข้อผิดพลาดในการเล่นเสียง ให้ตรวจสอบการตั้งค่าการ์ดที่คุณตั้งค่าเป็น `defaults.pcm.card` ในไฟล์ `alsa.conf`
|
|
|
|
---
|
|
|
|
**ข้อจำกัดความรับผิดชอบ**:
|
|
เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้การแปลมีความถูกต้องมากที่สุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่ถูกต้อง เอกสารต้นฉบับในภาษาดั้งเดิมควรถือเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้บริการแปลภาษามืออาชีพ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ |