dsh-tts
Text-to-speech plugin for dsh: a single tts tool (synth/voices/providers/models/status/phonemize verbs) over OpenAI-compatible TTS backends, configured via DSH_TTS_* env or the dsh-tts: settings section 适合需要在DSH中调用外部TTS服务进行语音合成和发音处理的用户。
同名パッケージの別リポジトリ
インストール
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xuan25/dsh-ttsドキュメント
README 全文を読む ↗Configuration
Providers are configured in any of four layers, lowest to highest priority;
the providers verb reports the originating layer of every field, so a
shadowed value is never silent:
- the built-in default (
api: openai-compatible), - the
DSH_TTS_*env contract (static per process boot), - the cordis config layer (a patch entry with id
dsh-ttsand aconfigobject, or profile-level patches), - the
dsh-tts:section in the user settings document ($DSH_HOME/settings.yaml), which the plugin re-reads on every call, so settings edits apply without a restart.
dsh-tts:
defaultProvider: local
providers:
local:
baseURL: http://:
/v1
hosted:
baseURL: https://api.example.com/v1
apiKeyEnv: DSH_TTS_HOSTED_KEY
models: [kokoro-v2]
displayName: Hosted Speech
The env contract mirrors the config fields 1:1: DSH_TTS_DEFAULT_PROVIDER,
and per route the variables `DSH_TTS_PROVIDER__BASEURL`, `DSH_TTS_PROVIDER__API`, `DSH_TTS_PROVIDER__APIKEYENV`, `DSH_TTS_PROVIDER__HEADERS`, `DSH_TTS_PROVIDER__MODELS`, `DSH_TTS_PROVIDER__DISPLAYNAME`. The segment is the route name
uppercased with - written as _. The headers value is a JSON object
string, and the models value is a comma-separated list of model ids. The
baseURL value is the OpenAI-compatible base URL including the /v1 prefix
(the same shape as an LLM provider base URL); the plugin appends
/audio/speech, /audio/voices, and /models to it verbatim, and it
addresses /health and /dev/phonemize at the server root, which it derives
by stripping a trailing /v1 from the base URL. The apiKeyEnv value is a
reference to an environment variable name, never a secret in config; per
request the value resolves from the process environment, then from
$DSH_HOME/.credentials.yaml.