gradio_audio_2 / app.py
tony1966's picture
initial commit
faf557e verified
raw
history blame contribute delete
893 Bytes
import gradio as gr
import numpy as np
def handler(in1):
if in1 is None:
msg='請先上傳或錄音!'
try:
sample_rate, audio_data=in1
duration=len(audio_data)/sample_rate # 計算音訊長度(秒)
avg_amplitude=np.mean(np.abs(audio_data)) # 計算音訊平均振幅
msg=(f'音訊類型: {type(in1)}\n'
f'音訊資料: {in1}\n'
f'取樣率: {sample_rate}\n'
f'時長: {duration:.2f} 秒\n'
f'平均振幅: {avg_amplitude:.4f}'
)
except Exception as e:
msg=f'處理音訊時發生錯誤:{e}'
return msg
in1=gr.Audio(label='音訊輸入') # 預設 type='numpy'
out1=gr.Textbox(label='輸出資訊')
iface=gr.Interface(
fn=handler,
inputs=[in1],
outputs=out1,
title='Audio 元件測試',
flagging_mode='never',
)
iface.launch()