Loopit は、歌や英語フレーズ、楽器フレーズなどを「区間ループ」に切り出して、
再生→自分で発声/演奏→録音→比較をワンタップで繰り返せる Android アプリです。
短いループを何度も回すことで、感覚的な練習ではなく、
「1フレーズずつ確実に上達している感覚」を得られることを目指しています。
歌やスピーチを練習するとき、1曲まるごと流しながら練習しても、 本当に直したい箇所はごく一部であることが多いです。 Loopit は、その「直したい一部」だけを切り出して、徹底的にループ再生するためのアプリです。
既存の音声ファイルや動画から A–B 区間を指定すると、 その部分だけを連続再生。 同時にマイク入力を録音し、波形やスペクトログラム上で 「元の音」と「自分の音」を並べて比較できます。 ループごとの達成度や回数を記録することで、 練習ログとしても機能します。
Media3 ExoPlayer で音源を再生しつつ、AudioRecord でマイクからの入力を取得します。 ループの開始・終了位置や、ユーザーのメモ/タグは Room に保存され、 各ループは「練習単位(LoopUnit)」として管理されます。
ただの「シークバー」ではなく、波形ビューの上に RangeSlider を重ねることで、 息継ぎや子音の位置を見ながらループ区間を決められるようにしています。 開始/終了ハンドルをドラッグすると、その位置にスナップするようにし、 細かい調整もやりやすくしました。
ループ再生中は、 ・上段:元の音源のスペクトログラム(事前計算) ・下段:自分の声のスペクトログラム(リアルタイム) を縦に並べて表示します。 さらに、各フレームで F0 を抽出し、2 本のラインとして重ねることで、 ピッチのずれを一目で把握できるようにしています。
Loopit では、1つのループを「1問の練習問題」として扱います。 各ループに対して「今日何回回したか」「いつクリア判定にしたか」 といった情報を記録し、 線形代数の問題集を解く感覚で、歌やフレーズを潰していける設計を目指しました。
脳波(Muse-S)や心拍のログと組み合わせることで、 「どのフレーズを練習しているときに一番集中できているか」 「どこから先は集中が落ちやすいか」 といった情報を抽出する構想もあります。 Loopit は、そのための「ループ単位のタイムスタンプ付きログ」としても機能します。
自分の歌声と、目標とする Vtuber の歌声を 1 フレーズずつループしながら比較し、 F0 のズレやビブラートの深さの違いを確認しました。 感覚ではなく、スペクトログラムとラインとして可視化されることで、 「どこまで寄ってきたか」を数値として把握できます。
現状のバージョンでは、 ・長時間の録音でメモリ使用量が増える ・F0 が不安定な箇所(息・ささやき声など)の可視化 などに課題があります。 また、UI 上での操作負荷(ハンドルの細かいドラッグ)をどう減らすかも 今後の改善ポイントです。
Loopit を使って、歌のワンフレーズを切り出し、 区間ループしながら自分の声と比較している様子のデモ動画です。
将来的には、Loopit を単独のアプリではなく、 ・英語発音練習(Englishing) ・歌唱トレーニング(スペクトログラムアプリ) ・EEG/集中度計測 といった他のプロジェクトと連携させて、 「1つのループを、いろいろな角度から磨けるプラットフォーム」 に育てたいと考えています。
UI/UX・オーディオ処理・他アプリとの連携の3軸で進めます。
これまで、歌や英語の練習は「1曲通し」でやることが多く、 どこが改善されたのか分かりにくいものでした。 Loopit を作りながら、「練習もアルゴリズムと同じで、 単位を小さく刻んで、一つずつ最適化していくべきだ」と改めて感じました。
自分の声が、目標とする声に少しずつ近づいていくのを スペクトログラムや F0 のラインで見るのは、 数学の証明が一歩ずつ積み上がっていく感覚に近いです。 技育博のプロジェクト群の中でも、 「自分自身をアップデートするためのツール」として大事に育てていきたいです。