概览
dsh-phononspeak
README / ZH
插件文档
目录摘要
dsh.pub 核对固定版本的组合包契约、运行时事实与分发语义;完整 README 请查看源仓库。
在 GitHub 阅读完整 READMELIMITATIONS
已知限制
- **The Pocket model speaks like a parliament.** It was trained on 976 hours of Czech parliamentary speech: adults, formal register, many men. Conversational Czech, children and casual word order are weaker. Good narration, not a voice actor. - **Piper mispronounces Czech words.** Measured on the raw engine: "Vltava" comes out as "Voltava" and "Kč" as "káčej". The normaliser rewrites money before synthesis, so "Kč" reaches the engine as "korun"; place names and loanwords are not rewritten, and those still slip. Piper is the cheapest engine, not the best one. - **Supertonic has no streaming API.** We stream by sentence: the first sentence is synthesised and played while the next one is being made. That keeps the first sound early, but it is not a sample-level stream. - **macOS-first.** Linux and Windows have no `say`, no `afplay` and no `osascript`. The engines still work, but sound comes from the page, and notification plus repeat-until-acknowledged are macOS features. When no tab is visible on a non-macOS host, the system-playback path has nothing to play. - **Pocket costs about 1 GB** of Python and torch before the 438 MB model. Choose Supertonic or Piper if that is too much. - **The plugin speaks what it is told.** It normalises and shortens text, but it cannot tell whether the model's summary is a good summary. A vague summary is read out as confidently as a precise one. - **Speed is engine-dependent.** The host clamps every value to 0.7–1.6; `say` maps it to words per minute, Piper falls back to its default rate if its CLI rejects the flag, and Pocket TTS Czech has no speed control at all, so the slider does nothing on that engine. - **Paragraph-level, not conversation-level.** There is no history of what was read, no per-message "read this" button, no keyboard shortcut and no slash command in 0.1.0. - **The queue is bounded.** At most 24 waiting jobs: beyond that the oldest waiting job is dropped, and a single job is capped at 20 000 characters before normalisation.
