feat(darwin): AquesTalkPlayer を宣言して ゆっくり音声を macOS で生成できるようにする - #600
Open
gapul wants to merge 2 commits into
Open
feat(darwin): AquesTalkPlayer を宣言して ゆっくり音声を macOS で生成できるようにする#600gapul wants to merge 2 commits into
gapul wants to merge 2 commits into
Conversation
Windows/ゆっくりMovieMaker/AviUtl を経由せずに ゆっくり音声の wav を作れる ようにする。CLI (-P/-T/-F/-W) がウィンドウを出さずに合成するので、台本から ナレーションを一括生成できる。 配布物が Cloudflare Turnstile で守られていて fetchurl が 403 になるため requireFile を使う。バージョン更新時のみ手で dmg を store に入れる。
VOICEVOX 互換エンジン (~/Developer/github.com/gapul/yukkuri) が読み・ アクセント解析に Open JTalk を使う。標準ライブラリで賄えない唯一の依存 なので宣言に入れ、チェックアウト側で nix build の out-link を持たなくて よいようにする。 python3 ではなく yukkuri-python という名前で出す。1つのプログラムのため の環境が、他の全部が使う python を決めてしまわないように。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
なにを
ゆっくり音声(AquesTalk)の合成を macOS だけで完結させるため、AquesTalkPlayer を宣言に追加する。Windows / ゆっくりMovieMaker / AviUtl を経由しなくてよくなる。
CLI が
-P <プリセット> -F in.txt -W out.wavでウィンドウを出さずに合成するので、台本から一括でナレーション wav を作れる。話速・音程・声質は GUI 側でプリセットとして保存して、CLI からは名前で呼ぶ(れいむ/まりさは同梱)。requireFile を使う理由
配布 URL が Cloudflare Turnstile で守られていて、ブラウザ以外は 403 を返す(IPv4/IPv6・UA・Referer・Cookie いずれも通らないことを確認)。したがって
fetchurlでは取得できない。requireFileにしてハッシュだけを宣言し、実ファイルはバージョン更新時に一度だけ手で store に入れる。1.0.1 は 2025-08-29 リリースなので、この手作業はほぼ発生しない。
実装メモ
undmgが読めない(only HFS file systems are supported)。vroid-studio / aivisspeech と同じく7zzで展開する。$out/bin/aquestalkplayerはバンドル内実行ファイルへの symlink ではなく、実パスを exec するラッパー。symlink 経由だとアプリが自分のバンドルを見つけられず exit 15 で死ぬ。makeWrapperも argv[0] を書き換えるので同じ理由で不可。検証
nix build成功、aquestalkplayer -P れいむ -T ... -W out.wavが exit 0 で wav を出力(44000Hz mono 16bit)codesign -vが通るnixfmt/deadnix/gitleaks通過just checkは本変更なしでも同じ箇所で落ちる既存の失敗(/nix/store/Developer/.../ai-agent-state/claude/settings.jsonの絶対パス)。本 PR とは無関係。