Spaces:
Runtime error
Runtime error
File size: 4,658 Bytes
8a39e1b b487388 064ae46 4da4461 d4e3eb1 b487388 d4e3eb1 b487388 d4e3eb1 064ae46 b487388 8a39e1b c1449f4 b487388 8a39e1b 8987e14 8a39e1b 38cf93f 03e50f4 8a39e1b b487388 8a39e1b b487388 8a39e1b b487388 8a39e1b 206e3c8 85658e3 206e3c8 8a39e1b 1e51497 2a6b47b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
import os
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
from sentence_transformers import SentenceTransformer
import spacy
import gradio as gr
import subprocess
# def download_spacy_model(model_name):
# command = f"python -m spacy download {model_name}"
# process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# stdout, stderr = process.communicate()
# # Check if the command executed successfully
# if process.returncode != 0:
# print(f"An error occurred while downloading the model: {stderr.decode('utf-8')}")
# else:
# print(f"Successfully downloaded the model: {stdout.decode('utf-8')}")
# Call the function to download the model
# def find_closest(query):
# files_contents = []
# files_names = []
# for file in os.listdir():
# if file.endswith(".txt"):
# with open(file, 'r') as f:
# content = f.read()
# files_contents.append(content)
# files_names.append(file)
# # Append query to the end
# files_contents.append(query)
# # Initialize the TfidfVectorizer
# tfidf_vectorizer = TfidfVectorizer()
# # Fit and transform the texts
# tfidf_matrix = tfidf_vectorizer.fit_transform(files_contents)
# # Compute the cosine similarity between the query and all files
# similarity_scores = cosine_similarity(tfidf_matrix[-1:], tfidf_matrix[:-1])
# # Get the index of the file with the highest similarity score
# max_similarity_idx = similarity_scores.argmax()
# # Return the name of the file with the highest similarity score
# return files_names[max_similarity_idx]
# def find_closest(query):
# try:
# nlp = spacy.load('en_core_web_md')
# except:
# download_spacy_model('en_core_web_md')
# nlp = spacy.load('en_core_web_md')
# files_names = []
# files_vectors = []
# for file in os.listdir():
# if file.endswith(".txt"):
# with open(file, 'r') as f:
# content = f.read()
# files_names.append(file)
# # Get the vector representation of the content
# files_vectors.append(nlp(content).vector)
# # Get the vector representation of the query
# query_vector = nlp(query).vector
# # Compute the cosine similarity between the query and all files
# similarity_scores = cosine_similarity([query_vector], files_vectors)
# # Get the index of the file with the highest similarity score
# max_similarity_idx = similarity_scores.argmax()
# # Return the name of the file with the highest similarity score
# return files_names[max_similarity_idx]
def find_closest(query):
files_to_exclude = ["packages.txt", "requirements.txt","pre-requirements.txt"]
model = SentenceTransformer('all-MiniLM-L6-v2') # You can choose other models
files_contents = []
files_names = []
for file in os.listdir():
if file.endswith(".txt") and file not in files_to_exclude :
print(f"Found .txt file: {file}")
with open(file, 'r') as f:
content = f.read()
files_contents.append(content)
files_names.append(file)
# Append query to the end
files_contents.append(query)
# Create sentence embeddings for each text
embeddings = model.encode(files_contents)
# Compute the cosine similarity between the query and all files
similarity_scores = cosine_similarity([embeddings[-1]], embeddings[:-1])
# Get the index of the file with the highest similarity score
max_similarity_idx = similarity_scores.argmax()
# Return the name of the file with the highest similarity score
return files_names[max_similarity_idx]
def find_closest_mp3(query):
closest_txt_file = find_closest(query)
file_name_without_extension, _ = os.path.splitext(closest_txt_file)
return file_name_without_extension + '.mp3'
my_theme = gr.Theme.from_hub("ysharma/llamas")
with gr.Blocks(theme=my_theme) as demo:
gr.Markdown("""<h1 style="text-align: center;">BeatLlama Dreambooth</h1>""")
# video=gr.PlayableVideo("final_video.mp4
gr.Markdown("""<h2 style="text-align: center;"><span style="color: white;"> Get a song for your dream, but sung by AI!</span></h2>""")
inp=gr.Textbox(placeholder="Describe your dream!",label="Your dream")
out=gr.Audio(label="Llamas singing your dream")
inp.change(find_closest_mp3,inp,out,scroll_to_output=True)
out.play(None)
demo.queue(1,api_open=False)
demo.launch(show_api=False) |