ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
ピアノのドミソに声を合わせる音感トレーナー
Translation pending
EducationTypeScript · PowerShellGitHub @rot1024OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗ピアノのドミソに合わせて声を出し、音程が合っているかを判定するスマホ向けの音感トレーナー。 画面を見ずに「お手本 → 歌う → 評価を聞く → 次へ」を自動で繰り返せる。
「音の並び」で、各コードの上で歌う音を ドミソ(1・3・5度)か ドレミファソ(1〜5度)から選べる。 ドレミファソはメジャーで ド・レ・ミ・ファ・ソ、マイナーで ミ と ファ の間が半音(自然的短音階)になる。 行ったり来たりは ドレミファソファミレド、ランダム順は5音を並べ替える。最初に鳴らす和音はどちらも三和音。
設定の「スライド」をオンにすると、どのモードでも「ドー」と声を切らずにドミソを一息で歌う練習になる。 キープ時間ぶん音を保つと次の音への合図が鳴り、そのまま次の音へ移る。 移ったあと最初に声が落ち着いた音程(着地)で判定するため、ずり上げ・ずり下げで合わせても「一発」にはならない。 一発で着地すると小さな高い音が鳴り、フレーズの最後に一番ずれた着地を読み上げて聞き比べさせる。
合格に必要なキープ時間は 0.5〜2 秒から選べる(既定 1 秒)。
外れたときは「低い/高い」を読み上げ、自分の音と正しい音を続けて鳴らして聞き比べさせ、1回だけ再挑戦できる。 2回続けて無音なら一時停止し、声を出すと再開する。
ホームの「チューナー」から、課題なしで自由に声を出して音程を見られる。 一番近い音名とずれ(セント)を表示し、音程の線が右から左へ流れる。判定の幅に入っている部分は緑になる。
ホームの「カラオケ」から。声だけの音声(先生の手本の録音、アカペラなど)を選ぶと、 声のある区間を検出して半音に合わせた音程バーを作る。再生しながら、流れてくるバーと自分の声の線を重ねて表示し、 曲の最後にスコア(バーの時間のうち判定の幅に入っていた割合)、合格した音符の数、全体の高め・低めの傾向を出す。
*.domiso.json として保存でき、次回は開くだけで解析を省ける。音声なしで開くとガイド音で歌える.domiso-take.json に書き出し。あとで「ファイルを開く」で戻せる)「保存して削除」「削除」ができる.domiso-plan.json に書き出せる(曲の解析データを含むので、
音声ファイルと一緒に開けばそのまま練習できる。段階の速さや合格点はファイルで変えられる)PC で AI によるボーカル分離(audio-separator、 既定モデルは Mel-Band RoFormer)を行い、アプリと同じコードで音程を解析する。
pnpm cli 曲.wav # 声と伴奏の両方を AI で分離
pnpm cli 曲.wav --inst 曲-inst.wav # 公式インストがあれば、位置を合わせて伴奏に使う
出力先(既定は ./<曲名>/)に <曲名>.domiso.json、<曲名>.vocals.m4a、<曲名>.inst.m4a、
<曲名>.original.m4a(前後の無音だけカットした原曲)、<曲名>.guide.m4a と <曲名>.guide.mid(ガイドメロディの音声と MIDI)ができる。
テンポは元の曲(打楽器を含むので拍が取りやすい)から検出する。マス目の細かさは --grid 16(既定)、--grid 8、
--grid off(声のとおり)で選べる。
音声はすべて同じ時間軸にそろっている。スマホに移し、カラオケの「ファイルを開く」で .json と .m4a をまとめて選ぶ(原曲は省いてもよい)。
必要なもの: Node.js、ffmpeg、uv。
分離に使う Python の環境(audio-separator、PyTorch など)は cli/separator/ の uv プロジェクトで、
pnpm cli が uv run で呼ぶときに自動で用意される(初回は PyTorch などのダウンロードで数分かかる)。前もって入れておくなら:
uv sync --project cli/separator
Linux と Windows では CUDA 版の PyTorch を入れる(GPU がなくても動く)。別の audio-separator を使うときは --separator <コマンド>。
初回はモデル(数百MB)を ~/.cache/domiso/models にダウンロードする。
RTX 5060 Ti では 3分45秒の曲が約30秒で終わる(BS-RoFormer は --model model_bs_roformer_ep_317_sdr_12.9755.ckpt。精度はほぼ同じで約5倍遅い)。
pnpm cli record # 鳴り始めを待って録音し、無音が5秒続いたら自動で止めて WAV に保存
pnpm cli record --process # 録音後、そのまま分離・解析まで(出力は録音ファイルの隣の <曲名>/)
pnpm cli record --list # 録音できるデバイスの一覧
pnpm cli record --device スピーカー # 既定以外の出力デバイスを録る(名前の一部でよい)
前後の無音はカットして保存する(前 0.2秒・後ろ 0.5秒の余白は残す)。Ctrl+C でもその時点までを保存する。
--silence <秒>、--threshold <dB>(既定 50 = -50 dBFS)、--max <秒>、-o <ファイル> で調整できる。
cli/wasapi-loopback.ps1 を動かしている。
--backend dshow にすると Windows 側の ffmpeg.exe で DirectShow から録る(Voicemeeter や VB-Cable、ステレオ ミキサー
など、再生音が流れ込む録音デバイスが必要。音を流しながら --probe で選べる)@DEFAULT_MONITOR@)を録る。WSL で Linux アプリの
音を録りたいときは --backend pulsepnpm install
pnpm dev # https で起動(スマホのマイクには HTTPS が必要)。同じ LAN のスマホから開く
pnpm test
pnpm build
main に push すると GitHub Actions で GitHub Pages にデプロイされる。