ronniet's picture
Update app.py
b535b67
import gradio as gr
from transformers import pipeline
import librosa
import numpy as np
import torch
# from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan
from transformers import AutoProcessor, AutoModelForCausalLM
# checkpoint = "microsoft/speecht5_tts"
# tts_processor = SpeechT5Processor.from_pretrained(checkpoint)
# tts_model = SpeechT5ForTextToSpeech.from_pretrained(checkpoint)
# vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan")
# ic_processor = AutoProcessor.from_pretrained("microsoft/git-base")
# ic_model = AutoModelForCausalLM.from_pretrained("microsoft/git-base")
ic_processor = AutoProcessor.from_pretrained("ronniet/git-base-env")
ic_model = AutoModelForCausalLM.from_pretrained("ronniet/git-base-env")
# def tts(text):
# if len(text.strip()) == 0:
# return (16000, np.zeros(0).astype(np.int16))
# inputs = tts_processor(text=text, return_tensors="pt")
# # limit input length
# input_ids = inputs["input_ids"]
# input_ids = input_ids[..., :tts_model.config.max_text_positions]
# speaker_embedding = np.load("cmu_us_bdl_arctic-wav-arctic_a0009.npy")
# speaker_embedding = torch.tensor(speaker_embedding).unsqueeze(0)
# speech = tts_model.generate_speech(input_ids, speaker_embedding, vocoder=vocoder)
# speech = (speech.numpy() * 32767).astype(np.int16)
# return (16000, speech)
# captioner = pipeline(model="microsoft/git-base")
# tts = TTS(model_name="tts_models/multilingual/multi-dataset/your_tts", progress_bar=False, gpu=False)
def predict(image):
# text = captioner(image)[0]["generated_text"]
# audio_output = "output.wav"
# tts.tts_to_file(text, speaker=tts.speakers[0], language="en", file_path=audio_output)
pixel_values = ic_processor(images=image, return_tensors="pt").pixel_values
text_ids = ic_model.generate(pixel_values=pixel_values, max_length=50)
text = ic_processor.batch_decode(text_ids, skip_special_tokens=True)[0]
# audio = tts(text)
return text
# theme = gr.themes.Default(primary_hue="#002A5B")
demo = gr.Interface(
fn=predict,
inputs=gr.Image(type="pil",label="Environment"),
outputs=gr.Textbox(label="Caption"),
css=".gradio-container {background-color: #002A5B}",
theme=gr.themes.Soft()
)
demo.launch()