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?

MicroPython/CircuitPythonAdvent Calendar 2024

Day 25

micro:bit V2用MicroPythonの録音機能を試す

Last updated at Posted at 2024-12-25

2023年10月30日のv2.1.2以来、リリースのなかった micro:bit 用 MicroPython であったが、ひさびさに github を覗いてみたら audio-recordingなんてブランチがあって、「お、マイクから録音できるようになった?」ということで試してみました。

インストール

正式リリースされていないので、当然ソースコードからのビルドが必要となる。arm-none-eabi-gccのツールチェーンはセットアップしておこう。

その上で、以下を実施。

$ git clone -b audio-recording https://github.com/microbit-foundation/micropython-microbit-v2.git
$ git submodule update --init
$ make -C lib/micropython/mpy-cross
$ cd src
$ make

MICROBIT.hex ができあがるので、micto:bit V2 を USB に繋いでマウントされるストレージにコピーするとインストール完了。

サンプルを動かしてみる

test_recoed.py というサンプルがあるので、MicroPython のファイルシステムに main.py にコピーする。私はいつもながら mpremote を利用。

$ mpremote cp test_recoed.py :main.py

リセットしたら、録音スクリプトのスタート。

Aボタンを押しながら内蔵マイクに向かって話す。Aボタンを話したら録音終了。Bボタンを押すと内蔵スピーカで再生される。音はけっこうひどいが、話したように聞こえないこともない。外付けのスピーカーを使えば少しは音が良くなる。

API

まだドキュメントがないので調べてみる。

録音

audio.AudioRecording クラス

録音データ格納用のバッファらしい。コンストラクタの引数は durationとrate。

microphone.record_into() 関数

録音する。引数は buffer (AudioRecordingオブジェクト)とwait (録音終了を待つか。デフォルト True。Trueのときはどうやって録音止めるのだ? バッファ尽きるまで?)。

録音結果を返す。

microphine.is_recording() 関数

録音中なら True を返す。

microphone.stop() 関数

録音を終了

audio.play() 関数

引数は必須の source が 録音結果(microphone.record_into() の戻り値)、wait (再生終了を待つか。デフォルトはTrue)、pin (音の出力先。デフォルトは内蔵スピーカー)、return_pin (使い方不明)。

audio.sound_level()

再生音のレベルを返す。サンプルではこの値で口の動きのアニメーションを動かしていた。

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?