from transformers import pipeline import logging import soundfile as sf # Set up logging logging.basicConfig(level=logging.DEBUG) MODEL_ID = "facebook/mms-tts-fao" # Try to create the pipeline try: pipe = pipeline("text-to-speech", model=MODEL_ID) logging.info("Pipeline created successfully.") except Exception as e: logging.error(f"Error creating pipeline: {e}") raise def synthesize_speech(text): try: # Ensure text is not empty if not text.strip(): logging.error("Text input is empty.") return None result = pipe(text) logging.debug(f"Pipeline result: {result}") # Check if the output contains 'waveform' key if 'waveform' in result: waveform = result['waveform'] # Save waveform to an audio file audio_path = "output.wav" sf.write(audio_path, waveform, 16000) # Write the waveform using soundfile return audio_path else: logging.error(f"Unexpected pipeline output: {result}") return None except Exception as e: logging.error(f"Error during speech synthesis: {e}") return None