DeepLearning101 commited on
Commit
06fc5c8
1 Parent(s): 109bb65

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -0
app.py ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import time
3
+ import json
4
+ import random
5
+ import gradio as gr
6
+ import torch
7
+ import torchaudio
8
+ import numpy as np
9
+ from scipy.io import wavfile
10
+ import scipy.signal as sps
11
+ from denoiser.demucs import Demucs
12
+ from pydub import AudioSegment
13
+
14
+ modelpath = './denoiser/master64.th'
15
+
16
+ def transcribe(file_upload, microphone):
17
+ file = microphone if microphone is not None else file_upload
18
+ model = Demucs(hidden=64)
19
+ state_dict = torch.load(modelpath, map_location='cpu')
20
+ model.load_state_dict(state_dict)
21
+ demucs = model
22
+ x, sr = torchaudio.load(file)
23
+ out = demucs(x[None])[0]
24
+ out = out / max(out.abs().max().item(), 1)
25
+ torchaudio.save('enhanced.wav', out, sr)
26
+ enhanced = AudioSegment.from_wav('enhanced.wav') #只有去完噪的需要降bitrate再做語音識別
27
+ enhanced.export('enhanced.wav', format="wav", bitrate="256k")
28
+ return "enhanced.wav"
29
+
30
+ demo = gr.Interface(
31
+ fn=transcribe,
32
+ inputs=[
33
+ gr.inputs.Audio(source="microphone", type="filepath", optional=True, label="語音質檢麥克風實時錄音"),
34
+ gr.inputs.Audio(source="upload", type="filepath", optional=True, label="語音質檢原始音檔"),
35
+ ],
36
+ #outputs=gr.outputs.Textbox(label="語音質檢音檔噪音去除結果"),
37
+ outputs=gr.outputs.Audio(type="filepath", label="Output"),
38
+ title="語音質檢噪音去除 (語音增強):Meta Denoiser",
39
+ description=(
40
+ "為了提升語音識別的效果,可以在識別前先進行噪音去除"
41
+ ),
42
+ allow_flagging="never",
43
+ examples=[
44
+ ["exampleAudio/15s_2020-03-27_sep1.wav"],
45
+ ["exampleAudio/13s_2020-03-27_sep2.wav"],
46
+ ["exampleAudio/30s_2020-04-23_sep1.wav"],
47
+ ["exampleAudio/15s_2020-04-23_sep2.wav"],
48
+ ],
49
+ )
50
+
51
+ demo.launch(enable_queue=True)