Skip to content

Commit f5427cf

Browse files
committed
feat: Add Murf TTS Component
1 parent 93e87ca commit f5427cf

17 files changed

Lines changed: 628 additions & 7 deletions

File tree

.secrets.baseline

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1287,23 +1287,23 @@
12871287
"filename": "src/frontend/src/constants/constants.ts",
12881288
"hashed_secret": "19a2fbd0dd38b4097f419c962342ef5e109eab07",
12891289
"is_verified": false,
1290-
"line_number": 737,
1290+
"line_number": 751,
12911291
"is_secret": false
12921292
},
12931293
{
12941294
"type": "Secret Keyword",
12951295
"filename": "src/frontend/src/constants/constants.ts",
12961296
"hashed_secret": "3806954324550e26ef5de85d007f1746825a073c",
12971297
"is_verified": false,
1298-
"line_number": 738,
1298+
"line_number": 752,
12991299
"is_secret": false
13001300
},
13011301
{
13021302
"type": "Secret Keyword",
13031303
"filename": "src/frontend/src/constants/constants.ts",
13041304
"hashed_secret": "c04f8fbf55c9096907a982750b1c6b0e4c1dd658",
13051305
"is_verified": false,
1306-
"line_number": 913,
1306+
"line_number": 928,
13071307
"is_secret": false
13081308
}
13091309
],
@@ -1402,5 +1402,5 @@
14021402
}
14031403
]
14041404
},
1405-
"generated_at": "2025-10-21T22:11:15Z"
1405+
"generated_at": "2025-10-30T11:42:28Z"
14061406
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
title: Murf
3+
slug: /bundles-murf
4+
---
5+
6+
import Icon from "@site/src/components/icon";
7+
import PartialParams from '@site/docs/_partial-hidden-params.mdx';
8+
import PartialConditionalParams from '@site/docs/_partial-conditional-params.mdx';
9+
10+
<Icon name="Blocks" aria-hidden="true" /> [**Bundles**](/components-bundle-components) contain custom components that support specific third-party integrations with Langflow.
11+
12+
This page describes the components that are available in the **Murf** bundle.
13+
14+
## Set up Murf AI
15+
16+
To use Murf components in Langflow, you first need an API key.
17+
18+
### Generate an API Key
19+
20+
Go to the [Murf API Dashboard](https://murf.ai/api/dashboard?utm_source=langflow-docs) and sign up for an account.
21+
22+
For more information about Murf API authentication and usage, see the [Murf API documentation](https://murf.ai/api/docs/introduction/overview).
23+
24+
## Murf Text to Speech
25+
26+
The **Murf Text to Speech** component lets you generate speech from text input. It provides high-quality voice synthesis with support for multiple voices, languages, and audio formats.
27+
28+
### Features
29+
30+
- **Multiple Voice Options**: Access to a wide variety of voices with different genders, accents, and styles
31+
- **Multi-language Support**: Support for multiple locales and languages
32+
- **Audio Customization**: Adjustable speed, pitch, and sample rate
33+
- **Multiple Output Formats**: Support for MP3, WAV, FLAC, and other audio formats
34+
35+
### Murf Text to Speech Parameters
36+
37+
You can inspect the component's parameters to learn more about the inputs it accepts, the features it supports, and how to configure it.
38+
39+
<PartialParams />
40+
41+
<PartialConditionalParams />
42+
43+
For information about accepted values and functionality, see the [Murf API documentation](https://murf.ai/api/docs/api-reference/text-to-speech/generate) or inspect [component code](/concepts-components#component-code).
44+
45+
| Name | Type | Description |
46+
|------|------|-------------|
47+
| text | String | Input parameter. The text to convert to speech. Required. |
48+
| api_key | SecretString | Input parameter. Your Murf API key. Required. |
49+
| voice_id | String | Input parameter. The ID of the voice to use for speech synthesis. Dynamically populated based on available voices. |
50+
| locale | String | Input parameter. The locale/language for the voice. Dynamically populated based on selected voice. |
51+
| channel_type | String | Input parameter. Audio channel configuration. Options: "Mono", "Stereo". Default: "Mono". Advanced. |
52+
| format | String | Input parameter. Output audio format. Options: "mp3", "wav", "flac", "alaw", "ulaw", "pcm", "ogg". Default: "mp3". Advanced. |
53+
| rate | Integer | Input parameter. Speech speed adjustment. Range: -50 to 50. Default: 0. Advanced. |
54+
| pitch | Integer | Input parameter. Voice pitch adjustment. Range: -50 to 50. Default: 0. Advanced. |
55+
| sample_rate | String | Input parameter. Audio sample rate. Options: "8000", "24000", "44100", "48000". Default: "44100". Advanced. |
56+
57+
### Outputs
58+
59+
The Murf Text to Speech component provides three different output methods:
60+
61+
| Output Name | Type | Description |
62+
|-------------|------|-------------|
63+
| response | Data | Returns the raw API response data |
64+
65+
### Usage Examples
66+
67+
#### Basic Text to Speech
68+
1. Add the Murf Text to Speech component to your flow
69+
2. Enter your Murf API key
70+
3. Input the text you want to convert to speech
71+
4. Select a voice from the dynamically populated list
72+
5. Choose your preferred locale
73+
6. Connect the `response` output to display the result
74+
75+
#### Advanced Audio Customization
76+
For more control over the audio output:
77+
1. Enable advanced parameters
78+
2. Adjust the speed (rate) and pitch sliders
79+
3. Select a different audio format (e.g., WAV for higher quality)
80+
4. Choose between Mono or Stereo channel configuration
81+
5. Set the appropriate sample rate for your use case
82+
83+
### Troubleshooting
84+
85+
- **API Key Issues**: Ensure your API key is valid and has sufficient credits
86+
- **Voice Loading**: If voices don't load, check your internet connection and API key validity
87+
- **Audio Generation**: For large texts, consider breaking them into smaller chunks
88+
- **Format Compatibility**: Ensure your target system supports the chosen audio format

docs/sidebars.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ module.exports = {
167167
label: "Deploy",
168168
items: [
169169
{
170-
type:"doc",
170+
type: "doc",
171171
id: "Deployment/deployment-overview",
172172
label: "Langflow deployment overview"
173173
},
@@ -326,6 +326,7 @@ module.exports = {
326326
"Components/bundles-milvus",
327327
"Components/bundles-mistralai",
328328
"Components/bundles-mongodb",
329+
"Components/bundles-murf",
329330
"Components/bundles-notion",
330331
"Components/bundles-novita",
331332
"Components/bundles-nvidia",

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ dev = [
188188
"pytest-timeout>=2.3.1",
189189
"pyyaml>=6.0.2",
190190
"pyleak>=0.1.14",
191+
"murf>=2.1.0"
191192
]
192193

193194
[tool.uv.sources]

src/backend/base/pyproject.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,8 @@ dev =[
128128
"devtools>=0.12.2",
129129
"pytest-flakefinder>=1.1.0",
130130
"types-markdown>=3.7.0.20240822",
131-
"codeflash>=0.8.4"
131+
"codeflash>=0.8.4",
132+
"murf>=2.1.0"
132133
]
133134

134135

src/frontend/src/constants/constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -796,6 +796,7 @@ export const BUNDLES_SIDEBAR_FOLDER_NAMES = [
796796
"cassandra",
797797
"FAISS",
798798
"pgvector",
799+
"Murf",
799800
];
800801

801802
export const AUTHORIZED_DUPLICATE_REQUESTS = [
Lines changed: 62 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)