как передать новый файл другой функции в flask и проверить через почтальона? - PullRequest
0 голосов
/ 28 мая 2020

Я создаю rest api, который получает файл wav, по сути, это должен быть конвейер.

Он принимает запись разговора в формате wav между 2 людьми, извлекает один канал, занимает 10 секунд и преобразует эти 10 секунд в тензорную форму.

У меня есть 3 отдельные функции, и я тестировал их, вызывая python для каждой из них в оболочке. Теперь нужно объединить все это в одну удобную веб-службу: получить необработанную запись на 1 конце - создать тензор на 2-м конце.

Этот код извлекает и сохраняет канал:

def get_customer_voice(file):
    wav = wf.read(file)
    ch = wav[1].shape[1]
    sr = wav[0]

    c1 = wav[1][:,1]
    if ch==1:
        exit()

    vad = VoiceActivityDetection()
    vad.process(c1)
    voice_samples = vad.get_voice_samples()
    wf.write('%s_customer.wav'%file,sr,voice_samples)

I вызвал все 3, как это, в cmd:

   >>>python get_customer_voice file1_2019.wav //produces file1_1channel.wav

   >>>python get_10_seconds.py file1_2019_1channel.wav // produces file1_1channel_10_seconds.wav

   >>>python get_embeddig.py file_10_sec.wav //gives final embedding

Но функция extract_channel сохраняет его как файл, как обойтись без сохранения файла? Как передать каждый вновь сформированный файл без сохранения и протестировать в почтальоне, чтобы убедиться, что этот веб-сервис работает?

Мой flask server.py:

app = Flask(__name__)
@app.route('/process_all', methods = ['POST'])
def process_all():
    if request.method == 'POST':
        file_wav = request.files['file_wav']
        file_1_channel = get_channel(file_wav)// not working
        file_10sec = get_10_sec(file_1_channel)// not working

        embedding = get_embedding(file_10sec)
        return jsonify({'response': str(embedding)})

if __name__ == '__main__':
    app.run(debug=True, port=9090)

Как склеить все 3 функции вместе?

один потенциал Решение состоит в том, чтобы не сохранять массив numpy обратно в wav и просто работать с массивами numpy. Кто сталкивался с такой же проблемой обертывания модели в успокаивающем api?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...