返回顶部
o

omnivoice全能声纹工具

All-in-one voice identity toolkit: speaker identification, voice library management, voice cloning, and speech-to-text. The only OpenClaw skill with speaker identification — recognize WHO is speaking, not just WHAT they said. 10 operations: identify speakers, manage a voice library (CRUD), clone voices, transcribe audio, voice swap, and persona voice replies. Activate when user sends voice/audio, asks to identify a speaker, manage a voice library, clone someone's voice, transcribe audio, or want

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
106
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

omnivoice

OmniVoice

四项能力下的十项操作:识别(认)·管理(存)·转写(听)·克隆(说)。

依赖项

组件安装方式用途
Whisperpip install openai-whisper语音转文字
说话人识别
pip install transformers librosa | 说话人识别(UniSpeech-SAT) | | CosyVoice2 | SiliconFlow API(SFAPIKEY) | 语音克隆 | | ffmpeg | 系统包 | 音频格式转换 |

语音参考文件存储在 workspace 根目录的 voice-refs/ 文件夹中。
元数据存放在 TOOLS.md 文件的语音库部分。
格式规范请参见 references/voice-library-format.md

操作

操作 1 · 说话人识别(声纹查询)

输入:音频 → 输出:说话人身份(或未知)

bash
python3 scripts/voice_identify.py <音频文件> [--threshold 0.75]

使用 UniSpeech-SAT x-vector 嵌入向量,将音频与所有 voice-refs/-ref.* 文件进行比对。
首次运行时会下载模型(约 360MB)到 /tmp/hf_models/ 目录。

准确度: 能可靠区分男声和女声。同性别说话人需要 ≥5 秒音频才能获得最佳效果。默认阈值为 0.75;如需更严格的匹配,可提高至 0.85。

操作 2 · 声音入库

输入:音频 + 说话人名称 → 存入语音库

  1. 1. 将音频复制到 voice-refs/<名称>-ref1.<扩展名>
  2. 转写获取参考文本:whisper <音频> --model small --outputformat txt --outputdir /tmp
  3. 在 TOOLS.md 中添加条目(格式参见 references/)
  4. 在 voiceidentify.py 的 SPEAKERMAP 中注册说话人

优质参考音频: 10-15 秒清晰语音,噪音少,语速自然。最少 5 秒。

操作 3 · 语音库 CRUD(声音库管理)

  • - 列出: 查看 TOOLS.md 语音库部分 + ls voice-refs/
  • 添加: 参见操作 2
  • 更新: 替换 voice-refs/ 中的文件,更新 TOOLS.md 条目
  • 删除: 从 voice-refs/ 中移除文件,删除 TOOLS.md 条目,从 SPEAKER_MAP 中移除

操作 4 · 声音克隆

输入:文本 + 语音库说话人 → 输出:该说话人声音的音频

bash
set -a; source <包含SFAPIKEY的环境变量文件>; set +a

python3 scripts/cosyvoice_clone.py \
--text 要朗读的文本 \
--ref voice-refs/<说话人>-ref1.<扩展名> \
--ref-text 参考音频中的内容 \
--output /tmp/clone_output.wav

参考音频过长(>15 秒):先用以下命令截取前 15 秒 ffmpeg -y -i <参考音频> -t 15 -ar 24000 -ac 1 /tmp/ref_trimmed.wav。

操作 5 · 纯转文字

输入:音频 → 输出:文本

bash
whisper <音频文件> --model small --outputformat txt --outputdir /tmp --language <语言>

支持语言:zh(中文)、en(英文)、ja(日文)。省略参数则自动检测。

操作 6 · 转文字+识别

输入:音频 → 输出:谁说了什么

同时运行操作 5 和操作 1,合并输出两个结果。

操作 7 · 声纹验证

输入:两个音频文件 → 输出:是否为同一人

bash
python3 scripts/voice_identify.py <音频1> --threshold 0.75
python3 scripts/voice_identify.py <音频2> --threshold 0.75

比较两次运行中排名最高的说话人。如果匹配 → 同一人。
如需不依赖语音库进行直接成对比较,可提取嵌入向量并计算余弦相似度(参见 voice_identify.py 内部实现)。

操作 8 · 声音换皮

输入:音频 + 语音库说话人 → 输出:相同内容,不同声音

  1. 1. 转写输入音频(操作 5)
  2. 使用目标说话人的声音进行克隆(操作 4),使用转写得到的文本

操作 9 · 人格化语音回复·语音版

输入:音频问题 + 语音库说话人 → 输出:该说话人声音的 AI 回答

  1. 1. 转写问题(操作 5)
  2. 通过 LLM 生成回答文本
  3. 使用目标说话人的声音克隆回答(操作 4)

操作 10 · 人格化语音回复·文字版

输入:文本问题 + 语音库说话人 → 输出:该说话人声音的 AI 回答

  1. 1. 通过 LLM 生成回答文本
  2. 使用目标说话人的声音克隆回答(操作 4)

发送音频(飞书)

bash
set -a; source <环境变量文件>; set +a
bash scripts/feishusendaudio.sh <接收者ID>

将 wav 转换为 opus 格式,上传,以语音消息形式发送。
需要 FEISHUAPPID + FEISHUAPPSECRET 环境变量。

从视频中提取音频

bash
ffmpeg -y -i <视频文件> -vn -ar 24000 -ac 1 /tmp/extracted_audio.wav

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 omnivoice-1776030916 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 omnivoice-1776030916 技能

通过命令行安装

skillhub install omnivoice-1776030916

下载

⬇ 下载 omnivoice v1.0.0(免费)

文件大小: 8.85 KB | 发布时间: 2026-4-13 11:16

v1.0.0 最新 2026-4-13 11:16
- Initial release of OmniVoice: an all-in-one voice identity toolkit.
- Provides ten operations including speaker identification, voice library management, voice cloning, speech-to-text, and persona voice replies.
- Unique feature: speaker identification—recognize WHO is speaking, not just what they said.
- Supports audio transcription, voice swap, and CRUD operations on a voice library.
- Works with English, Chinese, and Japanese input; compatible with Feishu message sending.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部