|
12345678910111213141516171819202122232425262728293031 |
- from ctypes import *
-
-
- class Aques:
- @classmethod
- def main (cls, text: str) -> bytearray | None:
- return cls.__synthe_utf8 (text, speed = 100)
-
- @staticmethod
- def __synthe_utf8 (text, speed, phont_file = None) -> bytearray | None:
- if phont_file is None:
- phont = None
- else:
- with open (phont_file, 'rb') as f:
- phont = f.read ()
-
- aqtk = cdll.LoadLibrary ('libAquesTalk2Eva.so')
- aqtk.AquesTalk2_Synthe_Utf8.restype = POINTER (ARRAY (c_ubyte, 0))
- size = c_int (0)
- wav_p = aqtk.AquesTalk2_Synthe_Utf8 (text.encode ('utf-8'), speed,
- byref (size), phont)
-
- if not bool (wav_p):
- return None
-
- wav_p = cast (wav_p, POINTER (ARRAY (c_ubyte, size.value)))
- wav = bytearray (wav_p.contents)
- aqtk.AquuesTalk2_FreeWave (wav_p)
-
- return wav
-
|