import gradio as gr from timbral_models.Timbral_Extractor import timbral_extractor def main_timbre_iosr_analysis(in_files): if type(in_files) is not list: in_files = [in_files] output_text = '' for file_path in in_files: if file_path: timbre = timbral_extractor(file_path) output_text +=f'----- Комплексные характеристики тембра ----- \n' output_text +=f'1. Глубина, depth (%): {round(timbre.get("depth", ""),2)} \n' output_text +=f'2. Яркость, brightness (%): {round(timbre.get("brightness", ""),2)} \n' output_text +=f'3. Теплота, warmth (%): {round(timbre.get("warmth", ""),2)} \n' output_text +=f'4. Жесткость, hardness (%): {round(timbre.get("hardness", ""),2)} \n' output_text +=f'5. Резкость, sharpness (%): {round(timbre.get("sharpness", ""),2)} \n' output_text +=f'6. Шершавость, roughness (%): {round(timbre.get("roughness", ""),2)} \n' output_text +=f'7. Гулкость, boominess (дест. число): {round(timbre.get("boominess", ""),2)} \n' output_text +=f'8. Реверберация, reverb (0/1): {timbre.get("reverb", "")} \n' return output_text def timbre_iosr_analysis(in_files): output_text = main_timbre_iosr_analysis(in_files) return output_text iface = gr.Interface( fn = timbre_iosr_analysis, inputs=[ gr.Audio(type="filepath", label="Загрузить аудио файл"), ], outputs=[ gr.Textbox(label="Результаты"), ], title = "Анализатор \"Характеристики тембра\"", description = "Выбирите аудиофайл для анализа, дождитесь его загрузки в окне прослушивания (слева). Затем нажмите кнопку \"Запустить\". \n Дождитесь появление результатов в окне вывода (справа).", submit_btn = "Запустить", clear_btn = "Очистить", allow_flagging="never" ) if __name__ == "__main__": iface.launch()