{
  "schemaVersion": 1,
  "title": "NPC voice decision audit and audition worksheet",
  "preparedAt": "2026-10-02T12:09:42.255Z",
  "sourceAccessDate": "2026-10-02",
  "method": "Original decision mapping assembled from the linked primary sources. Audition lines and proposed acceptance checks are original. No speech synthesis, listening comparison, or runtime test was conducted.",
  "sources": [
    {
      "id": "hf-launch",
      "publisher": "Hugging Face",
      "url": "https://huggingface.co/blog/open-tts-leaderboard"
    },
    {
      "id": "hf-board",
      "publisher": "Hugging Face",
      "url": "https://huggingface.co/spaces/hf-audio/open_tts_leaderboard"
    },
    {
      "id": "kyutai-model",
      "publisher": "Kyutai",
      "url": "https://huggingface.co/kyutai/pocket-tts"
    },
    {
      "id": "kyutai-voices",
      "publisher": "Kyutai",
      "url": "https://huggingface.co/kyutai/tts-voices"
    }
  ],
  "decisionAudit": [
    {
      "signal": "WER/CER",
      "sourceIds": [
        "hf-launch",
        "hf-board"
      ],
      "documentedScope": "ASR transcript error against input text",
      "supports": "Shortlisting for intelligibility in evaluated languages",
      "doesNotEstablish": "Dramatic performance or correct pronunciation of your invented names",
      "proposedCheck": "Compare the exact spoken words, names, and subtitles in the scene"
    },
    {
      "signal": "RTFx",
      "sourceIds": [
        "hf-board"
      ],
      "documentedScope": "Generated audio duration divided by generation time",
      "supports": "Throughput comparison under the selected hardware and batching conditions",
      "doesNotEstablish": "First audible response or sustained performance while your game runs",
      "proposedCheck": "Measure complete line time and audio underruns under the target game load"
    },
    {
      "signal": "TTFA",
      "sourceIds": [
        "hf-launch",
        "hf-board"
      ],
      "documentedScope": "First playable chunk for streaming, whole utterance for non-streaming; batch 1, median after warm-ups",
      "supports": "First-audio comparison within the benchmark protocol",
      "doesNotEstablish": "Cold-start or end-to-end game input-to-playback delay",
      "proposedCheck": "Record cold/warm request, synthesis, received-chunk, and audible-playback boundaries"
    },
    {
      "signal": "Speaker similarity",
      "sourceIds": [
        "hf-board"
      ],
      "documentedScope": "Similarity of generated and reference speaker embeddings in cloning evaluation",
      "supports": "A reference-identity signal within the evaluation",
      "doesNotEstablish": "Acting preference, consent, or rights clearance",
      "proposedCheck": "Audition character continuity and retain the voice permission record"
    },
    {
      "signal": "Pocket TTS vendor timing",
      "sourceIds": [
        "kyutai-model"
      ],
      "documentedScope": "Kyutai reports about 200 ms first chunk and 6x real time on MacBook Air M4 using two cores",
      "supports": "Considering a CPU-oriented candidate for an experiment",
      "doesNotEstablish": "The same performance on a target device or within a game",
      "proposedCheck": "Record hardware and model/voice revision, then measure on the target"
    },
    {
      "signal": "Voice asset terms",
      "sourceIds": [
        "kyutai-voices",
        "kyutai-model"
      ],
      "documentedScope": "Model access conditions and mixed per-folder voice licenses are documented separately",
      "supports": "Identifying the specific terms to review before using a voice",
      "doesNotEstablish": "Blanket commercial clearance or consent for every intended use",
      "proposedCheck": "Save exact file, terms, attribution, and permission evidence; resolve ambiguity before release"
    }
  ],
  "permissionExamples": [
    {
      "voiceGroup": "voice-donations / selected voice-zero",
      "catalogLicense": "CC0",
      "sourceId": "kyutai-voices"
    },
    {
      "voiceGroup": "alba-mackenna / vctk",
      "catalogLicense": "CC BY 4.0",
      "sourceId": "kyutai-voices"
    },
    {
      "voiceGroup": "expresso / ears",
      "catalogLicense": "CC BY-NC 4.0; non-commercial only",
      "sourceId": "kyutai-voices"
    }
  ],
  "runRecord": {
    "status": "not-run",
    "gameBuild": null,
    "device": null,
    "operatingSystem": null,
    "modelRevision": null,
    "voiceFileAndRevision": null,
    "language": null,
    "generationSettings": null,
    "modelTermsRecord": null,
    "voiceLicenseRecord": null,
    "attributionRecord": null,
    "consentRecord": null,
    "coldOrWarm": null,
    "sceneLoad": null,
    "firstAudibleBudgetMs": null,
    "repetitionCount": null,
    "reviewers": []
  },
  "auditionLines": [
    {
      "id": "line-01",
      "test": "Names",
      "text": "Bring the lantern to Mirewatch before dawn.",
      "intendedCheck": "Stable pronunciation of the place name",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-02",
      "test": "Quantity",
      "text": "Three brass keys. Only one opens the north gate.",
      "intendedCheck": "Correct number and restrictive meaning",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-03",
      "test": "Urgency",
      "text": "Wait. That bridge is moving.",
      "intendedCheck": "Urgency without losing the last word",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-04",
      "test": "Quiet",
      "text": "Keep your voice down; the walls are listening.",
      "intendedCheck": "Intelligibility at the intended quiet delivery",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-05",
      "test": "Shout",
      "text": "Get behind the stone pillar!",
      "intendedCheck": "Energy without clipping or harsh peaks",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-06",
      "test": "Short response",
      "text": "Understood.",
      "intendedCheck": "A useful start and finish on a very short line",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-07",
      "test": "Long instruction",
      "text": "Take the east stair, cross the empty gallery, and leave the blue seal beside the locked door.",
      "intendedCheck": "Pacing and a complete final clause",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-08",
      "test": "Punctuation",
      "text": "You found it? You found it.",
      "intendedCheck": "Question and statement separation",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-09",
      "test": "Character continuity",
      "text": "Welcome back, traveler. I kept your room.",
      "intendedCheck": "A recognizable character in a calmer mood",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    },
    {
      "id": "line-10",
      "test": "Interruption",
      "text": "First, check the rope; then lower the basket; finally, signal with the lantern.",
      "intendedCheck": "Clean cancellation and subtitle behavior",
      "results": {
        "pronunciationPass": null,
        "transcriptPass": null,
        "requestTimestamp": null,
        "synthesisStartTimestamp": null,
        "firstPlayableChunkTimestamp": null,
        "firstAudibleTimestamp": null,
        "audioDurationMs": null,
        "clipping": null,
        "loudnessNotes": null,
        "interruptionPass": null,
        "subtitlePass": null,
        "actingNotes": null,
        "failureClip": null
      }
    }
  ]
}
