PCの出力音声を録音して、音声認識などに放り込めば、いろんな用途に使える。
pyaudioライブラリを使えば簡単に出来そうだったので、試作してみた。
入力ソースの選択
Windowsの場合:既定ではマイク入力となっているが、「ステレオミキサー」を有効にする必要がある。
LinuxやmacOSの場合:オーディオルーティングツールを設定することでシステム音声を録音。
ライブラリのインストール
>pip install pyaudioでinstall。Pythonの細かい使い方は割愛(リクエストあれば解説)します。
import pyaudio
import wave
# 録音設定
FORMAT = pyaudio.paInt16 # 音声のフォーマット
CHANNELS = 2 # ステレオ
RATE = 44100 # サンプルレート (44.1 kHz)
CHUNK = 1024 # チャンクサイズ
RECORD_SECONDS = 10 # 録音時間 (秒)
OUTPUT_FILENAME = "output.wav" # 出力ファイル名
# PyAudioインスタンスを作成
audio = pyaudio.PyAudio()
# 録音用ストリームを作成
stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE,
input=True, frames_per_buffer=CHUNK)
print("録音中...")
frames = []
# 音声を録音
for _ in range(0, int(RATE / CHUNK * RECORD_SECONDS)):
data = stream.read(CHUNK)
frames.append(data)
print("録音終了")
# ストリームを終了
stream.stop_stream()
stream.close()
audio.terminate()
# WAVファイルに保存
with wave.open(OUTPUT_FILENAME, 'wb') as wf:
wf.setnchannels(CHANNELS)
wf.setsampwidth(audio.get_sample_size(FORMAT))
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
print(f"録音した音声を {OUTPUT_FILENAME} に保存しました。")
以上のコードを入力して
> python record_audio.py 録音中... 録音終了 録音した音声を output.wav に保存しました。
録音された音量が小さいので改良しないと使えない