5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pythonとraspberry piでマイクを用いた録音

Last updated at Posted at 2018-06-20

なんとかpyaudioを使っての録音までこぎつけたのでメモ
メモ書き程度かつ画像なしなので分かりづらいかも
#Raspberry Piにマイクを接続
今回使用したマイクがこれサンワサプライ-MM-MCU01BK
Raspberry Piへの接続はUSBを挿すだけで認識された。

優先順位の変更等は無視で
#ターミナルで録音、再生
これは簡単でターミナルに

$ arecord -D plughw:1,0 test.wav

を入力するだけで録音が開始される。止めるときはctl+cで終了。
再生するときは

$ aplay test.wav

で再生される。
#python(pyaudio)を使った録音
とりあえずpipでpyaudioをインストール
その後公式サイトの録音プログラムを試してみるも

hoge_audio.py
import pyaudio
import wave

CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

print("* recording")

frames = []

for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
    data = stream.read(CHUNK)
    frames.append(data)

print("* done recording")

stream.stop_stream()
stream.close()
p.terminate()

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()

しかしエラーを吐いてしまう

  File "hoge_audio.py", line 22, in <module>
    frames_per_buffer=CHUNK)

見たかんじ冒頭の設定が悪そうだったので、バッファを増やし、チャンネルもモノラルにしてみる

CHUNK = 1024*2
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

すると今度は、Input: Overflowとのエラーが出たので

CHUNK = 512
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"

このように変更
これで録音できて、録音されたファイルはソースコードと同じディレクトリに保存されていた。

#参照
194円(送料込み)のマイクと Raspberry Pi でボイスレコーダーを作る話し
RaspberryPiでマイク録音してみる【ヒミツのクマちゃん その2】

5
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?