ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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 にデプロイされる。