From 10aeb52377c5af82f727726497362e688d790508 Mon Sep 17 00:00:00 2001 From: fishwww-ww <2470335462@qq.com> Date: Fri, 10 Oct 2025 17:24:00 +0800 Subject: [PATCH 1/2] feat: minmax tts plugin --- modules/tool/packages/minmaxTTS/config.ts | 151 ++++++++++++++++++ modules/tool/packages/minmaxTTS/index.ts | 10 ++ modules/tool/packages/minmaxTTS/logo.png | Bin 0 -> 89235 bytes modules/tool/packages/minmaxTTS/package.json | 17 ++ modules/tool/packages/minmaxTTS/src/index.ts | 117 ++++++++++++++ .../packages/minmaxTTS/test/index.test.ts | 8 + 6 files changed, 303 insertions(+) create mode 100644 modules/tool/packages/minmaxTTS/config.ts create mode 100644 modules/tool/packages/minmaxTTS/index.ts create mode 100644 modules/tool/packages/minmaxTTS/logo.png create mode 100644 modules/tool/packages/minmaxTTS/package.json create mode 100644 modules/tool/packages/minmaxTTS/src/index.ts create mode 100644 modules/tool/packages/minmaxTTS/test/index.test.ts diff --git a/modules/tool/packages/minmaxTTS/config.ts b/modules/tool/packages/minmaxTTS/config.ts new file mode 100644 index 00000000..05766c05 --- /dev/null +++ b/modules/tool/packages/minmaxTTS/config.ts @@ -0,0 +1,151 @@ +import { defineTool } from '@tool/type'; +import { FlowNodeInputTypeEnum, WorkflowIOValueTypeEnum } from '@tool/type/fastgpt'; +import { ToolTypeEnum } from '@tool/type/tool'; + +export default defineTool({ + name: { + 'zh-CN': 'minmax 文本转语音', + en: 'minmax Text-to-Speech' + }, + courseUrl: 'https://platform.minimaxi.com/document/quick_start', + type: ToolTypeEnum.tools, + description: { + 'zh-CN': '使用MinMax平台将文本转换为高质量语音', + en: 'Convert text to high-quality speech using MinMax platform' + }, + toolDescription: + 'Convert text to speech using MinMax TTS API. Supports multiple voice settings and audio formats.', + secretInputConfig: [ + { + key: 'apiKey', + label: 'API Key', + description: '可以在 minmax 官网获取', + required: true, + inputType: 'secret' + } + ], + versionList: [ + { + value: '0.1.0', + description: 'Default version', + inputs: [ + { + key: 'text', + label: '文本内容', + renderTypeList: [FlowNodeInputTypeEnum.input, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.string, + required: true + }, + { + key: 'model', + label: '模型', + renderTypeList: [FlowNodeInputTypeEnum.select, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.string, + required: true, + defaultValue: 'speech-2.5-hd-preview', + list: [ + { label: 'speech-2.5-hd-preview', value: 'speech-2.5-hd-preview' }, + { label: 'speech-2.5-turbo-preview', value: 'speech-2.5-turbo-preview' }, + { label: 'speech-02-hd', value: 'speech-02-hd' }, + { label: 'speech-02-turbo', value: 'speech-02-turbo' }, + { label: 'speech-01-hd', value: 'speech-01-hd' }, + { label: 'speech-01-turbo', value: 'speech-01-turbo' } + ] + }, + { + key: 'voice_id', + label: '音色', + renderTypeList: [FlowNodeInputTypeEnum.select, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.string, + required: true, + defaultValue: 'male-qn-qingse', + list: [ + { + label: '青涩青年音色', + value: 'male-qn-qingse' + }, + { + label: '精英青年音色', + value: 'male-qn-jingying' + }, + { + label: '少女音色', + value: 'female-shaonv' + }, + { + label: '成熟女性音色', + value: 'female-chengshu' + } + ] + }, + { + key: 'speed', + label: '语速', + renderTypeList: [FlowNodeInputTypeEnum.numberInput, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.number, + required: false, + min: 0.5, + max: 2, + step: 0.1, + defaultValue: 1 + }, + { + key: 'vol', + label: '音量', + renderTypeList: [FlowNodeInputTypeEnum.numberInput, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.number, + required: false, + min: 0.1, + max: 10, + step: 0.1, + defaultValue: 1 + }, + { + key: 'pitch', + label: '语调', + renderTypeList: [FlowNodeInputTypeEnum.numberInput, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.number, + required: false, + min: -12, + max: 12, + step: 1, + defaultValue: 0 + }, + { + key: 'emotion', + label: '情绪', + renderTypeList: [FlowNodeInputTypeEnum.select, FlowNodeInputTypeEnum.reference], + valueType: WorkflowIOValueTypeEnum.string, + required: false, + defaultValue: 'auto', + list: [ + { label: '自动(推荐)', value: 'auto' }, + { label: '高兴 happy', value: 'happy' }, + { label: '悲伤 sad', value: 'sad' }, + { label: '愤怒 angry', value: 'angry' }, + { label: '害怕 fearful', value: 'fearful' }, + { label: '厌恶 disgusted', value: 'disgusted' }, + { label: '惊讶 surprised', value: 'surprised' }, + { label: '中性 calm', value: 'calm' } + ] + }, + { + key: 'english_normalization', + label: '英文规范化', + renderTypeList: [FlowNodeInputTypeEnum.switch], + valueType: WorkflowIOValueTypeEnum.boolean, + required: false, + defaultValue: false + } + ], + outputs: [ + { + valueType: WorkflowIOValueTypeEnum.string, + key: 'audioUrl', + label: '音频链接', + description: '语音合成后的音频文件链接' + } + ] + } + ] +}); diff --git a/modules/tool/packages/minmaxTTS/index.ts b/modules/tool/packages/minmaxTTS/index.ts new file mode 100644 index 00000000..d698ed48 --- /dev/null +++ b/modules/tool/packages/minmaxTTS/index.ts @@ -0,0 +1,10 @@ +import config from './config'; +import { InputType, OutputType, tool as toolCb } from './src'; +import { exportTool } from '@tool/utils/tool'; + +export default exportTool({ + toolCb, + InputType, + OutputType, + config +}); diff --git a/modules/tool/packages/minmaxTTS/logo.png b/modules/tool/packages/minmaxTTS/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..19ed817f6b2c25c57561e9b82b37c47f8dcd9e99 GIT binary patch literal 89235 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 k): Promise> { + const { voice_id, speed, vol, pitch, emotion, en_normalization } = voice_setting; + const headers = { + Authorization: `Bearer ${apiKey}`, + 'Content-Type': 'application/json' + }; + // these params are advanced settings, now not allow user to customize + const defaultSetting = { + pronunciation_dict: { + tone: [] + }, + audio_setting: { + audio_sample_rate: 32000, + bitrate: 128000, + format: 'mp3', + channel: 2 + }, + voice_modify: { + pitch: 0, + intensity: 0, + timbre: 0, + sound_effects: 'spacious_echo' + } + }; + + try { + // create tts task + const { data: taskData } = await POST( + `${MINIMAX_BASE_URL}/t2a_async_v2`, + { + model, + text, + language_boost: 'auto', + voice_setting: { + voice_id, + speed, + vol, + pitch, + emotion, + en_normalization + }, + ...defaultSetting + }, + { + headers + } + ); + + const task_id = taskData.task_id; + // polling task status until success or failed + // file can be downloaded when task status is success + const pollTaskStatus = async () => { + const maxRetries = 180; + for (let i = 0; i < maxRetries; i++) { + const { data: statusData } = await GET(`${MINIMAX_BASE_URL}/query/t2a_async_query_v2`, { + params: { task_id }, + headers + }); + const status = statusData.status; + if (status === 'Success') { + return statusData.file_id; + } + if (status === 'Failed') { + throw new Error('TTS task failed'); + } + await new Promise((r) => setTimeout(r, 1000)); + } + throw new Error('TTS task timeout'); + }; + const file_id = await pollTaskStatus(); + + // retrieve file content + const { data: fileBuffer } = await GET(`${MINIMAX_BASE_URL}/files/retrieve_content`, { + params: { file_id }, + headers, + responseType: 'arrayBuffer' + }); + + const { accessUrl: audioUrl } = await uploadFile({ + buffer: Buffer.from(fileBuffer), + defaultFilename: 'minimax_tts.mp3' + }); + + return { audioUrl }; + } catch (error) { + throw new Error(`TTS failed: ${error}`); + } +} diff --git a/modules/tool/packages/minmaxTTS/test/index.test.ts b/modules/tool/packages/minmaxTTS/test/index.test.ts new file mode 100644 index 00000000..b70e289f --- /dev/null +++ b/modules/tool/packages/minmaxTTS/test/index.test.ts @@ -0,0 +1,8 @@ +import { expect, test } from 'vitest'; +import tool from '..'; + +test(async () => { + expect(tool.name).toBeDefined(); + expect(tool.description).toBeDefined(); + expect(tool.cb).toBeDefined(); +}); From c38ae8d7f224f0a0fbc2067901262bb8fe8fb052 Mon Sep 17 00:00:00 2001 From: fishwww-ww <2470335462@qq.com> Date: Sat, 11 Oct 2025 11:22:12 +0800 Subject: [PATCH 2/2] feat: minmax toolSet --- .../children/tts}/config.ts | 26 +++++---------- .../children/tts}/index.ts | 0 .../children/tts}/src/index.ts | 31 ++++++++++-------- .../children/tts}/test/index.test.ts | 0 modules/tool/packages/minmax/config.ts | 26 +++++++++++++++ modules/tool/packages/minmax/index.ts | 8 +++++ .../packages/{minmaxTTS => minmax}/logo.png | Bin .../{minmaxTTS => minmax}/package.json | 4 +-- 8 files changed, 62 insertions(+), 33 deletions(-) rename modules/tool/packages/{minmaxTTS => minmax/children/tts}/config.ts (90%) rename modules/tool/packages/{minmaxTTS => minmax/children/tts}/index.ts (100%) rename modules/tool/packages/{minmaxTTS => minmax/children/tts}/src/index.ts (84%) rename modules/tool/packages/{minmaxTTS => minmax/children/tts}/test/index.test.ts (100%) create mode 100644 modules/tool/packages/minmax/config.ts create mode 100644 modules/tool/packages/minmax/index.ts rename modules/tool/packages/{minmaxTTS => minmax}/logo.png (100%) rename modules/tool/packages/{minmaxTTS => minmax}/package.json (85%) diff --git a/modules/tool/packages/minmaxTTS/config.ts b/modules/tool/packages/minmax/children/tts/config.ts similarity index 90% rename from modules/tool/packages/minmaxTTS/config.ts rename to modules/tool/packages/minmax/children/tts/config.ts index 05766c05..4dc4b824 100644 --- a/modules/tool/packages/minmaxTTS/config.ts +++ b/modules/tool/packages/minmax/children/tts/config.ts @@ -1,29 +1,17 @@ import { defineTool } from '@tool/type'; import { FlowNodeInputTypeEnum, WorkflowIOValueTypeEnum } from '@tool/type/fastgpt'; -import { ToolTypeEnum } from '@tool/type/tool'; export default defineTool({ name: { 'zh-CN': 'minmax 文本转语音', en: 'minmax Text-to-Speech' }, - courseUrl: 'https://platform.minimaxi.com/document/quick_start', - type: ToolTypeEnum.tools, description: { 'zh-CN': '使用MinMax平台将文本转换为高质量语音', en: 'Convert text to high-quality speech using MinMax platform' }, toolDescription: 'Convert text to speech using MinMax TTS API. Supports multiple voice settings and audio formats.', - secretInputConfig: [ - { - key: 'apiKey', - label: 'API Key', - description: '可以在 minmax 官网获取', - required: true, - inputType: 'secret' - } - ], versionList: [ { value: '0.1.0', @@ -83,7 +71,8 @@ export default defineTool({ label: '语速', renderTypeList: [FlowNodeInputTypeEnum.numberInput, FlowNodeInputTypeEnum.reference], valueType: WorkflowIOValueTypeEnum.number, - required: false, + required: true, + description: '语速,范围为 0.5-2, 值越大语速越快', min: 0.5, max: 2, step: 0.1, @@ -94,7 +83,8 @@ export default defineTool({ label: '音量', renderTypeList: [FlowNodeInputTypeEnum.numberInput, FlowNodeInputTypeEnum.reference], valueType: WorkflowIOValueTypeEnum.number, - required: false, + required: true, + description: '音量,范围为 0.1-10, 值越大音量越大', min: 0.1, max: 10, step: 0.1, @@ -105,7 +95,8 @@ export default defineTool({ label: '语调', renderTypeList: [FlowNodeInputTypeEnum.numberInput, FlowNodeInputTypeEnum.reference], valueType: WorkflowIOValueTypeEnum.number, - required: false, + required: true, + description: '语调,范围为 -12-12, 值越大语调越高', min: -12, max: 12, step: 1, @@ -116,7 +107,7 @@ export default defineTool({ label: '情绪', renderTypeList: [FlowNodeInputTypeEnum.select, FlowNodeInputTypeEnum.reference], valueType: WorkflowIOValueTypeEnum.string, - required: false, + required: true, defaultValue: 'auto', list: [ { label: '自动(推荐)', value: 'auto' }, @@ -134,7 +125,8 @@ export default defineTool({ label: '英文规范化', renderTypeList: [FlowNodeInputTypeEnum.switch], valueType: WorkflowIOValueTypeEnum.boolean, - required: false, + description: '支持英语文本规范化,开启后可提升数字阅读场景的性能,但会略微增加延迟', + required: true, defaultValue: false } ], diff --git a/modules/tool/packages/minmaxTTS/index.ts b/modules/tool/packages/minmax/children/tts/index.ts similarity index 100% rename from modules/tool/packages/minmaxTTS/index.ts rename to modules/tool/packages/minmax/children/tts/index.ts diff --git a/modules/tool/packages/minmaxTTS/src/index.ts b/modules/tool/packages/minmax/children/tts/src/index.ts similarity index 84% rename from modules/tool/packages/minmaxTTS/src/index.ts rename to modules/tool/packages/minmax/children/tts/src/index.ts index 71c8bd39..ad98581f 100644 --- a/modules/tool/packages/minmaxTTS/src/index.ts +++ b/modules/tool/packages/minmax/children/tts/src/index.ts @@ -1,19 +1,18 @@ import { z } from 'zod'; import { POST, GET } from '@tool/utils/request'; import { uploadFile } from '@tool/utils/uploadFile'; +import { delay } from '@tool/utils/delay'; export const InputType = z.object({ apiKey: z.string(), text: z.string().nonempty(), model: z.string().nonempty(), - voice_setting: z.object({ - voice_id: z.string(), - speed: z.number(), - vol: z.number(), - pitch: z.number(), - emotion: z.string(), - en_normalization: z.boolean() - }) + voice_id: z.string(), + speed: z.number(), + vol: z.number(), + pitch: z.number(), + emotion: z.string(), + english_normalization: z.boolean() }); export const OutputType = z.object({ @@ -26,9 +25,13 @@ export async function tool({ apiKey, text, model, - voice_setting + voice_id, + speed, + vol, + pitch, + emotion, + english_normalization }: z.infer): Promise> { - const { voice_id, speed, vol, pitch, emotion, en_normalization } = voice_setting; const headers = { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json' @@ -66,7 +69,7 @@ export async function tool({ vol, pitch, emotion, - en_normalization + english_normalization }, ...defaultSetting }, @@ -90,11 +93,11 @@ export async function tool({ return statusData.file_id; } if (status === 'Failed') { - throw new Error('TTS task failed'); + return Promise.reject('TTS task failed'); } - await new Promise((r) => setTimeout(r, 1000)); + await delay(1000); } - throw new Error('TTS task timeout'); + return Promise.reject('TTS task timeout'); }; const file_id = await pollTaskStatus(); diff --git a/modules/tool/packages/minmaxTTS/test/index.test.ts b/modules/tool/packages/minmax/children/tts/test/index.test.ts similarity index 100% rename from modules/tool/packages/minmaxTTS/test/index.test.ts rename to modules/tool/packages/minmax/children/tts/test/index.test.ts diff --git a/modules/tool/packages/minmax/config.ts b/modules/tool/packages/minmax/config.ts new file mode 100644 index 00000000..373b03a4 --- /dev/null +++ b/modules/tool/packages/minmax/config.ts @@ -0,0 +1,26 @@ +import { defineToolSet } from '@tool/type'; +import { ToolTypeEnum } from '@tool/type/tool'; + +export default defineToolSet({ + name: { + 'zh-CN': 'minmax 工具集', + en: 'minmax Tool Set' + }, + courseUrl: 'https://platform.minimaxi.com/document/quick_start', + type: ToolTypeEnum.tools, + description: { + 'zh-CN': 'minmax 工具集, 包含文本转语音、语音转文本、语音合成、语音识别等功能', + en: 'minmax tool set, including text-to-speech, speech-to-text, speech synthesis, speech recognition等功能' + }, + toolDescription: + 'minmax tool set, including text-to-speech, speech-to-text, speech synthesis, speech recognition等功能', + secretInputConfig: [ + { + key: 'apiKey', + label: 'API Key', + description: '可以在 minmax 官网获取', + required: true, + inputType: 'secret' + } + ] +}); diff --git a/modules/tool/packages/minmax/index.ts b/modules/tool/packages/minmax/index.ts new file mode 100644 index 00000000..22bccae7 --- /dev/null +++ b/modules/tool/packages/minmax/index.ts @@ -0,0 +1,8 @@ +// You should not modify this file, if you need to modify the tool set configuration, please modify the config.ts file + +import config from './config'; +import { exportToolSet } from '@tool/utils/tool'; + +export default exportToolSet({ + config +}); diff --git a/modules/tool/packages/minmaxTTS/logo.png b/modules/tool/packages/minmax/logo.png similarity index 100% rename from modules/tool/packages/minmaxTTS/logo.png rename to modules/tool/packages/minmax/logo.png diff --git a/modules/tool/packages/minmaxTTS/package.json b/modules/tool/packages/minmax/package.json similarity index 85% rename from modules/tool/packages/minmaxTTS/package.json rename to modules/tool/packages/minmax/package.json index 46b34aee..16b92c27 100644 --- a/modules/tool/packages/minmaxTTS/package.json +++ b/modules/tool/packages/minmax/package.json @@ -1,5 +1,5 @@ { - "name": "@fastgpt-plugins/tool-minmax-tts", + "name": "@fastgpt-plugins/tool-minmax", "module": "index.ts", "type": "module", "scripts": { @@ -14,4 +14,4 @@ "dependencies": { "zod": "^3.24.2" } -} \ No newline at end of file +}