Spaces:
Runtime error
Runtime error
from voicefixer import VoiceFixer | |
import streamlit as st | |
from audio_recorder_streamlit import audio_recorder | |
from io import BytesIO | |
import soundfile as sf | |
# import noisereduce as nr | |
st.set_page_config(page_title="VoiceFixer app", page_icon=":notes:") | |
st.title("Voice Fixer App :notes:") | |
st.write( | |
""" | |
This app is a mix of [VoiceFixer Model](https://github.com/haoheliu/voicefixer), and a custom | |
Streamlit component that [records audio](https://github.com/Joooohan/audio-recorder-streamlit) Online. | |
Currently the app shows great results when removing background noises, but | |
speech improvements aren't as obvious. | |
""") | |
#Config files are on voicefixer/base and voicefixer/vocoder/config import | |
# They were uploaded on hugging face | |
voicefixer = VoiceFixer() | |
audio_bytes = audio_recorder( | |
pause_threshold= 1.5 | |
) | |
try: | |
data, samplerate = sf.read(BytesIO(audio_bytes)) | |
#print(samplerate) | |
sf.write("original.wav",data,samplerate) | |
st.audio(audio_bytes, format = "audio/wav") | |
if data.shape[0]>=10000: | |
# reduced_noise = nr.reduce_noise( | |
# y= (data[:,0]+data[:,1])/2.0,#data[:,0],#, data X,Should be a single channel | |
# sr=samplerate, | |
# n_fft=512, #512 recommended for speech, 1024 default | |
# stationary=False, | |
# ) | |
# st.write("[Classic] Background noise reduction:") | |
# st.audio(reduced_noise, sample_rate=samplerate) | |
placeholder = st.empty() | |
placeholder.info("Enhancing Audio...") | |
voicefixer.restore(input="original.wav", # low quality .wav/.flac file | |
output="enhanced_output.wav", | |
cuda=False, # GPU acceleration | |
mode=0) | |
st.write("[Deep] The Audio without background noises and a little enhancement :ocean:") | |
st.audio("enhanced_output.wav") | |
placeholder.empty() | |
else: st.warning("Recorded Audio is too short, try again :relieved:")#wink | |
except: | |
st.info("Try to record some audio :relieved:") |