首页龙虾技能列表 › Text to Voice Local — 技能工具

Text to Voice Local — 技能工具

v1.4.0

Local text-to-voice generation for OpenClaw workspaces using a canonical txt-to-mp3 pipeline. Use when the user wants to turn any prepared text into voice, a...

1· 87·0 当前·0 累计
by @betonimig (Ildar)·MIT-0
下载技能包
License
MIT-0
最后更新
2026/4/7
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
The skill's files, scripts, and runtime requirements are consistent with a local text→speech wrapper; it asks for nothing unrelated and contains no hidden network endpoints or unexplained privileged behavior.
评估建议
This skill appears to do what it says: convert local text files to MP3 using node + node-edge-tts and ffmpeg, and maintain a canonical latest.mp3 path. Before installing/using it: (1) review and decide whether you’re comfortable installing node-edge-tts globally (npm i -g), since that requires network access to npm and the TTS library will contact its remote TTS provider during generation; (2) run the scripts in a non-root workspace or inspect/adjust the state JSON canonical paths (the bundled s...
详细分析 ▾
用途与能力
Name/description (local text-to-voice) align with the provided scripts: they read text files, call a Node TTS helper, use ffmpeg to concat/encode chunks, and update canonical output/state files. Requested binaries (node, ffmpeg, node-edge-tts) are expected for this functionality.
指令范围
SKILL.md and the shell/js scripts limit their actions to workspace tmp and skill state paths; they read text files, produce mp3s, and update a last-output pointer. There are no instructions to read unrelated system files, access unrelated credentials, or transmit data to custom external endpoints. Note: the node dependency node-edge-tts will perform TTS and likely contact the remote TTS service as part of normal operation (this is expected for a TTS library).
安装机制
No automated install spec is present (the skill is instruction + scripts). The README tells the operator how to install node-edge-tts (npm i -g). That is reasonable, but users should be aware this requires running a global npm install and network access to npm; the skill itself does not embed or download external binaries automatically.
凭证需求
The skill does not request environment variables or external credentials. It uses OPENCLAW_WORKSPACE optionally and TTS_RETRIES/other shell variables if present — all proportional to operation. The included state files contain absolute example paths under /root/.openclaw/workspace, which are benign but operator-specific and should be adjusted when installed into another workspace.
持久化与权限
always:false and user-invocable; scripts only write to their own skill state directory and workspace tmp. The skill does not modify other skills or global agent settings.
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.4.02026/4/7

Add dependency checks with install hints in status and before voice generation

● 无害

安装命令 点击复制

官方npx clawhub@latest install text-to-voice-local
镜像加速npx clawhub@latest install text-to-voice-local --registry https://cn.clawhub-mirror.com

技能文档

Use the bundled scripts to create one stable local text-to-voice path.

Goal

Produce voice from any text file with:

  • one canonical input text path,
  • one canonical output mp3 path,
  • one high-level wrapper for routine use,
  • low-level scripts for debugging only.

Canonical paths

Default input text:

  • tmp/text-to-voice-input.txt

Canonical output:

  • tmp/voice-mode-latest.mp3

State directory:

  • skills/text-to-voice-local/state/

State pointer:

  • skills/text-to-voice-local/state/last-output.txt

Main command

For normal use, run:

  • scripts/text_to_voice.sh voice [voice] [max_direct_chars]

Useful helpers:

  • scripts/text_to_voice.sh status
  • scripts/text_to_voice.sh voices

status now also checks runtime dependencies and prints install hints when something is missing.

Examples:

scripts/text_to_voice.sh text
scripts/text_to_voice.sh voice ./tmp/text-to-voice-input.txt
scripts/text_to_voice.sh voice ./tmp/text.txt ru-RU-SvetlanaNeural 280

What the scripts do

  • scripts/text_to_voice.sh
- high-level entrypoint for normal use
  • scripts/tts_from_file.sh
- one text file to one mp3
  • scripts/tts_from_file_chunked.sh
- long text to multiple chunks and final merged mp3
  • scripts/voice_reply.sh
- safe wrapper that updates canonical output and pointer
  • scripts/voice_reply_latest.sh
- always refresh canonical latest mp3
  • state/text-to-voice.json
- stores default voice, max chars, and canonical paths
  • scripts/edge_tts.js
- low-level TTS helper used by the file wrappers

Install notes

Ensure these dependencies exist on the target machine:

  • node
  • ffmpeg
  • node-edge-tts

The skill checks these at runtime and, if something is missing, prints suggested install commands instead of failing silently.

Verify:

node -v
ffmpeg -version
node -e "require('node-edge-tts'); console.log('node-edge-tts ok')"

If node-edge-tts is missing:

npm i -g node-edge-tts

Setup steps on another OpenClaw

  • Copy this skill folder into the target workspace skills directory.
  • Make scripts executable.
  • Ensure tmp/ exists.
  • Put text into a txt file.
  • Run the main command.

Minimal setup:

chmod +x skills/text-to-voice-local/scripts/*.sh
mkdir -p tmp
skills/text-to-voice-local/scripts/text_to_voice.sh voice ./tmp/text-to-voice-input.txt

Delivery rule

If the result is sent as Telegram voice, send only the canonical file:

  • ./tmp/voice-mode-latest.mp3

Prefer sending text and voice as separate messages.

Important constraint

Progress printed by shell scripts is useful in terminal diagnostics, but chat-side live progress editing depends on OpenClaw preview streaming, not shell stdout alone.

When to use low-level scripts

Use low-level scripts only for debugging or careful manual control. Default to the high-level wrapper unless there is a reason not to.

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务