Skip to content

Commit 980f3d7

Browse files
committed
Pass output_format through
1 parent fe8d620 commit 980f3d7

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

src/tts.rs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,27 @@ pub(crate) struct TextToSpeechArgs {
1616
/// Output file (optional)
1717
#[arg(long, short = 'o')]
1818
output: Option<String>,
19+
20+
/// Language code (optional)
21+
#[arg(long)]
22+
language_code: Option<String>,
23+
24+
/// Output format (optional)
25+
#[arg(long)]
26+
output_format: Option<String>,
27+
}
28+
29+
fn default_output_format(provider: &Provider) -> Option<String> {
30+
match provider {
31+
Provider::DeepInfra => Some("mp3".to_string()),
32+
_ => None,
33+
}
1934
}
2035

2136
fn default_voice(provider: &Provider) -> Option<String> {
2237
match provider {
2338
Provider::OpenAI => Some("alloy".to_string()),
39+
Provider::Google => Some("en-US-Studio-Q".to_string()),
2440
_ => None,
2541
}
2642
}
@@ -34,13 +50,27 @@ fn default_model(provider: &Provider, task: &Task) -> Option<String> {
3450
}
3551
}
3652

53+
fn default_language_code(provider: &Provider) -> Option<String> {
54+
match provider {
55+
Provider::Google => Some("en-US".to_string()),
56+
_ => None,
57+
}
58+
}
3759
pub(crate) async fn tts(args: &TextToSpeechArgs, key: &transformrs::Key, input: &str) {
3860
let provider = key.provider.clone();
3961
let config = transformrs::text_to_speech::TTSConfig {
4062
voice: args.voice.clone().or_else(|| default_voice(&provider)),
41-
output_format: Some("mp3".to_string()),
63+
output_format: args
64+
.output_format
65+
.clone()
66+
.or_else(|| default_output_format(&provider)),
67+
language_code: args
68+
.language_code
69+
.clone()
70+
.or_else(|| default_language_code(&provider)),
4271
..Default::default()
4372
};
73+
println!("Config: {:?}", config);
4474
let model = args
4575
.model
4676
.clone()

tests/cli.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,11 @@ fn tts_no_args_deepinfra() -> Result<(), Box<dyn std::error::Error>> {
9191
tts_default_settings_helper(&Provider::DeepInfra)
9292
}
9393

94+
#[test]
95+
fn tts_no_args_google() -> Result<(), Box<dyn std::error::Error>> {
96+
tts_default_settings_helper(&Provider::Google)
97+
}
98+
9499
#[test]
95100
fn tts_no_args_openai() -> Result<(), Box<dyn std::error::Error>> {
96101
tts_default_settings_helper(&Provider::OpenAI)

0 commit comments

Comments
 (0)