Как подключить и настроить микрофон SPH0645 на Raspberry Pi

Как подключить и настроить микрофон SPH0645 на Raspberry Pi

Инструкция по подключению микрофона SPH0645 к Raspberry Pi и записи аудио с использованием Python.

Подключение SPH0645 к Raspberry Pi

  • 3V к 3.3V
  • GND к земле (Пин 6)
  • BCLK к BCM 18 (Пин12)
  • LRCLK к BCM 19 (Пин 35)
  • DOUT к BCM 20 (Пин 38)

Редактирование файла конфигурации

Откроем файл конфигурации для редактирования:

Bash
sudo nano  /boot/firmware/config.txt

и добавим строчку

Plaintext
dtoverlay=googlevoicehat-soundcard

Затем перезагрузим малину

Bash
sudo reboot

Установка библиотек

Установим sounddevice, numpy, scipy с помощью команды

Bash
pip install sounddevice numpy scipy

Установим библиотеки для использования PortAudio

Bash
sudo apt-get install libportaudio2 libportaudiocpp0 portaudio19-dev

Код

Bash
# -*- coding: utf-8 -*-
import sounddevice as sd
import numpy as np
import scipy.io.wavfile as wav

# Параметры записи
duration = 5  # Продолжительность записи в секундах
sample_rate = 44100  # Частота дискретизации

def record_audio(filename):
    print("Начало записи...")
    try:
        # Запись аудио
        audio_data = sd.rec(int(duration * sample_rate), samplerate=sample_rate, channels=1, dtype='int16')
        sd.wait()  # Ожидание завершения записи
        print("Запись завершена.")

        # Сохранение аудио в файл
        wav.write(filename, sample_rate, audio_data)
        print(f"Аудио сохранено в {filename}.")
    except Exception as e:
        print(f"Ошибка записи: {e}")

if __name__ == "__main__":
    record_audio("output.wav")
  • Параметры записи: Устанавливаем продолжительность записи в 5 секунд и частоту дискретизации 44100 Гц.
  • Функция record_audio:
    • Начинаем запись с помощью sd.rec, передавая параметры продолжительности и частоты дискретизации.
    • Используем sd.wait() для ожидания завершения записи.
    • Сохраняем записанные данные в файл с помощью wav.write.

Полный код

Код лежит на Гитхабе.