Skip to content

voicevox-jev-proxy

Japanese tool that has Jev fix VOICEVOX text-to-speech readings, word boundaries and optionally intonation via choice questions.

ProxybetaMIT

Overview

voicevox-jev-proxy corrects how the VOICEVOX Japanese text-to-speech engine reads sentences. It splits text into words with Sudachi and gathers reading candidates from UniDic, Sudachi and JMdict, then asks Jev multiple-choice questions: where a word boundary falls after a kanji followed by hiragana, where accent phrases should break, which reading a word has, and whether "www" or 笑 indicates laughter (and so should not be read). The sentence is rewritten and re-synthesized with the chosen dictionary accent types.

With --intonation, a second request asks whether accent phrases attach to the previous one, the sentence-final type (statement, question, confirmation) and how phrases modify each other; this mode is still in development. Answers below a confidence threshold (0.6 by default, 0.8 for phrase height) are not used. It offers a command that writes WAV files and a VOICEVOX-compatible API server. Documentation is in Japanese; MIT licensed.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich reading does this word have?—
ChoiceWhere does the word boundary fall after this kanji followed by hiragana?—
Yes / noDoes www or 笑 here express laughter?yes · no
ChoiceWhat is the sentence-final type (statement, question, confirmation)?statement · question · confirmation

How it works

  1. Tokenize the sentence and collect reading and accent candidates.
  2. Ask Jev boundary, phrase and reading questions (one request per sentence).
  3. Rewrite the sentence and re-synthesize with VOICEVOX.
  4. Optionally run a second request to correct intonation.

Strengths

  • Only one request per sentence by default, and none when nothing is ambiguous.
  • Confidence thresholds avoid applying uncertain corrections.
  • Drop-in VOICEVOX-compatible API server.

Caveats

  • Intonation correction is still immature.
  • Requires downloading Sudachi and JMdict dictionaries.
  • Japanese documentation.

Getting started

uv sync, set TYPESAFE_API_KEY and dictionary paths in .env, then uv run voicevox-jev-correct "<sentence>"

At a glance

Type
Proxy
Status
beta
Language
Python
Runtime
CLI + VOICEVOX-compatible API server
Has code
yes
License
MIT

Use cases and integrations

How curated lists describe it

  • This project integrates Jev to provide structured decisions for its workflow. See the repository for implementation details.

    logicrw/awesome-jev-projects

Frequently asked questions

What does Jev decide?

Word boundaries, accent phrase breaks, readings, laughter markers and optionally intonation.

How many requests per sentence?

One by default, two with --intonation (or one with --requests 1).

What if Jev is unsure?

Answers below the confidence threshold are not applied.

Related projects

  • Chrome extension and web app that find YouTube sponsor reads with Jev from transcripts or audio and skip them.

    PluginbetaJavaScript
  • Home Assistant conversation agent that maps Assist commands to built-in intents using a Jev fan-out of typed questions.

    ProjectbetaPython
  • CLI that classifies an artist's discography by theme, mood and lyrical complexity with Jev and shows a terminal dashboard.

    AppprototypeTypeScript
  • Undocumented app that uses Jev to classify text and pick an emoji reaction.

    ProjectprototypePython
  • Web app that sorts large playlists by each song's main singing language using Jev, in batches of 100 with four in parallel.

    ProjectprototypeTypeScript
  • Home Assistant conversation agent that resolves commands from one System One call with a fan-out of typed questions, asking when unsure.

    ProjectprototypePython