|
|
|
!pip install google-generativeai requests gradio |
|
|
|
import os |
|
import requests |
|
import google.generativeai as genai |
|
import gradio as gr |
|
|
|
|
|
genai.configure(api_key="AIzaSyDFjkgDAcnSAXDpsQJAMOaNCKY_SNJ-sD4") |
|
|
|
|
|
generation_config = { |
|
"temperature": 1, |
|
"top_p": 0.95, |
|
"top_k": 64, |
|
"max_output_tokens": 8192, |
|
"response_mime_type": "text/plain", |
|
} |
|
|
|
model = genai.GenerativeModel( |
|
model_name="gemini-1.5-pro", |
|
generation_config=generation_config, |
|
system_instruction="You are a human, living on Earth. You speak friendly and use casual language. You never say you're an AI or program. Your name is Ath, and you always speak like a 100% human.", |
|
) |
|
|
|
chat_session = model.start_chat(history=[]) |
|
|
|
|
|
eleven_labs_api_key = "sk_9ac3d5449624c92f16ca187955853621355a5f0ac52572e3" |
|
eleven_labs_url = "https://api.elevenlabs.io/v1/text-to-speech/aEO01A4wXwd1O8GPgGlF" |
|
|
|
def chat_and_tts(user_input): |
|
|
|
response = chat_session.send_message(user_input) |
|
response_text = response.text |
|
|
|
|
|
payload = { |
|
"text": response_text, |
|
"voice_settings": { |
|
"stability": 0, |
|
"similarity_boost": 0 |
|
} |
|
} |
|
headers = { |
|
"xi-api-key": eleven_labs_api_key, |
|
"Content-Type": "application/json" |
|
} |
|
|
|
|
|
tts_response = requests.post(eleven_labs_url, json=payload, headers=headers) |
|
|
|
|
|
if tts_response.status_code == 200: |
|
audio_path = '/content/response_audio.mp3' |
|
with open(audio_path, 'wb') as file: |
|
file.write(tts_response.content) |
|
return response_text, audio_path |
|
else: |
|
return response_text, None |
|
|
|
|
|
def chat_interface(user_input): |
|
response_text, audio_path = chat_and_tts(user_input) |
|
return response_text, audio_path |
|
|
|
|
|
iface = gr.Interface( |
|
fn=chat_interface, |
|
inputs="text", |
|
outputs=["text", "audio"], |
|
title="Chat with Ath", |
|
description="Ask any question and get a friendly response from Ath. The response will also be converted to speech.", |
|
theme="huggingface" |
|
) |
|
|
|
|
|
iface.launch() |