Spaces:
Paused
Paused
import gradio as gr | |
from transformers import pipeline | |
import os | |
import torch | |
# Set max_split_size_mb | |
os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'max_split_size_mb:50' | |
title = """# 🙋🏻♂️Welcome to🌟Tonic's Nexus🐦⬛Raven""" | |
description = """You can build with this endpoint using Nexus Raven. The demo is still a work in progress but we hope to add some endpoints for commonly used functions such as intention mappers and audiobook processing. | |
You can also use Nexus🐦⬛Raven on your laptop & by cloning this space. 🧬🔬🔍 Simply click here: <a style="display:inline-block" href="https://huggingface.co/spaces/Tonic1/NexusRaven2?duplicate=true"><img src="https://img.shields.io/badge/-Duplicate%20Space-blue?labelColor=white&style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAP5JREFUOE+lk7FqAkEURY+ltunEgFXS2sZGIbXfEPdLlnxJyDdYB62sbbUKpLbVNhyYFzbrrA74YJlh9r079973psed0cvUD4A+4HoCjsA85X0Dfn/RBLBgBDxnQPfAEJgBY+A9gALA4tcbamSzS4xq4FOQAJgCDwV2CPKV8tZAJcAjMMkUe1vX+U+SMhfAJEHasQIWmXNN3abzDwHUrgcRGmYcgKe0bxrblHEB4E/pndMazNpSZGcsZdBlYJcEL9Afo75molJyM2FxmPgmgPqlWNLGfwZGG6UiyEvLzHYDmoPkDDiNm9JR9uboiONcBXrpY1qmgs21x1QwyZcpvxt9NS09PlsPAAAAAElFTkSuQmCC&logoWidth=14" alt="Duplicate Space"></a></h3> | |
Join us : 🌟TeamTonic🌟 is always making cool demos! Join our active builder's🛠️community on 👻Discord: [Discord](https://discord.gg/GWpVpekp) On 🤗Huggingface: [TeamTonic](https://huggingface.co/TeamTonic) & [MultiTransformer](https://huggingface.co/MultiTransformer) On 🌐Github: [Polytonic](https://github.com/tonic-ai) & contribute to 🌟 [PolyGPT](https://github.com/tonic-ai/polygpt-alpha) | |
""" | |
raven_pipeline = pipeline( | |
"text-generation", | |
model="Nexusflow/NexusRaven-V2-13B", | |
torch_dtype="auto", | |
device_map="auto", | |
) | |
class DialogueToSpeechConverter: | |
def __init__(self): | |
self.raven_pipeline = raven_pipeline | |
def process_text(self, input_text: str) -> str: | |
prompt = f"User Query: {input_text}<human_end>" | |
result = self.raven_pipeline(prompt, max_new_tokens=2048, return_full_text=False, do_sample=False, temperature=0.001)[0]["generated_text"] | |
torch.cuda.empty_cache() | |
return result | |
def create_interface(): | |
converter = DialogueToSpeechConverter() | |
with gr.Blocks() as app: | |
gr.Markdown(title) | |
gr.Markdown(description) | |
with gr.Row(): | |
input_text = gr.Textbox(label="Input Text") | |
submit_button = gr.Button("Submit") | |
output_text = gr.Textbox(label="Nexus🐦⬛Raven") | |
submit_button.click(converter.process_text, inputs=input_text, outputs=output_text) | |
return app | |
if __name__ == "__main__": | |
converter = DialogueToSpeechConverter() | |
demo = gr.Interface( | |
fn=converter.process_text, | |
inputs="text", | |
outputs="text", | |
examples=[ | |
[''' | |
Function: | |
def create_audio_sequence_order(text): | |
""" | |
Analyzes the text and creates an order for each character and narrator segment. | |
Args: | |
text (str): The text containing the dialogues and narration. | |
Returns: | |
list: A list of tuples, each containing the character/narrator name and a segment of their dialogue/narration. | |
""" | |
Function: | |
def convert_text_to_speech_single_voice(text, voice): | |
""" | |
Converts a given text to speech using a specified voice. This function is used when there is only one character in the text. | |
Args: | |
text (str): The text to be converted to speech. | |
voice (str): The voice to be used for the audio generation. | |
Returns: | |
str: The path to the generated speech MP3 file. | |
""" | |
User Query: Currently, one way that the wealthy distinguish themselves from others is through the collection of rare objects. In a Celebration Society, to own an “original” of something will remain significant. However, barring a desire to prevent others from enjoying the experience, it will become possible to have perfect replicas of all manner of objects including paintings and sculptures. | |
There will still be pride of ownership in the original. Others will be able to fully enjoy the “same” piece as well. | |
use either speech to single voice if there's no dialogue or create_audio_sequence_order if there is dialogue<human_end> | |
'''] | |
], | |
title=title, | |
description=description | |
) | |
demo.launch() |