@@ -2,13 +2,13 @@ use bytes::Bytes;
22
33/// return: wav_audio: 16bit,32k,single-channel.
44pub async fn gsv (
5+ client : & reqwest:: Client ,
56 tts_url : & str ,
67 speaker : & str ,
78 text : & str ,
89 sample_rate : Option < usize > ,
910) -> anyhow:: Result < Bytes > {
1011 log:: debug!( "speaker: {speaker}, text: {text}" ) ;
11- let client = reqwest:: Client :: new ( ) ;
1212 let res = client
1313 . post ( tts_url)
1414 . json ( & serde_json:: json!( { "speaker" : speaker, "input" : text, "sample_rate" : sample_rate} ) )
@@ -34,7 +34,10 @@ async fn test_gsv() {
3434 let tts_url = "http://localhost:8000/v1/audio/speech" ;
3535 let speaker = "ad" ;
3636 let text = "你好,我是胡桃" ;
37- let wav_audio = gsv ( tts_url, speaker, text, Some ( 16000 ) ) . await . unwrap ( ) ;
37+ let client = reqwest:: Client :: new ( ) ;
38+ let wav_audio = gsv ( & client, tts_url, speaker, text, Some ( 16000 ) )
39+ . await
40+ . unwrap ( ) ;
3841 let header = hound:: WavReader :: new ( wav_audio. as_ref ( ) ) . unwrap ( ) ;
3942 let spec = header. spec ( ) ;
4043 println ! ( "wav header: {:?}" , spec) ;
@@ -44,13 +47,13 @@ async fn test_gsv() {
4447
4548/// return: pcm_chunk: 16bit,32k,single-channel.
4649pub async fn stream_gsv (
50+ client : & reqwest:: Client ,
4751 tts_url : & str ,
4852 speaker : & str ,
4953 text : & str ,
5054 sample_rate : Option < usize > ,
5155) -> anyhow:: Result < reqwest:: Response > {
5256 log:: debug!( "speaker: {speaker}, text: {text}" ) ;
53- let client = reqwest:: Client :: new ( ) ;
5457 let res = client
5558 . post ( tts_url)
5659 . json ( & serde_json:: json!( { "speaker" : speaker, "input" : text, "sample_rate" : sample_rate} ) )
@@ -69,9 +72,14 @@ pub async fn stream_gsv(
6972}
7073
7174/// return: wav_audio: 16bit,48k,single-channel.
72- pub async fn groq ( model : & str , token : & str , voice : & str , text : & str ) -> anyhow:: Result < Bytes > {
75+ pub async fn groq (
76+ client : & reqwest:: Client ,
77+ model : & str ,
78+ token : & str ,
79+ voice : & str ,
80+ text : & str ,
81+ ) -> anyhow:: Result < Bytes > {
7382 log:: debug!( "groq tts. voice: {voice}, text: {text}" ) ;
74- let client = reqwest:: Client :: new ( ) ;
7583 let res = client
7684 . post ( "https://api.groq.com/openai/v1/audio/speech" )
7785 . bearer_auth ( token)
@@ -102,7 +110,10 @@ async fn test_groq() {
102110 let token = std:: env:: var ( "GROQ_API_KEY" ) . unwrap ( ) ;
103111 let speaker = "Aaliyah-PlayAI" ;
104112 let text = "你好,我是胡桃" ;
105- let wav_audio = groq ( "playai-tts" , & token, speaker, text) . await . unwrap ( ) ;
113+ let client = reqwest:: Client :: new ( ) ;
114+ let wav_audio = groq ( & client, "playai-tts" , & token, speaker, text)
115+ . await
116+ . unwrap ( ) ;
106117 let mut reader = wav_io:: reader:: Reader :: from_vec ( wav_audio. to_vec ( ) ) . unwrap ( ) ;
107118 let head = reader. read_header ( ) . unwrap ( ) ;
108119 println ! ( "wav header: {:?}" , head) ;
0 commit comments