资讯详情

Ever Gauzy 接入 ElevenLabs Scribe:语音转写(Dictation)AI Provider 插件完整指南

发布时间:2026/9/30 1:50:01

500+
企业客户服务经验
120+
行业领域内容覆盖
3000+
原创页面设计沉淀
98%
客户满意度

Ever Gauzy 接入 ElevenLabs Scribe:语音转写(Dictation)AI Provider 插件完整指南

后端前端企业应用MCP 服务【免费下载链接】ever-gauzyEver® Gauzy™ - Open Business Management Platform (ERP/CRM/HRM/ATS/PM) - https://gauzy.co项目地址https://gitcode.com/GitHub_Trending/ev/ever-gauzy点击查看免费下载Ever Gauzy 的 AI 聊天引擎gauzy/plugin-ai-chat通过插件化的 Provider 注册机制接入多家语音与聊天模型厂商。gauzy/plugin-ai-provider-elevenlabs正是其中专门负责ElevenLabs Scribe 语音转写speech-to-text的 Provider 插件它在应用启动时把elevenlabs注册进AiProviderRegistry为 AI 聊天的语音输入dictation功能提供音频转录能力。读完本文你将掌握该插件的定位、两个环境变量的含义、Scribe 语音模型的选择方式、BYOK自带密钥与全局环境变量的优先级关系以及底层transcribeMultipart请求是如何被构造与安全加固的。插件定位只做语音转写不参与聊天与 Anthropic、OpenAI 等既做聊天又做语音的 Provider 不同ElevenLabs 插件是一个voice-only仅语音的 Provider它在启动时向聊天引擎的AiProviderRegistry注册elevenlabschatCapable: false即永远不能被选为聊天模型它可以被租户设为默认语音 Providerdictation 转写通道但模型选择器里不会出现它的聊天选项。这一设计在 Provider 定义里体现得非常直白。查看 ai-provider-elevenlabs.provider.ts 可以看到models为空数组、defaultModel为空字符串而createModel()被实现为一个永远抛错的占位方法提示语为 ElevenLabs is a speech-to-text provider and cannot serve chat — select another provider for chat.。也就是说即使某个租户保存了 ElevenLabs 的密钥聊天引擎也不会把它当作可用的聊天模型。插件如何被装载BaseAiProviderPlugin 生命周期插件的实现非常精简整个类只有一行有效逻辑。查看 ai-provider-elevenlabs.plugin.tsPlugin({}) export class AiProviderElevenLabsPlugin extends BaseAiProviderPlugin { protected readonly definition elevenLabsProviderDefinition; }它继承自gauzy/plugin-ai-chat的抽象基类 base-ai-provider.plugin.ts。基类实现了两个生命周期钩子onPluginBootstrap()调用AiProviderRegistry.register(this.definition)把 Provider 定义注册进进程级注册表并打印绿色日志onPluginDestroy()调用AiProviderRegistry.unregister(this.definition.id)在插件卸载时移除注册。AiProviderRegistry见 provider-registry.ts是一个静态 Map 实现的注册表刻意不依赖 NestJS 依赖注入这样 Provider 插件无需引入聊天模块的 Nest 依赖图聊天引擎在请求时再从这个注册表读取 Provider 定义并按order字段排序ElevenLabs 的order为120。该插件的公共 API 表面index.ts只导出插件类和 Provider 定义两个符号。环境变量配置ElevenLabs 插件读取两个环境变量变量说明ELEVENLABS_API_KEY服务器级server-wideElevenLabs API 密钥在 ElevenLabs 官方的 App Settings → API Keys 页面创建。ELEVENLABS_BASE_URL可选的自定义 API 基础地址默认值为https://api.elevenlabs.io/v1。这两者在 Provider 定义中分别对应apiKeyEnvVars: [ELEVENLABS_API_KEY]和baseUrlEnvVar: ELEVENLABS_BASE_URL且defaultBaseUrl明确写为https://api.elevenlabs.io/v1。依据 provider.types.ts 的契约apiKeyEnvVars是一个数组凭证解析时按顺序检查、第一个非空值生效baseUrlEnvVar提供自定义基础地址的入口适合通过代理或私有网关转发 ElevenLabs 请求的部署这两个变量都属于environment来源仅在租户未配置自己的 BYOK 密钥时作为兜底。Speech-to-text 模型ElevenLabs Scribe插件内置了两款 Scribe 语音转写模型定义见 ai-provider-elevenlabs.provider.tsIdLabel界面显示名scribe_v1默认Scribe v1scribe_v1_experimentalScribe v1 (experimental)选择方式进入Settings → AI Providers → ElevenLabs → Speech model为当前租户挑选模型同时勾选Use as default voice provider即可把 ElevenLabs 设为该租户的 dictation 转写 Provider。未选择时代码回退到DEFAULT_SPEECH_MODEL scribe_v1见 ai-provider-elevenlabs.provider.ts。这套语音模型目录在聊天引擎的类型契约里对应IAiSpeechCataloguespeech.models是租户可选的转写模型列表speech.defaultModel是未选择时的默认模型见 provider.types.ts。转写调用时聊天引擎会优先使用租户凭证行里保存的speechModel取不到再回退到 Provider 自身的speech.defaultModel。底层转写请求POST /v1/speech-to-text插件实现的转写函数transcribeAudio见 ai-provider-elevenlabs.provider.ts会构造一次 multipart 请求请求地址{baseUrl}/speech-to-textbaseUrl优先取凭证里的自定义地址否则回退ELEVENLABS_BASE_URL或默认值并经过trimTrailingSlash去除尾部斜杠方法POSTmultipart 表单包含file音频文件、model_id注意是model_id而非model这是 ElevenLabs API 与 OpenAI 系/audio/transcriptions的关键差异、可选的language_code认证请求头携带xi-api-keyElevenLabs 专用请求头而非Authorization: Bearer返回从响应 JSON 的text字段读取转写文本。language_code只在调用方提供了语言提示时才发送格式为 ISO-639-1 如en或 BCP-47 标签未提供时由 ElevenLabs 自动检测。共享的 multipart 转写管道transcribeAudio复用了gauzy/plugin-ai-chat提供的共享函数transcribeMultipart见 openai-compatible-transcribe.ts。这个共享管道为所有语音 Provider 统一实现了音频扩展名推导根据浏览器MediaRecorder记录的 MIME 类型如audio/webm;codecsopus、audio/mp4推导 multipart 文件名后缀resolveAudioExtension因为 ElevenLabs 等上游服务依赖扩展名判断容器格式字段过滤值为undefined或空字符串的 multipart 字段不会被发送language_code未提供时即被跳过超时控制TRANSCRIBE_TIMEOUT_MS 60_000一分钟语音转写允许更长的处理时间见 openai-compatible-transcribe.tsSSRF 防护请求经由ssrfSafeFetch出站守卫循环/私网/链路本地目标默认被拒绝、DNS 解析后重新校验主机、不跟随重定向见 openai-compatible-transcribe.ts。只有当凭证显式允许私有端点isPrivateAiProviderEndpointAllowed(credentials)时才放行错误分类按状态码区分失败类型——401/403为key-rejected密钥被拒429为rate-limited限流400/415/422为audio-rejected音频被拒/格式不支持其余为通用http错误见 openai-compatible-transcribe.ts密钥脱敏与响应上限错误信息中的密钥会被redactSecret替换错误体最多读取 2048 字节成功响应最多缓冲 4 MiB、转写文本最多中继 64 KiBMAX_TRANSCRIPT_CHARS。BYOKbring your own key租户密钥优先插件支持 BYOK 模式。租户通过 AI 聊天凭证 API/api/ai-chat/credentials为elevenlabsProvider 保存的凭证总是优先于ELEVENLABS_*环境变量环境变量只在租户未配置任何凭证时作为服务器级兜底。这一优先级在凭证模型中由source字段承载见 provider.types.ts取值依次为tenant→environment→platform。租户凭证行还额外携带两个与语音相关的字段见 ai-provider-credential.entity.ts 附近与 ai-provider-credential.service.tsspeechModel该租户为这个 Provider 选定的转写模型isVoiceDefault是否将该 Provider 设为租户默认语音dictationProvider——保存时系统会调用clearOtherVoiceDefaults清除该租户其他凭证上的此标志保证同时最多一个默认语音 Provider见 ai-provider-credential.service.ts。Dictation 的完整执行链路聊天引擎的transcribe服务见 ai-chat.service.ts按以下顺序处理一次语音转写校验音频非空、且不超过MAX_AUDIO_BYTES上限约 25 MB对应上传拦截器的 multer 限制从注册表筛出所有实现了transcribe的 Providertypeof definition.transcribe function并按order排序一个都没有则抛出 503NOT_CONFIGURED若租户设置了默认语音 ProviderresolveVoiceDefault读取isVoiceDefault标记默认语音 Provider 排在最前优先尝试其余保持展示顺序依次为每个 Provider 解析凭证租户 BYOK → 环境变量、取出其speechModel或 Provider 默认模型调用definition.transcribe(...)单个 Provider 失败不中断整个请求会记录失败原因并继续尝试下一个可转写的 Provider全部失败才抛出 503错误体为结构化对象{ message, code, settingsPath }前端可据此渲染可操作的提示并链接到 AI Providers 设置页。这种默认语音 Provider 优先、可转写 Provider 兜底的设计意味着即使租户的聊天模型跑在 Anthropic本身无语音模型上只要同时配置了 ElevenLabs或 OpenAI、本地 whisper 服务器等任一可转写 Providerdictation 依然可用无需切换聊天 Provider。安装与构建该插件位于仓库 packages/plugins/ai-provider-elevenlabs 目录包名为gauzy/plugin-ai-provider-elevenlabs见其 package.json依赖gauzy/plugin-ai-chat、gauzy/plugin与gauzy/contracts要求 Node.js 22、Yarn 1.22。其构建脚本为yarn nx build plugin-ai-provider-elevenlabs开发时的监听构建可用lib:watch脚本yarn nx build plugin-ai-provider-elevenlabs --watch。安装方式与 Ever Gauzy 其余插件一致在服务端应用的插件列表apps/api/src/plugins.ts中加入AiProviderElevenLabsPlugin应用启动时插件就会随BaseAiProviderPlugin的 bootstrap 生命周期把elevenlabs注册进聊天引擎的 Provider 注册表。小结gauzy/plugin-ai-provider-elevenlabs是 Ever Gauzy AI 聊天引擎语音能力的关键拼图它把 ElevenLabs Scribe 封装为 voice-only Provider通过ELEVENLABS_API_KEY/ELEVENLABS_BASE_URL两个环境变量提供服务器级默认配置通过 Settings 页为每个租户选择 Scribe 模型并可选设为默认语音 Provider且始终让租户的 BYOK 凭证优先于环境变量。底层则复用了gauzy/plugin-ai-chat的共享 multipart 转写管道统一获得超时控制、SSRF 出站防护、错误分类与密钥脱敏从而在开箱即用与安全可控之间取得平衡。赞分享后端前端企业应用MCP 服务【免费下载链接】ever-gauzyEver® Gauzy™ - Open Business Management Platform (ERP/CRM/HRM/ATS/PM) - https://gauzy.co项目地址https://gitcode.com/GitHub_Trending/ev/ever-gauzy点击查看免费下载相关推荐Ever Gauzy 接入 LocalAI本地化 AI Chat 与语音听写 Provider 插件完全指南Ever Gauzy 接入 LocalAI本地化 AI Chat 与语音听写 Provider 插件完全指南 Ever® Gauzy™开源企业管理平台内置后端前端企业应用MCP 服务Ever Gauzy 本地语音转文字接入 whisper.cpp whisper-server 的完整指南Ever Gauzy 本地语音转文字接入 whisper.cpp whisper server 的完整指南 导读 本文围绕 Ever Gauzy 开源仓库中的后端前端企业应用MCP 服务Ever Gauzy 接入 Grokai-provider-grok 插件配置与实现原理详解Ever Gauzy 接入 Grokai provider grok 插件配置与实现原理详解 本指南以 Ever® Gauzy™ 开源业务管理平台中的 ga后端前端企业应用MCP 服务上一篇HomeAssistant-Tapo-Control支持设备清单从摄像头到门铃的全面兼容列表下一篇ECC 工程规范实战HarmonyOS / ArkTS 开发模式完全指南状态管理 V2、Navigation 路由、MVVM 与性能优化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
热门专题

