mcpField
V
voicegen-port

voicegen-port

本地服务
github.com/CloudCorpRecords媒体与设计02 周前更新

关于 voicegen-port

voicegen-port 是用于调用 ElevenLabs 语音与声音功能的命令行工具和 MCP 服务,面向需要语音处理能力的 Agent。它支持语音生成、转录、音频净化、音效生成和声音库管理,并以摘要形式呈现生成的音频文件信息。

主要功能

  1. 01文本转语音
  2. 02生成音效
  3. 03语音转录
  4. 04分离人声轨道
  5. 05搜索与管理声音
  6. 06音频文件摘要

适用场景

  1. 01将文本生成为语音
  2. 02转录音频录音
  3. 03从嘈杂片段中分离语音
  4. 04设计并保存声音

MCP 相关

其 `mcp` 子命令启动 stdio MCP 服务,提供 14 个已记录的 ElevenLabs 语音、音频和声音管理工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-voicegen-port": {
"command": "npx",
"args": [
"-y",
"@reneturcios/voicegen-port"
]
}
}
}
启动命令npx -y @reneturcios/voicegen-port

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/voicegen-port0.1.0
ocighcr.io/cloudcorprecords/voicegen-port:0.1.0

工具

14

收录的工具列表 · 更新于 2 周前

参数类型必填说明
textstring是要转换为语音的文本。
model_idstring否要使用的文本转语音模型 ID;省略时默认为 eleven_multilingual_v2。
voice_idstring否用于语音生成的语音 ID;省略时使用文档中指定的默认语音。
output_formatstring否生成语音的音频输出格式,例如 mp3_44100_128 或 pcm_44100。

详细介绍

voicegen-port

voicegen-port 通过 ElevenLabs API 将文本转换为语音,也能将音频转换回文本。它可以用选定的声音朗读一段文字,根据描述创作音效,转录录音,清理嘈杂片段并提取其中的人声,还能管理声音库本身——根据文字描述设计新声音,并保存值得留存的声音。它可通过命令行运行,也可作为供 Agent 使用的 MCP 服务运行。

此工具需要 ElevenLabs API 密钥。请将密钥放入 ELEVENLABS_API_KEY 环境变量;密钥会通过 xi-api-key 请求头发送到 API,绝不会出现在输出中。如果未设置该变量,每次调用都会失败,并显示指出该变量的错误。

音频是二进制数据,此工具会如实处理:生成调用会报告产物摘要(字节数、base64 长度、内容类型),而不是将原始音频倾倒到文本输出中。

安装

npx @reneturcios/voicegen-port voices

或者运行容器映像:

docker run -i -e ELEVENLABS_API_KEY ghcr.io/cloudcorprecords/voicegen-port

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。

CLI

export ELEVENLABS_API_KEY="your ElevenLabs API key"

voicegen-port tts "Welcome to the show" --voice v_george
voicegen-port sfx "rain on a tin roof" --duration 4
voicegen-port stt interview.mp3 --language en
voicegen-port isolate noisy-call.mp3
voicegen-port voices
voicegen-port voice v_rachel
voicegen-port search-voices "narrator" --page-size 5
voicegen-port design "A calm British narrator" --text "Sample line"
voicegen-port create-from-preview gen_1 "Calm Narrator"
voicegen-port add-voice "Studio Voice" --description "Warm and close"
voicegen-port delete-voice v_old
voicegen-port models
voicegen-port subscription
voicegen-port user

voicegen-port --version

退出代码:成功时为 0,调用失败时为 1(包括缺少 ELEVENLABS_API_KEY 或 API 错误),用法错误时为 2。

MCP 服务

一个二进制文件同时提供两种用法。mcp 子命令会启动一个 stdio MCP 服务:

npx -y @reneturcios/voicegen-port mcp

MCP 客户端配置:

{
  "mcpServers": {
    "voicegen-port": {
      "command": "npx",
      "args": ["-y", "@reneturcios/voicegen-port", "mcp"],
      "env": { "ELEVENLABS_API_KEY": "your ElevenLabs API key" }
    }
  }
}
工具

以下是官方 ElevenLabs MCP 服务中有文档说明的核心子集(14 个工具)。对话式 AI 和电话服务工具(create_agent、list_agents、get_agent、delete_agent、add_knowledge_base_to_agent、make_outbound_call、list_phone_numbers),以及 voice_clone、speech_to_speech 和 play_audio 尚未实现;请参阅构建报告。

工具输入返回内容
text_to_speechtext(必填)、voice_id、model_id、output_format(可选)音频产物摘要:字节数、base64 长度、内容类型。
text_to_sound_effectstext(必填)、duration_seconds、prompt_influence(可选)生成音效的音频产物摘要。
speech_to_textfile_path(必填)、language_code、model_id(可选)转录内容,包括转录文本。
isolate_audiofile_path(必填)分离出的人声轨道的音频产物摘要。
list_voices—所有声音:每个声音的 ID、名称和类别。
get_voicevoice_id(必填)完整的声音记录。
search_voicessearch(必填)、category、page_size(可选)符合条件的声音,摘要格式与上述相同。
text_to_voiceprompt(必填)、text(可选)声音设计预览,包括生成的声音 ID。
create_voice_from_previewgenerated_voice_id、voice_name(必填)、voice_description(可选)保存后的声音记录。
add_voicename(必填)、description(可选)添加的声音记录。
delete_voicevoice_id(必填)API 的删除响应。
list_models—所有模型:每个模型的 ID、名称和描述。
check_subscription—账户的订阅记录。
get_user_info—API 密钥所有者的用户记录。

调用会向 https://api.elevenlabs.io/v1 发送 JSON 请求体。 speech_to_text 和 add_voice 在上游使用 multipart 上传;此重建版本将它们处理为 JSON 请求体,并在其中指定文件或声音。此简化做法已记录在构建报告中。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。