aisatsu-app-api / utils.py
vumichien's picture
Update utils.py
0ac7fe7
raw
history blame
1.23 kB
from io import BytesIO
import base64
from PIL import Image
import cv2
import numpy as np
from gtts import gTTS
def tts(text: str, language="ja") -> object:
"""Converts text into autoplay html.
Args:
text (str): generated answer of bot
language (str): language of text
Returns:
html: autoplay object
"""
tts_object = gTTS(text=text, lang=language, slow=False)
bytes_object = BytesIO()
tts_object.write_to_fp(bytes_object)
bytes_object.seek(0)
b64 = base64.b64encode(bytes_object.getvalue()).decode()
return b64
def read_image_file(file) -> Image.Image:
image = Image.open(BytesIO(file))
return image
def pil_to_base64(img, format="jpeg"):
buffer = BytesIO()
img.save(buffer, format)
img_str = base64.b64encode(buffer.getvalue()).decode("ascii")
return img_str
def base64_to_pil(img_str):
if "base64," in img_str:
img_str = img_str.split(",")[1]
img_raw = base64.b64decode(img_str)
img = Image.open(BytesIO(img_raw))
return img
def get_hist(image):
hist = cv2.calcHist([np.array(image)], [0, 1, 2], None, [8, 8, 8], [0, 256, 0, 256, 0, 256])
hist = cv2.normalize(hist, hist).flatten()
return hist