fighting-konoha/guide/ultimate-voice.md

3.0 KiB

Voice ultimate ARCO — Dylan

Status: pengguna memilih Dylan. File final arco-ultimate-dylan.mp3 sudah dipasang pada awal ultimate/cut-in ARCO. Holden dan Archie tetap disimpan sebagai kandidat arsip, tidak dimainkan oleh runtime.

Script Inggris yang sama untuk setiap kandidat:

Helios Squadron! Open fire!

Provider Higgsfield, model text2speech_v2, varian elevenlabs, voice_type: preset. Voice ID berasal dari daftar resmi Higgsfield dan ketiga voice dipilih pengguna untuk percobaan. Ini hasil generasi kalimat ultimate baru, bukan sampel preview bawaan voice.

Kandidat Voice ID File
Dylan b847bc29-f184-583a-8ad9-d1f1e16d1a60 dylan.mp3
Holden 3c9d6053-6334-592c-8997-4e325286af3f holden.mp3
Archie bd072316-f77c-588b-b6e5-e46b9b03d008 archie.mp3

generation.json menyimpan pilihan final, prompt, parameter, job ID, URL sumber, file lokal, durasi hasil probe, checksum, dan hasil verifikasi decode. File runtime identik dengan kandidat Dylan: SHA-256 25ef0d218a87f53186f73363438dcea65dd5a065c103bee15fb9dd7e9d8aa249. Durasi container hasil ffprobe sekitar 2,273 s; browser melaporkan durasi playable 2,24 s.

Perilaku runtime

  • Dylan dan Holden FENR dipreload pada HTMLAudioElement lokal terpisah tanpa autoplay, dengan satu voice aktif agar tidak bertumpuk. Tidak membutuhkan stream Higgsfield saat game dimainkan. Aturan prioritas voice pemain/AI: fenr-voice.md.
  • Voice dimulai pada startSquadron setelah input pengguna yang valid. Tombol P yang ditolak cooldown tidak mengulang voice.
  • Volume voice mengikuti slider game dengan pengali 1,25 (dibatasi 1); mute berlaku pada voice dan SFX. Gain SFX menjadi 38% selama voice sedang berjalan, lalu pulih setelah voice berakhir/berhenti.
  • Pause dan pengaturan menjeda voice; resume melanjutkan posisi yang sama. Reset menghentikan dan mengembalikannya ke awal.
  • Saat tab disembunyikan voice dijeda tanpa mengubah preferensi pause game. Voice yang sudah tidak relevan tidak diputar terlambat setelah summon selesai.
  • Tidak ada perubahan pada cast 0,50 s, damage, cooldown, atau kebebasan bergerak. Audio tidak menahan karakter.
  • Rejection autoplay/load ditangani tanpa merusak gameplay. Token tiap percobaan mencegah Promise play lama membatalkan voice baru setelah reset/pause/resume.
  • Preview visual yang dipicu programmatically tanpa user gesture tidak mengeluarkan voice otomatis.

Verifikasi

41 tes gameplay tetap lulus, ditambah 9 tes pada node tests/ultimate-voice.test.cjs untuk preload/start, duplikasi cast, pause/settings, reset, volume/mute/ducking, visibility, dan race/error Promise play.

Browser nyata: readyState4, durasi2,24 s, voiceActive=true, paused=false, playback time bergerak, start counter1, dan error kosong. Pause cepat saat awal voice mempertahankan active state; resume melanjutkan playback dengan start counter tetap1. Bukti ini memverifikasi pemutaran browser dan perilaku kontrol, bukan volume speaker/OS atau penilaian timbre melalui tool.