继续阅读更多专题内容

围绕企业服务、数字化转型与官网运营的常青话题,持续输出深度内容

企业官网建设指南 企业托管服务模式 财税政策与解读 企业数字化转型 官网SEO与获客 网站安全与运维
配套服务

读完这篇文章,了解更多服务

从整站搭建到SEO布局,17项核心服务助您打造高转化的企业官网

01

企业托管整站搭建

从信息架构到栏目预留,搭建可生长的企业站点骨架,每个页面独立原创设计。...

了解详情
02

规整可信网页设计

雪地靴温暖风原创设计,金属铜线条贯穿全页,拒绝通用模板与AI流水线。...

了解详情
03

企业服务SEO布局

关键词体系与语义化结构,从建站源头为搜索排名而生。...

了解详情
04

业务预约咨询表单

多场景表单与线索收集体系,把访问流量转化为可追踪的销售线索。...

了解详情
05

企业服务站点运维

安全巡检、数据备份与内容更新支持,全年守护网站稳定运行。...

了解详情
06

全终端商务适配

电脑、平板、手机一致呈现,移动端体验与转化同样出色。...

了解详情
需要专业建议?

让专业顾问为您解读行业趋势

关于企业官网建设、SEO获客与数字化转型的任何疑问,欢迎一对一咨询我们的专业顾问。