Инструкция по подключению микрофона SPH0645 к Raspberry Pi и записи аудио с использованием Python.
Подключение SPH0645 к Raspberry Pi
3V
к 3.3VGND
к земле (Пин 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
.
- Начинаем запись с помощью
Полный код
Код лежит на Гитхабе.