import gradio as gr import time import uuid from util import ( create_task_v3, get_task_result, ) IP_Dict = {} def generate_biden_voice_with_realtime_updates(text, word_num, request: gr.Request): """ Biden AI voice generation function with real-time status updates """ client_ip = request.client.host x_forwarded_for = dict(request.headers).get('x-forwarded-for') if x_forwarded_for: client_ip = x_forwarded_for if client_ip not in IP_Dict: IP_Dict[client_ip] = 0 IP_Dict[client_ip] += 1 print(f"client_ip: {client_ip}, count: {IP_Dict[client_ip]}") if IP_Dict[client_ip] > 5: msg = "You have reached the maximum number of requests" # Create "Get More Tries" button HTML get_more_tries_html = f"""
""" yield msg, None, "", gr.update(value=get_more_tries_html, visible=True), "" return msg, None, "", gr.update(value=get_more_tries_html, visible=True), "" if not text or len(text.strip()) < 3: return "Text too short, please enter at least 3 characters", None, "No task information", gr.update(visible=False), "" try: task_type = "voice" # Create task task_result = create_task_v3(task_type, text.strip(), word_num, is_rewrite=False) if not task_result: return "Failed to create task", None, "Task creation failed", gr.update(visible=False), "" else: yield "Task created successfully", None, "Task creation successful", gr.update(visible=False), "" max_polls = 300 poll_interval = 1 task_url = f"https://trumpaivoice.net/task/{task_result['uuid']}" for i in range(max_polls): time.sleep(poll_interval) task = get_task_result(task_result['uuid']) # print(task, i, "get_task_result") if task.get('data', {}): status = task.get('data').get('status', '') text_final = task.get('data').get('text_final', '') if status in ['completed',]: voice_url = task.get('data').get('voice_url', '') print(voice_url, "===>voice_url") # ไธ่ฝฝ้ณ้ขๆไปถๅฐๆฌๅฐไปฅ้ฟๅ SSRFไฟๆค้ฎ้ข local_audio_path = voice_url # Create action buttons HTML action_buttons_html = f""" """ yield f"โ success!!!", local_audio_path, text_final, gr.update(value=action_buttons_html, visible=True), task_url return "โ Generation successful!", local_audio_path, "success", gr.update(value=action_buttons_html, visible=True), task_url elif status in ['failed', 'voice_error', 'no_credits']: yield "โ Generation failed!", None, None, gr.update(visible=False), "" return "โ Generation failed!", None, None, gr.update(visible=False), "" else: yield f"query {i} times, on processing, go to task page {task_url} to check status", None, text_final, gr.update(visible=False), task_url return "โ Generation failed!", None, None, gr.update(visible=False), "" except Exception as e: error_msg = f"Generation failed: {str(e)}" yield error_msg, None, f"โ Error message: {error_msg}", gr.update(visible=False), "" return error_msg, None, f"โ Error message: {error_msg}", gr.update(visible=False), "" # Create Gradio Interface with gr.Blocks(title="Joe Biden AI Voice", theme=gr.themes.Soft()) as demo: # Main title - at the top gr.HTML("""powered by trumpaivoice.net
Transform any text into authentic Joe Biden speech with our cutting-edge AI voice synthesis technology. Whether you're creating content for entertainment, education, or social media, our advanced neural network captures President Biden's distinctive speaking style, intonation, and rhetorical patterns with remarkable accuracy.
Our AI model is trained on thousands of hours of Biden speeches, capturing his unique vocal characteristics, pronunciation patterns, and speaking rhythm to deliver incredibly lifelike results.
Generate high-quality Biden AI voice clips in seconds, not minutes. Our optimized infrastructure ensures rapid processing while maintaining exceptional audio quality.
Perfect for memes, podcasts, educational content, entertainment videos, or any creative project that needs an authentic Biden voice performance.
Explore our premium collection of celebrity AI voices! Our high-quality service delivers lightning-fast results with exceptional audio quality. Experience the best AI voice generation with our reliable and responsive platform.
Click biden ai voices showcase to see more videos