Spaces:
Sleeping
Sleeping
| from faceVerificationUtilization import FaceValidation, FaceRecord, Recognize, UploadVoice | |
| import gradio as gr | |
| with gr.Blocks(theme=gr.themes.Soft()) as demo: | |
| with gr.Tabs(): | |
| with gr.Tab("Face Validation"): | |
| gr.Markdown("## Cek validasi wajah") | |
| gr.Interface(fn=FaceValidation, inputs=gr.Image(sources="webcam", streaming=True), outputs="text", live=True) | |
| with gr.Tab("Face Record"): | |
| gr.Markdown("## Ambil Foto Wajah & Simpan Fitur") | |
| name = gr.Textbox(label="Nama User") | |
| webcam = gr.Image( | |
| type="pil", | |
| sources=["webcam"], | |
| label="Ambil Foto dari Kamera", | |
| streaming=False | |
| ) | |
| status1 = gr.Textbox(label="Status Foto 1") | |
| status2 = gr.Textbox(label="Status Foto 2") | |
| status3 = gr.Textbox(label="Status Foto 3") | |
| status4 = gr.Textbox(label="Status Foto 4") | |
| with gr.Row(): | |
| b1 = gr.Button("Ambil Foto 1") | |
| b2 = gr.Button("Ambil Foto 2") | |
| b3 = gr.Button("Ambil Foto 3") | |
| b4 = gr.Button("Ambil Foto 4") | |
| b1.click(fn=lambda img, n: FaceRecord(img, n, 1), inputs=[webcam, name], outputs=status1) | |
| b2.click(fn=lambda img, n: FaceRecord(img, n, 2), inputs=[webcam, name], outputs=status2) | |
| b3.click(fn=lambda img, n: FaceRecord(img, n, 3), inputs=[webcam, name], outputs=status3) | |
| b4.click(fn=lambda img, n: FaceRecord(img, n, 4), inputs=[webcam, name], outputs=status4) | |
| with gr.Tab("Face Recognition"): | |
| gr.Markdown("## Cek Siapa Anda") | |
| gr.Interface( | |
| fn=Recognize, | |
| inputs=gr.Image(type="numpy", sources=["webcam"], streaming=True), | |
| outputs="text", | |
| live=True | |
| ) | |
| with gr.Tab("Voice Processing"): | |
| with gr.Row(): | |
| with gr.Column(scale=1): | |
| gr.Markdown("## π€ Voice Recorder (.wav)") | |
| gr.Markdown("Rekam suara Anda lalu otomatis diunggah ke **n8n** untuk transkripsi & ringkasan.") | |
| audio_input = gr.Audio( | |
| sources=["microphone"], | |
| type="filepath", | |
| label="ποΈ Rekam Suara", | |
| show_download_button=True | |
| ) | |
| submit_btn = gr.Button("β« Stop & Upload", variant="primary") | |
| status = gr.Label(label="Status") | |
| with gr.Column(scale=1): | |
| transcription = gr.Textbox( | |
| label="π Hasil Transkripsi", | |
| interactive=False, | |
| lines=5 | |
| ) | |
| summary = gr.Textbox( | |
| label="π Ringkasan", | |
| interactive=False, | |
| lines=5 | |
| ) | |
| submit_btn.click( | |
| UploadVoice, | |
| inputs=audio_input, | |
| outputs=[status, transcription, summary] | |
| ) | |
| if __name__ == "__main__": | |
| demo.launch() |