Skip to main content

A high-quality audio recorder with voice detection

Project description

Voice Recorder Library

ไลบรารีสำหรับบันทึกเสียงและวิเคราะห์เสียงอัตโนมัติ พร้อมระบบตรวจจับเสียงพูดและการแสดงผลที่หลากหลาย

✨ คุณสมบัติ

  • 🎤 บันทึกเสียงอัตโนมัติ
  • 🔍 ตรวจจับเสียงพูดอัตโนมัติ
  • 📊 วิเคราะห์และแสดงผลเสียงหลากหลายรูปแบบ
  • 📈 สร้างกราฟและแผนภาพแสดงผลการวิเคราะห์
  • ⚡ ทำงานแบบ Real-time
  • 🔧 ปรับแต่งค่าต่างๆ ได้ง่าย

📦 การติดตั้ง

  1. ติดตั้งผ่าน pip:
pip install voice-recorder

or

git clone install voice-recorder
  1. ติดตั้ง dependencies ที่จำเป็น:
pip install numpy matplotlib scipy pyaudio keyboard

🚀 การใช้งานเบื้องต้น

การบันทึกเสียงพื้นฐาน

from voice_recorder import AudioRecorder

# สร้าง recorder
recorder = AudioRecorder()

# บันทึกเสียงจนกว่าจะตรวจพบความเงียบ
recorder.record_until_silence("recording.wav")

การบันทึกเสียงขั้นสูง

# ปรับแต่งค่าต่างๆ
recorder = AudioRecorder(
    voice_threshold=-30,      # ความไวในการตรวจจับเสียง
    silence_duration=1.5,     # เวลารอก่อนหยุดเมื่อไม่มีเสียง
    min_voice_duration=0.2    # ระยะเวลาขั้นต่ำของเสียง
)

# กำหนด callbacks
def on_voice():
    print("ตรวจพบเสียง!")

def on_silence():
    print("ตรวจพบความเงียบ!")

recorder.set_callback('voice', on_voice)
recorder.set_callback('silence', on_silence)

# เริ่มบันทึก
recorder.start("output.wav")

การวิเคราะห์เสียง

from voice_recorder import AudioVisualizer

# สร้าง visualizer
visualizer = AudioVisualizer()

# แสดงรูปคลื่นเสียง
visualizer.plot_waveform("recording.wav", highlight_voice=True)

# แสดงสเปกตรัมความถี่
visualizer.plot_spectrum("recording.wav")

# แสดง spectrogram
visualizer.plot_spectrogram("recording.wav")

# วิเคราะห์แบบครบถ้วน
visualizer.analyze_audio("recording.wav", output_dir="analysis_results")

📝 คำอธิบายคลาสหลัก

AudioRecorder

คลาสสำหรับบันทึกเสียงพร้อมระบบตรวจจับเสียงอัตโนมัติ

พารามิเตอร์สำคัญ:

  • voice_threshold (-40 ถึง 0): ความไวในการตรวจจับเสียง
  • silence_duration: เวลารอก่อนหยุดเมื่อไม่มีเสียง (วินาที)
  • min_voice_duration: ระยะเวลาขั้นต่ำของเสียง (วินาที)

เมธอดสำคัญ:

  • start(): เริ่มบันทึกเสียง
  • stop(): หยุดบันทึก
  • record_until_silence(): บันทึกจนกว่าจะตรวจพบความเงียบ
  • set_callback(): กำหนดฟังก์ชันเมื่อเกิดเหตุการณ์

AudioVisualizer

คลาสสำหรับวิเคราะห์และแสดงผลเสียงในรูปแบบต่างๆ

เมธอดสำคัญ:

  • plot_waveform(): แสดงรูปคลื่นเสียง
  • plot_spectrum(): แสดงสเปกตรัมความถี่
  • plot_spectrogram(): แสดง spectrogram
  • analyze_audio(): วิเคราะห์เสียงแบบครบถ้วน

📚 ตัวอย่างการใช้งาน

ดูตัวอย่างเพิ่มเติมได้ในโฟลเดอร์ examples/:

  1. basic_recording.py: การบันทึกเสียงพื้นฐาน
  2. advanced_recording.py: การบันทึกเสียงขั้นสูง
  3. audio_analysis.py: การวิเคราะห์เสียง
  4. realtime_monitor.py: การตรวจจับเสียงแบบ real-time
  5. batch_processor.py: การประมวลผลไฟล์เสียงจำนวนมาก

⚙️ การทดสอบ

รันการทดสอบทั้งหมด:

python -m voice_recorder.tests

🤝 การมีส่วนร่วม

  1. Fork โปรเจค
  2. สร้าง branch ใหม่: git checkout -b feature/amazing-feature
  3. Commit การเปลี่ยนแปลง: git commit -m 'Add amazing feature'
  4. Push ไปยัง branch: git push origin feature/amazing-feature
  5. เปิด Pull Request

📄 ลิขสิทธิ์

โปรเจคนี้ใช้ลิขสิทธิ์ MIT License - ดูรายละเอียดในไฟล์ LICENSE

📧 ติดต่อ

🙏 ขอขอบคุณ

  • PyAudio สำหรับการบันทึกเสียง
  • Matplotlib สำหรับการแสดงผลกราฟ
  • SciPy สำหรับการประมวลผลสัญญาณ
  • NumPy สำหรับการคำนวณ

📝 หมายเหตุ

  • ต้องติดตั้ง PyAudio ก่อนใช้งาน
  • ทดสอบบน Python 3.7 ขึ้นไป
  • ต้องการไมโครโฟนสำหรับการบันทึกเสียง

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

voice_recorder-1.0.0.tar.gz (9.2 kB view details)

Uploaded Source

File details

Details for the file voice_recorder-1.0.0.tar.gz.

File metadata

  • Download URL: voice_recorder-1.0.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for voice_recorder-1.0.0.tar.gz
Algorithm Hash digest
SHA256 6cdcf492c0f9d8a4cc747d7e8e0e19b2a544114133e28a8dc56830ab500a07f7
MD5 f40ed82a0fe4a728dceb1bba6e900890
BLAKE2b-256 b0fb1f41598ce0e78f2f1ef51402116bee296470a4f3296dca573b31223399a1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page