如何将音频文件保存在文件夹中并使用 gtts 从那里播放

问题描述 投票:0回答:1

我想将我的网页与后端 Flask 应用程序集成。该网页有一个“听取您的回答”按钮,该按钮将播放 gtts 生成的 mp3 文件的录音。但是 gtts 不允许我将音频文件保存在一个文件夹中,当在我的网页上单击按钮时,我可以从该文件夹中播放该文件。请帮忙

我尝试直接运行音频,并尝试使用 send_file 选项,该选项允许用户直接下载音频文件。但我不希望用户下载音频文件,我希望他直接单击按钮并听到答案。

这是导致其下载的代码:


    @app.route('/play_speech')
    def play_speech():
        # Retrieve parameters from the URL
        translated_processed_answer = request.args.get('translated_processed_answer', '')
        selected_language = request.args.get('selected_language', '')
    
        # Strip HTML tags from the translated answer
        cleaned_text = strip_html_tags(translated_processed_answer)
    
        # Generate speech audio for the cleaned text
        speech_text = cleaned_text
        language = selected_language if selected_language else 'en'
    
        if speech_text:
            tts = gTTS(text=speech_text, lang=language, slow=False)
            audio_stream = BytesIO()
            tts.write_to_fp(audio_stream)
            audio_stream.seek(0)
    
            return send_file(audio_stream, mimetype='audio/mpeg', as_attachment=True, download_name='speech.mp3')
        else:
            # Handle the case where there is no text to speak
            return "No text to speak"

我尝试使用此代码将其保存到音频文件夹:

        @app.route('/play_speech')
        def play_speech():
            # Retrieve parameters from the URL
            translated_processed_answer = request.args.get('translated_processed_answer', '')
            selected_language = request.args.get('selected_language', '')
        
            # Strip HTML tags from the translated answer
            cleaned_text = strip_html_tags(translated_processed_answer)
        
            # Generate speech audio for the cleaned text
            speech_text = cleaned_text
            language = selected_language if selected_language else 'en'
        
            if speech_text:
                tts = gTTS(text=speech_text, lang=language, slow=False)
                
                # Save the audio file in the 'audio' folder
                audio_folder = os.path.join(os.path.dirname(__file__), 'audio')
                os.makedirs(audio_folder, exist_ok=True)
                
                audio_file_path = os.path.join(audio_folder, 'speech.mp3')
                tts.save(audio_file_path)
        
                # Return the path to the audio file
                return send_file(audio_file_path, mimetype='audio/mpeg', as_attachment=True, download_name='speech.mp3')
            else:
                # Handle the case where there is no text to speak
                return "No text to speak" 

但这会返回以下错误:

 127.0.0.1 - - [08/Oct/2023 12:31:57] "GET /audio/speech.mp3 HTTP/1.1" 404 -
audio gtts
1个回答
0
投票

你找到解决办法了吗?我有同样的问题。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.