วันหนึ่งที่ผมต้องไปฟังบรรยาย ต้องการเครื่องบันทึกเสียงไปบันทึกคำบรรยายสักหน่อย ความจริงแล้วก็สามารถใช้โทรศัพท์มือถือก็ได้ หรือไปหาซื้อเครื่องบันทึกเสียงแบบ mp3 ก็มีจำหน่ายเยอะแยะ ราคาก็ไม่แพง แต่เรากลับต้องการมากกว่านั้น คือว่าต้องการเขียนโปรแกรมใช้งานบน Raspberry PI ซะเลย หากทำได้ มันก็จะสามารถต่อยอดไปสร้างระบบที่ใช้เสียงสั่งงานได้ด้วย (voice recognition)
Python libraries ที่เป็นตัวเลือกของผมที่นึกออกมี 3 ตัวเลือกคือ
1. PyMedia ดูจากข้อมูลจากเว็บไซต์แล้วก็น่าจะตอบโจทย์ได้ดี แต่หากดูวันทีี่มี update ข้อมูลแล้ว ไม่มีการเคลื่อนไหวมาหลายปีมากแล้ว มาก่อนที่จะมี Raspberry Pi จำหน่ายด้วยซ้ำ ไม่น่าจะใช่ตัวเลือกที่ดีนัก
2. Pyalsaaudio ตัวนี้มีการปรับปรุงข้อมูลทันสมัยดีครับ น่าจะเป็นตัวเลือกที่ดี
3. PyAudio ตัวนี้ก็มีปรับปรุงทันสมัยดีครับ ที่น่าสนใจที่ตัวนี้ใช้งานกับ PortAudio ซึ่งทำงานได้แบบ callback function ได้ด้วย ตรงนี้หากมองในแง่ของการพัฒนาซอฟต์แวร์แล้วมีประโยชน์ครับ ผมก็เลยใช้งานตัวนี้เลย
ติดตั้ง PyAudio บน Raspberry PI
$ apt-cache search portaudio
ก็ได้พบว่ามี portaduio19-dev แสดงให้เห็น ก็ทำการติดตั้งเสียก่อนเลย
$ sudo apt-get install portaudio19-dev
จากนั้นก็ทำการดาวน์โหลดรหัสต้นฉบับจาก https://people.csail.mit.edu/hubert/pyaudio/packages/pyaudio-0.2.8.tar.gz
หรือหากติดตั้ง git ไว้แล้วก็ใช้คำสั่ง
$ git clone http://people.csail.mit.edu/hubert/git/pyaudio.git
ทำการแตกไฟล์ จะได้โฟลเดอร์ pyaduio
$ cd pyaduio
$ sudo python setup.py install
หาอุปกรณ์ Audio Capture
เนื่องจาก Raspberry Pi ไม่มีอุปกรณ์สำหรับจับเสียง (audio capture divice) มาด้วย จึงต้องทำการจัดให้มีเสียก่อน ทางเลือกมี 3 ทางคือ1. ใช้ Web Camera ที่มี Microphone ติดตั้งมาด้วย
2. ใช้ USB sound card (ดูเรื่องการติดตั้ง)
3. ใช้ USB Microphone
ผมเลือกทางเลือกที่ 3 ครับ แม้อุปกรณ์จะราคาสูงแต่มีระบบตัดเสียงรบกวนได้ทำให้ได้เสียงที่สะอาดกว่าสองตัวเลือกแรก เลือกได้แล้วก็ทำการติดตั้งเข้ากับ Raspberry PI ผ่าน USB Port ครับ มีข้อแนะนำคือ ควรใช้ USB Hub ที่มี power supply แยกออกจากตัว Raspberry Pi เพราะอุปกรณ์เหล่านี้ค่อนข้างกินพลังงาน หากต่อกับ USB Port ของ Raspberry Pi โดยตรงอาจก่อปัญหาได้ จากนั้นก็ทำการ config เสียหน่อย (http://blog.scphillips.com/posts/2013/01/sound-configuration-on-raspberry-pi-with-alsa/)
ทดสอบโปรแกรม
ติดตั้งซอฟต์แวร์และติดตั้งตัวอุปกรณ์เสร็จ เราก็ถึงเวทดสอบโปรแกรมกัน ผมใช้การทดสอบโปรแกรมตามตัวอย่างจากเว็บ https://people.csail.mit.edu/hubert/pyaudio/docs/ เลย แต่มีการปรับแก้ตัวแปรบางตัวเพราะระบบฮาร์ดแวร์ไม่เหมือนกัน ผลสรุปสุดท้าย ก็ได้ระบบที่ใช้บันทึกเสียงเรียบร้อยครับ แต่คงเอาไปใช้งานนอกสถานที่ลำบากสักหน่อย เพราะมันใหญ่และเทอะทะน่าดู การไปบันทึกเสียงของผู้บรรยายก็คงต้องใช้โทรศัพท์มือถือไป แต่ระบบที่อุตสาห์ทำมาก็จะนำไปใช้โครงงานอื่นต่อไป ครับSign up here with your email
2 ความคิดเห็น
Write ความคิดเห็นรอชมผลงานชิ้นต่อไปนะครับผม
Replyขอบคุณ ครับ
ReplyConversionConversion EmoticonEmoticon