新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/30 1:50:05来源:尧图网络
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),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【Linux指南】动静态库系列(九):动态库如何进入进程地址空间:从磁盘 .so 到共享内存映射 2026/9/30 13:51:06

【Linux指南】动静态库系列(九):动态库如何进入进程地址空间:从磁盘 .so 到共享内存映射

文章目录一、动态库为什么比静态库更常用二、动态库也是文件三、动态库加载的整体流程四、从磁盘 .so 到物理内存五、从物理内存到进程虚拟地址空间六、多个进程如何共享同一个动态库七、共享的是代码,不是什么都共享八、为什么动态库加载地址不固定九、使用 /proc …

阅读更多 →
PSE认证证书有效期多久,产品改款后是否需要重新做认证? 2026/9/30 13:50:59

PSE认证证书有效期多久,产品改款后是否需要重新做认证?

PSE并不是一张所有产品都按统一年限有效的“永久证书”。需要先区分产品是否属于特定电气用品,以及企业持有的是符合性检查证书、检测报告还是其他合规文件。产品改款后,也不能仅凭外观变化判断是否需要重新认证,关键要看改动是否影响安全结构…

阅读更多 →
企业级AI知识库建设实战:从RAG架构到混合检索与元数据治理 2026/9/30 13:50:45

企业级AI知识库建设实战:从RAG架构到混合检索与元数据治理

开头今年上半年,我们海博团队在推进 AI-Native 研发体系的时候,发现一个特别扎心的事实:模型能力早就不是瓶颈了,真正卡住团队进度的是知识底座。代码仓库里那些散落的决策文档、写了没人看的架构说明、只有某个老员工脑子里的业务…

阅读更多 →
渲染书籍目录汇总:六大分支与学习路径全解析 2026/9/30 13:50:45

渲染书籍目录汇总:六大分支与学习路径全解析

作为常年跟渲染打交道的人,我书架上的这份“渲染书籍目录汇总”已经维护了一年多,标题里的“不断更新中”不是客套话,是真实状态。之所以维护这个目录,是因为每年都要被问同一个问题:想学渲染,到底该看哪些…

阅读更多 →
渲染书籍目录汇总:从实时渲染到引擎源码的系统学习路径 2026/9/30 13:50:45

渲染书籍目录汇总:从实时渲染到引擎源码的系统学习路径

做渲染相关工作这些年,陆陆续续收了不下五十本相关的书,真正从头翻到尾的却没几本。这次给自己定了个小目标,按照“实时渲染、离线渲染、引擎源码、工程实践”四个方向,把值得读的书和它们的目录结构重新整理了一遍,顺…

阅读更多 →
多模态决策模型Jev-Omni技术解析与声音仿冒案合规启示 2026/9/30 13:50:45

多模态决策模型Jev-Omni技术解析与声音仿冒案合规启示

1. 从一条日报说起:两个信号,一个趋势前几天刷到一条行业日报,标题信息量挺大:一边是多模态决策模型 Jev-Omni发布,主打图文、音视频的统一处理;另一边是上海宣判了首例 AI 声音仿冒案,《原神》…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