0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

マイク使用

Posted at

Google Colab では、標準機能としてマイク入力を直接扱うことはできません。しかし、以下の方法でマイクを利用することが可能です。

方法 1: pydub と IPython.display を使う

Google Colab では IPython.display.Audio を使って音声を録音できます。ただし、ローカルPCで録音し、アップロードする必要があります。

from google.colab import output
from IPython.display import Javascript
import numpy as np
import io
import base64
import scipy.io.wavfile

録音用のJavaScriptコード

def record(sec=5):
display(Javascript(f"""
async function record(sec) {{
const stream = await navigator.mediaDevices.getUserMedia({{ audio: true }});
const mediaRecorder = new MediaRecorder(stream);
const audioChunks = [];
mediaRecorder.ondataavailable = event => {{
audioChunks.push(event.data);
}};
mediaRecorder.onstop = async () => {{
const audioBlob = new Blob(audioChunks);
const arrayBuffer = await audioBlob.arrayBuffer();
const base64String = btoa(String.fromCharCode(...new Uint8Array(arrayBuffer)));
google.colab.kernel.invokeFunction('notebook.record_callback', [base64String], {{}})
}};
mediaRecorder.start();
await new Promise(resolve => setTimeout(resolve, sec * 1000));
mediaRecorder.stop();
}}
record({sec});
"""))

audio_data = None

def record_callback(base64_string):
global audio_data
audio_data = base64.b64decode(base64_string)

output.register_callback('notebook.record_callback', record_callback)

録音を開始

record(5)

このスクリプトを実行すると、ブラウザのマイクを使用して音声を録音できます。録音データは audio_data 変数に保存されます。


方法 2: ipywebrtc を使う

Google Colab は ipywebrtc ライブラリを使って、マイク音声を録音できます。

!pip install ipywebrtc

from ipywebrtc import AudioRecorder, CameraStream
import IPython

stream = CameraStream(constraints={'audio': True, 'video': False})
recorder = AudioRecorder(stream)

recorder.record()

録音を開始してから数秒後に、以下のコマンドで録音を停止し、音声ファイルを取得できます。

recorder.stop()
audio = recorder.audio
IPython.display.display(audio)


方法 3: ローカルで録音し、Colab にアップロード

ローカルPCで音声を録音し、Colab にアップロードするのが一番確実な方法です。

  1. PCのマイクで .wav や .mp3 を録音

  2. Google Colab にアップロード

  3. pydub や librosa で処理

from google.colab import files

uploaded = files.upload()


Google Colab でのマイク録音は制限が多いため、ローカルで録音した音声をアップロードするのが最も簡単で確実な方法です。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?