You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Audio-file export (章を音声ファイルへ書き出し). The 読み上げ menu can
render the current chapter to a single audio file using the same voices and
原文/訳文 rule as playback, with a progress dialog and cancel. Blocks
synthesized by different engines/sample rates (VOICEVOX 24 kHz, Piper
22.05 kHz, OS voices) are resampled into one stream with a 300 ms pause
between paragraphs. OS voices are used via QTextToSpeech's synthesize
capability where the engine supports it; VOICEVOX and Piper always support
export. WAV (16-bit mono) is written directly; MP3 / M4A are encoded
through ffmpeg (auto-detected on PATH, or set 読み上げ > 音声設定 >
ffmpeg) — MP3 at ~130 kbps VBR (-q:a 4), M4A as 96 kbps AAC.
[0.5.1] - 2026-07-12
Added
Local AI voices for read-aloud: VOICEVOX and Piper. Besides the OS
voices, the voice pickers list the speakers of a running VOICEVOX server (VOICEVOX: 四国めたん (ノーマル), Japanese) and the .onnx voice models of a local Piper install (Piper: en_US-lessac-medium, multi-language). Picking a prefixed voice routes that
language to that engine — so e.g. Japanese can be spoken by VOICEVOX while
English in the same book falls back to an OS voice. The VOICEVOX endpoint
(default http://localhost:50021) and the Piper executable / voices folder
are set in 読み上げ > 音声設定. Speech rate maps to VOICEVOX speedScale /
Piper --length_scale; synthesized audio plays through Qt Multimedia (the
engines are built only when that module is present).
[0.5.0] - 2026-07-12
Added
Read-aloud (読み上げ). The current chapter can be spoken block by block
with the OS speech voices (Qt TextToSpeech; WinRT/SAPI on Windows,
AVSpeechSynthesizer on macOS, speech-dispatcher on Linux). Reading follows
the translation display mode — 原文 and 対訳 read the source text, 訳文
reads the translation (falling back to the source where none is cached
yet) — with the voice matched to the spoken language. The spoken paragraph
is tinted and auto-scrolled into view, <ruby> text is spoken as its <rt> reading instead of base + furigana
concatenated, reading starts from the paragraph currently on screen, and the
chapter end can auto-advance into the next chapter (読み上げ menu toggle).
Speech rate and a per-language voice are configurable in 読み上げ > 音声設定;
play/pause/stop live on the toolbar and in the new 読み上げ menu
(Ctrl+Shift+S toggles). Builds without Qt TextToSpeech still compile, with
the actions reporting that no speech engine is available.