Spaces:
Runtime error
Runtime error
File size: 3,163 Bytes
54dc7b4 96cfbdb 54dc7b4 96cfbdb 7e520da 96cfbdb 7e520da 96cfbdb 54dc7b4 |
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 |
from torchvision.io import read_image, ImageReadMode
import torch
import numpy as np
from torchvision.transforms import CenterCrop, ConvertImageDtype, Normalize, Resize
from torchvision.transforms.functional import InterpolationMode
from PIL import Image
import os
import requests
import streamlit as st
from transformers import MBart50TokenizerFast
def voicerss_tts(text, lang_id):
lang_id_to_code_map = {
"en": "en-us",
"fr": "fr-fr",
"de": "de-de",
"es": "es-es"
}
url = "https://voicerss-text-to-speech.p.rapidapi.com/"
querystring = {"key":st.secrets["voicerss_key"],"hl":lang_id_to_code_map[lang_id],"src":text,"f":"8khz_8bit_mono","c":"mp3","r":"0"}
headers = {
'x-rapidapi-key': "0493c0e0f4mshe80b4d8c8986e14p103af6jsna45ff41b76b1",
'x-rapidapi-host': "voicerss-text-to-speech.p.rapidapi.com"
}
response = requests.request("GET", url, headers=headers, params=querystring)
return response.content
class Toc:
def __init__(self):
self._items = []
self._placeholder = None
def title(self, text):
self._markdown(text, "h1")
def header(self, text):
self._markdown(text, "h2", " " * 2)
def subheader(self, text):
self._markdown(text, "h3", " " * 4)
def subsubheader(self, text):
self._markdown(text, "h4", " " * 8)
def placeholder(self, sidebar=False):
self._placeholder = st.sidebar.empty() if sidebar else st.empty()
def generate(self):
if self._placeholder:
self._placeholder.markdown("\n".join(self._items), unsafe_allow_html=True)
def _markdown(self, text, level, space=""):
key = "".join(filter(str.isalnum, text)).lower()
st.markdown(f"<{level} id='{key}'>{text}</{level}>", unsafe_allow_html=True)
self._items.append(f"{space}* <a href='#{key}'>{text}</a>")
tokenizer = MBart50TokenizerFast.from_pretrained("facebook/mbart-large-50")
class Transform(torch.nn.Module):
def __init__(self, image_size):
super().__init__()
self.transforms = torch.nn.Sequential(
Resize([image_size], interpolation=InterpolationMode.BICUBIC),
CenterCrop(image_size),
ConvertImageDtype(torch.float),
Normalize(
(0.48145466, 0.4578275, 0.40821073),
(0.26862954, 0.26130258, 0.27577711),
),
)
def forward(self, x: torch.Tensor) -> torch.Tensor:
with torch.no_grad():
x = self.transforms(x)
return x
transform = Transform(224)
def get_transformed_image(image):
if isinstance(image, np.ndarray) and image.shape[-1] == 3:
image = image.transpose(2, 0, 1)
image = torch.tensor(image)
return transform(image).unsqueeze(0).permute(0, 2, 3, 1).numpy()
def read_markdown(path, parent="./sections/"):
with open(os.path.join(parent, path)) as f:
return f.read()
language_mapping = {
"en": "en_XX",
"de": "de_DE",
"fr": "fr_XX",
"es": "es_XX"
}
code_to_name = {
"en": "English",
"fr": "French",
"de": "German",
"es": "Spanish",
} |