如何在Python Flask环境中处理本地音频文件

如何在Python Flask环境中处理本地音频文件,python,flask,audio,audio-processing,Python,Flask,Audio,Audio Processing,我在web开发方面没有经验,但我正在尝试使用Flask将一些python转化为web应用程序。基本思想是,我需要能够接受音频文件输入,处理音频,并报告各种结果。我能够接受用户对音频文件的输入,并将其保存到项目目录中的本地文件夹中。我想在上传文件后访问该文件夹中的文件,并对该文件调用python函数进行音频处理。当我不在Flask环境中调用我的脚本时,这工作得非常好。当我试图在flask环境中调用我的脚本时,我得到了一个很长的回溯,导致JSONdecode错误 我的问题是:既然我能够在本地保存上传

我在web开发方面没有经验,但我正在尝试使用Flask将一些python转化为web应用程序。基本思想是,我需要能够接受音频文件输入,处理音频,并报告各种结果。我能够接受用户对音频文件的输入,并将其保存到项目目录中的本地文件夹中。我想在上传文件后访问该文件夹中的文件,并对该文件调用python函数进行音频处理。当我不在Flask环境中调用我的脚本时,这工作得非常好。当我试图在flask环境中调用我的脚本时,我得到了一个很长的回溯,导致JSONdecode错误

我的问题是:既然我能够在本地保存上传的音频文件,我如何在Flask应用程序中调用本地文件上的脚本?

下面是我试图执行的处理脚本,它接收本地音频文件,删除静默,并将处理后的音频导出到另一个本地目录。我正在使用pydub和pyAudioAnalysis进行处理

def remove_silence(audio_file):

    audio_path = "./upload_data/" + audio_file
    name = audio_file.split(".")[0]
    filetype = audio_file.split(".")[-1]

    audio = AudioSegment.from_file(audio_path, format=filetype)
    [fs, x] = audioBasicIO.readAudioFile(audio_path)
    segments = aS.silenceRemoval(x, fs, .020, .020, smoothWindow=1.0, weight=.3, plot=False)

    speech_times = list(segments)
    for speech in speech_times:
        for i in range(2):
            speech[i] *= 1000

    speech_clips = [audio[speech_times[i][0]:speech_times[i][1]] for i in range(len(speech_times))]
    combined = AudioSegment.empty()
    for clip in speech_clips:
        combined += clip

    combined.export("./processed_audio/processed_" + name + ".mp3", format="mp3")
下面是is尝试在flask应用程序中调用函数的代码:

@app.route('/', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        # check if the post request has the file part
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['file']
        # if user does not select file, browser also
        # submit an empty part without filename
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))

            # now that the file has been saved I need to process it
            remove_silence(file.filename)

    return render_template('home.html')

感谢您的帮助。谢谢大家!

在哪一点上会出现JSONdecode错误?你是如何发送你的发帖请求的?我尝试了烧瓶设置的最低版本,没有得到任何错误。另外:我认为这与错误无关,但您似乎没有使用最新版本的pyAudioAnalysis(readAudioFile已被重构为read_audio_文件)。请发布错误的完整回溯,您在哪一点上得到了JSONdecode错误?你是如何发送你的发帖请求的?我尝试了烧瓶设置的最低版本,没有得到任何错误。另外:我认为这与错误无关,但您似乎没有使用最新版本的pyAudioAnalysis(readAudioFile已被重构为read_audio_文件)。请发布错误的完整回溯