1111
1212import wave
1313import ChatTTS
14- from IPython .display import Audio
1514
15+ from tools .audio import unsafe_float_to_int16
1616from tools .logger import get_logger
1717
1818logger = get_logger ("Command" )
1919
2020def save_wav_file (wav , index ):
2121 wav_filename = f"output_audio_{ index } .wav"
22- # Convert numpy array to bytes and write to WAV file
23- wav_bytes = (wav * 32768 ).astype ('int16' ).tobytes ()
2422 with wave .open (wav_filename , "wb" ) as wf :
2523 wf .setnchannels (1 ) # Mono channel
2624 wf .setsampwidth (2 ) # Sample width in bytes
2725 wf .setframerate (24000 ) # Sample rate in Hz
28- wf .writeframes (wav_bytes )
26+ wf .writeframes (unsafe_float_to_int16 ( wav ) )
2927 logger .info (f"Audio saved to { wav_filename } " )
3028
3129def main ():
3230 # Retrieve text from command line argument
3331 text_input = sys .argv [1 ] if len (sys .argv ) > 1 else "<YOUR TEXT HERE>"
34- logger .info ("Received text input: %s" , text_input )
32+ logger .info ("Text input: %s" , text_input )
3533
3634 chat = ChatTTS .Chat (get_logger ("ChatTTS" ))
3735 logger .info ("Initializing ChatTTS..." )
@@ -41,17 +39,12 @@ def main():
4139 logger .error ("Models load failed." )
4240 sys .exit (1 )
4341
44- texts = [text_input ]
45- logger .info ("Text prepared for inference: %s" , texts )
46-
47- wavs = chat .infer (texts , use_decoder = True )
42+ wavs = chat .infer ((text_input ), use_decoder = True )
4843 logger .info ("Inference completed. Audio generation successful." )
4944 # Save each generated wav file to a local file
5045 for index , wav in enumerate (wavs ):
5146 save_wav_file (wav , index )
5247
53- return Audio (wavs [0 ], rate = 24_000 , autoplay = True )
54-
5548if __name__ == "__main__" :
5649 logger .info ("Starting the TTS application..." )
5750 main ()
0 commit comments