ibm-granite/granite-speech-3.3-8b - 文本生成器
中级
这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 15 个节点。主要使用 If, Set, Code, Wait, HttpRequest 等节点。 通过Replicate API使用IBM Granite 3.3 8B模型将语音转换为文本
前置要求
- •可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "e2493c11-1335-4a64-bd05-5e5040ef16af",
"model_name": "granite-speech-3.3-8b",
"model_type": "text",
"version_id": "688e7a943167401c310f0975cb68f1a35e0bddc3b65f60bde89c37860e07edf1",
"model_owner": "ibm-granite",
"generated_at": "2025-08-01T14:50:46.379819"
},
"name": "ibm-granite/granite-speech-3.3-8b - Text Generator",
"nodes": [
{
"id": "b65f9ccc-12c4-4d86-81cc-89a84888be4d",
"name": "手动触发器",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-896,
-176
],
"parameters": {},
"typeVersion": 1
},
{
"id": "90147621-ab1f-4b2f-9626-3a619c1d6f28",
"name": "Set API Token",
"type": "n8n-nodes-base.set",
"position": [
-608,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "api_token",
"name": "api_token",
"type": "string",
"value": "YOUR_REPLICATE_API_TOKEN"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "0b0516e0-e9ae-436d-910b-d789b3a3e1bb",
"name": "Set Text Parameters",
"type": "n8n-nodes-base.set",
"position": [
-288,
-128
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "api_token",
"name": "api_token",
"type": "string",
"value": "={{ $('Set API Token').item.json.api_token }}"
},
{
"id": "seed",
"name": "seed",
"type": "number",
"value": -1
},
{
"id": "audio",
"name": "audio",
"type": "array",
"value": "https://www2.cs.uic.edu/~i101/SoundFiles/BabyElephantWalk60.wav"
},
{
"id": "top_k",
"name": "top_k",
"type": "number",
"value": 50
},
{
"id": "top_p",
"name": "top_p",
"type": "number",
"value": 0.9
},
{
"id": "prompt",
"name": "prompt",
"type": "string",
"value": ""
},
{
"id": "max_tokens",
"name": "max_tokens",
"type": "number",
"value": 512
},
{
"id": "min_tokens",
"name": "min_tokens",
"type": "number",
"value": 0
},
{
"id": "temperature",
"name": "temperature",
"type": "number",
"value": 0.6
},
{
"id": "chat_template",
"name": "chat_template",
"type": "string",
"value": ""
},
{
"id": "system_prompt",
"name": "system_prompt",
"type": "string",
"value": ""
},
{
"id": "stop_sequences",
"name": "stop_sequences",
"type": "string",
"value": ""
},
{
"id": "presence_penalty",
"name": "presence_penalty",
"type": "number",
"value": 0
},
{
"id": "frequency_penalty",
"name": "frequency_penalty",
"type": "number",
"value": 0
}
]
}
},
"typeVersion": 3.3
},
{
"id": "7dc87c57-6d99-4707-891a-cdcf07871c76",
"name": "Create Text Prediction",
"type": "n8n-nodes-base.httpRequest",
"position": [
-64,
-128
],
"parameters": {
"url": "https://api.replicate.com/v1/predictions",
"method": "POST",
"options": {
"response": {
"response": {
"neverError": true,
"responseFormat": "json"
}
}
},
"jsonBody": "={\n \"version\": \"ibm-granite/granite-speech-3.3-8b:688e7a943167401c310f0975cb68f1a35e0bddc3b65f60bde89c37860e07edf1\",\n \"input\": {\n \"seed\": {{ $json.seed }},\n \"audio\": \"{{ $json.audio }}\",\n \"top_k\": {{ $json.top_k }},\n \"top_p\": {{ $json.top_p }},\n \"prompt\": \"{{ $json.prompt }}\",\n \"max_tokens\": {{ $json.max_tokens }},\n \"min_tokens\": {{ $json.min_tokens }},\n \"temperature\": {{ $json.temperature }},\n \"chat_template\": \"{{ $json.chat_template }}\",\n \"system_prompt\": \"{{ $json.system_prompt }}\",\n \"stop_sequences\": \"{{ $json.stop_sequences }}\",\n \"presence_penalty\": {{ $json.presence_penalty }},\n \"frequency_penalty\": {{ $json.frequency_penalty }}\n }\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $json.api_token }}"
},
{
"name": "Prefer",
"value": "wait"
}
]
}
},
"typeVersion": 4.1
},
{
"id": "b824df53-11cd-4579-aa75-eb6de3ed6eaf",
"name": "Wait 5s",
"type": "n8n-nodes-base.wait",
"position": [
160,
-128
],
"webhookId": "d2c4ca16-0eb2-45b4-8a2d-eec2f99df89c",
"parameters": {
"unit": "seconds",
"amount": 5
},
"typeVersion": 1
},
{
"id": "c6ecc415-8ac3-4864-b54b-0706fa46d015",
"name": "Check Status",
"type": "n8n-nodes-base.httpRequest",
"position": [
384,
-128
],
"parameters": {
"url": "=https://api.replicate.com/v1/predictions/{{ $('Create Text Prediction').item.json.id }}",
"options": {
"response": {
"response": {
"neverError": true,
"responseFormat": "json"
}
}
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "=Bearer {{ $('Set API Token').item.json.api_token }}"
}
]
}
},
"typeVersion": 4.1
},
{
"id": "2a0894f6-956c-4b08-80df-74911831da54",
"name": "Is Complete?",
"type": "n8n-nodes-base.if",
"position": [
528,
-240
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "c93d7ba1-0ef9-4087-aa10-389cb2a2c6bd",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "succeeded"
}
]
}
},
"typeVersion": 2
},
{
"id": "600fc16c-b13c-4e3e-9cca-96a212fb1860",
"name": "Has Failed?",
"type": "n8n-nodes-base.if",
"position": [
848,
-80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "d1bfd044-3a07-4c18-b55f-72d192596139",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "failed"
}
]
}
},
"typeVersion": 2
},
{
"id": "329b5c84-d305-41b8-9e2e-6d6319b1875b",
"name": "Wait 10s",
"type": "n8n-nodes-base.wait",
"position": [
720,
128
],
"webhookId": "51a05aef-e220-406d-8c2c-e59c82c3e26e",
"parameters": {
"unit": "seconds",
"amount": 10
},
"typeVersion": 1
},
{
"id": "44b49443-3856-431f-b5d2-733abdea04f4",
"name": "成功响应",
"type": "n8n-nodes-base.set",
"position": [
832,
-320
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "success-response",
"name": "response",
"type": "object",
"value": "={{ { success: true, result_url: $json.output, prediction_id: $json.id, status: $json.status, message: 'Text generated successfully' } }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "bb5b90ac-06ad-4935-9397-68d98c3d9a7b",
"name": "错误响应",
"type": "n8n-nodes-base.set",
"position": [
1344,
144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "error-response",
"name": "response",
"type": "object",
"value": "={{ { success: false, error: $json.error || 'Text generation failed', prediction_id: $json.id, status: $json.status, message: 'Failed to generate text' } }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "6fcbe2c7-4526-4826-9b1c-19653355961f",
"name": "Display Result",
"type": "n8n-nodes-base.set",
"position": [
1552,
-144
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "final-result",
"name": "final_result",
"type": "object",
"value": "={{ $json.response }}"
}
]
}
},
"typeVersion": 3.3
},
{
"id": "741ed4f0-1485-49df-925c-927e361a490d",
"name": "Log Request",
"type": "n8n-nodes-base.code",
"position": [
160,
-320
],
"parameters": {
"jsCode": "// Log generation details for monitoring\nconst data = $input.all()[0].json;\n\nconsole.log('ibm-granite/granite-speech-3.3-8b Request:', {\n timestamp: new Date().toISOString(),\n prediction_id: data.id,\n model_type: 'text'\n});\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "7cc712b4-5f66-4dcd-bcd9-7fce603c17b7",
"name": "便签 9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
-304
],
"parameters": {
"color": 4,
"width": 580,
"height": 320,
"content": "=======================================\n GRANITE-SPEECH-3.3-8B GENERATOR\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n======================================="
},
"typeVersion": 1
},
{
"id": "4b98a37e-f85c-48fd-ac0e-8e2c3f9a4987",
"name": "便签4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1536,
48
],
"parameters": {
"color": 4,
"width": 589,
"height": 1958,
"content": "## 🤖 **IBM-GRANITE/GRANITE-SPEECH-3.3-8B - TEXT GENERATION WORKFLOW**\n\n**🔥 Powered by Replicate API and n8n Automation**\n\n---\n\n### 📝 **Model Overview**\n\n- **Owner**: ibm-granite\n- **Model**: granite-speech-3.3-8b\n- **Type**: Text Generation\n- **API Endpoint**: https://api.replicate.com/v1/predictions\n\n**🎯 What This Model Does:**\nGranite-speech-3.3-8b is a compact and efficient speech-language model, specifically designed for automatic speech recognition (ASR) and automatic speech translation (AST).\n\n---\n\n### 📋 **Parameter Reference**\n\n**🔴 Required Parameters:** None\n**🔵 Optional Parameters:** seed, audio, top_k, top_p, prompt, max_tokens, min_tokens, temperature (and 5 more)\n\n**📖 Detailed Parameter Guide:**\n- **seed** (integer): Random seed. Leave blank to randomize the seed.\n- **audio** (array): Audio inputs for the model.\n- **top_k** (integer): The number of highest probability tokens to consider for generating the output. If > 0, only keep... (Default: 50)\n- **top_p** (number): A probability threshold for generating the output. If < 1.0, only keep the top tokens with cumula... (Default: 0.9)\n- **prompt** (string): User prompt to send to the model. (Default: )\n- **max_tokens** (integer): The maximum number of tokens the model should generate as output. (Default: 512)\n- **min_tokens** (integer): The minimum number of tokens the model should generate as output. (Default: 0)\n- **temperature** (number): The value used to modulate the next token probabilities. (Default: 0.6)\n- *...and 5 more parameters*\n\n---\n\n### 🔧 **Workflow Components Explained**\n\n**🎯 Manual Trigger**\n- Starts the workflow execution\n- Click to begin text generation process\n\n**🔐 Set API Token** \n- Configures your Replicate API authentication\n- Replace 'YOUR_REPLICATE_API_TOKEN' with your actual token\n- Essential for accessing the ibm-granite/granite-speech-3.3-8b model\n\n**⚙️ Set Text Parameters**\n- Configures all input parameters for the model\n- Includes both required and optional parameters\n- Pre-filled with sensible defaults for testing\n\n**🚀 Create Text Prediction**\n- Sends the generation request to Replicate API\n- Uses the text parameters you configured\n- Returns a prediction ID for status tracking\n\n**⏳ Wait & Status Checking Loop**\n- Waits 5 seconds then checks prediction status\n- Continues checking until completion or failure\n- Implements intelligent retry logic with 10-second delays\n\n**✅ Success/Error Handling**\n- Routes successful completions to success response\n- Handles failures gracefully with error details\n- Returns structured JSON response with URLs/errors\n\n**📊 Logging & Monitoring**\n- Logs all requests for debugging and monitoring\n- Tracks timestamps and prediction IDs\n- Helps identify issues during development\n\n---\n\n### 🌟 **Key Benefits**\n\n- **🎨 Instant Text Generation**: Transform ideas into texts using state-of-the-art AI\n- **🔄 Automated Workflow**: Handles the complete generation pipeline automatically\n- **🛡️ Error Resilience**: Built-in retry logic and comprehensive error handling\n- **📈 Production Ready**: Includes logging, monitoring, and structured responses\n- **🔧 Customizable**: Easy to modify parameters and extend functionality\n- **⚡ Efficient Processing**: Optimized API calls with intelligent status checking\n\n---\n\n### 🚀 **Quick Start Instructions**\n\n1. **🔑 Get Your API Key**\n - Sign up at https://replicate.com\n - Navigate to your account settings\n - Copy your API token\n\n2. **🔧 Configure the Workflow**\n - Replace 'YOUR_REPLICATE_API_TOKEN' with your actual token\n - Adjust parameters in the 'Set Text Parameters' node\n - Customize the prompt or other inputs as needed\n\n3. **▶️ Execute the Workflow**\n - Click the 'Manual Trigger' to start\n - Monitor the execution in the n8n interface\n - Check logs for detailed execution information\n\n4. **📥 Get Your Results**\n - Successful generations return a URL to your text\n - Download or use the generated content as needed\n - Results are available immediately upon completion\n\n---\n\n### 🔍 **Troubleshooting Guide**\n\n**Common Issues:**\n- **Invalid API Token**: Ensure your Replicate token is valid and has sufficient credits\n- **Parameter Validation**: Check that required parameters match expected types\n- **Generation Timeout**: Some texts take longer - monitor the logs\n- **Output Format**: Verify the model returns the expected output format\n\n**Best Practices:**\n- Test with default parameters first\n- Monitor your Replicate usage and billing\n- Keep API tokens secure and never commit them to code\n- Use appropriate parameter values for your use case\n\n---\n\n**🔗 Additional Resources:**\n- Model Documentation: https://replicate.com/ibm-granite/granite-speech-3.3-8b\n- Replicate API Docs: https://replicate.com/docs\n- n8n Documentation: https://docs.n8n.io\n\n---"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"versionId": "1",
"connections": {
"Wait 5s": {
"main": [
[
{
"node": "Check Status",
"type": "main",
"index": 0
}
]
]
},
"Wait 10s": {
"main": [
[
{
"node": "Check Status",
"type": "main",
"index": 0
}
]
]
},
"Has Failed?": {
"main": [
[
{
"node": "Error Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait 10s",
"type": "main",
"index": 0
}
]
]
},
"Log Request": {
"main": [
[
{
"node": "Wait 5s",
"type": "main",
"index": 0
}
]
]
},
"Check Status": {
"main": [
[
{
"node": "Is Complete?",
"type": "main",
"index": 0
}
]
]
},
"Is Complete?": {
"main": [
[
{
"node": "Success Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Has Failed?",
"type": "main",
"index": 0
}
]
]
},
"Set API Token": {
"main": [
[
{
"node": "Set Text Parameters",
"type": "main",
"index": 0
}
]
]
},
"Error Response": {
"main": [
[
{
"node": "Display Result",
"type": "main",
"index": 0
}
]
]
},
"Manual Trigger": {
"main": [
[
{
"node": "Set API Token",
"type": "main",
"index": 0
}
]
]
},
"Success Response": {
"main": [
[
{
"node": "Display Result",
"type": "main",
"index": 0
}
]
]
},
"Set Text Parameters": {
"main": [
[
{
"node": "Create Text Prediction",
"type": "main",
"index": 0
}
]
]
},
"Create Text Prediction": {
"main": [
[
{
"node": "Log Request",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
中级 - 内容创作, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
字节跳动/Seedream-3 - 图像生成器
字节跳动 Seedream 3:文本到图像转换模板
If
Set
Code
+4
15 节点Yaron Been
内容创作
Dessix Moss Ttsd 文本生成器
使用Replicate Moss-TTSD将对话脚本转换为自然语音
If
Set
Code
+4
9 节点Yaron Been
内容创作
moicarmonas/2ndmoises_generator - 其他生成器
使用2nd Moises生成器和Replicate从文本提示创建图片
If
Set
Code
+4
15 节点Yaron Been
内容创作
moicarmonas/3rdmoises_generator_oldversion - 其他生成器
使用3rd Moises生成器和Replicate从文本提示创建图片
If
Set
Code
+4
15 节点Yaron Been
内容创作
alitas126/alitas2 - 其他生成器
使用Alitas2模型和Replicate从文本提示创建图片
If
Set
Code
+4
15 节点Yaron Been
内容创作
izzaanel/betia - 其他生成器
使用Betia和Replicate从文本提示创建图片
If
Set
Code
+4
15 节点Yaron Been
内容创作
工作流信息
难度等级
中级
节点数量15
分类2
节点类型7
作者
Yaron Been
@yaron-nofluffBuilding AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos
外部链接
在 n8n.io 查看 →
分享此工作流