Browse Source

音声合成追加

btc-sounds
みてるぞ 9 months ago
parent
commit
ff392ea999
2 changed files with 39 additions and 1 deletions
  1. +31
    -0
      aques.py
  2. +8
    -1
      main.py

+ 31
- 0
aques.py View File

@@ -0,0 +1,31 @@
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


+ 8
- 1
main.py View File

@@ -6,6 +6,8 @@ import time
import random import random
from talk import Talk from talk import Talk
import subprocess import subprocess
from aques import Aques
from playsound import playsound




YOUTUBE_ID: str = 'aq3QwuYz-KU' YOUTUBE_ID: str = 'aq3QwuYz-KU'
@@ -47,7 +49,12 @@ class Main:


noon.play () noon.play ()


# subprocess.run (r'wine .\')
wav: bytearray | None = Aques.main (answer)
if wav is not None:
with open ('./nizika_talking.wav', 'wb') as f:
f.write (wav)

playsound ('./nizika_talking.wav')


time.sleep (10) time.sleep (10)




Loading…
Cancel
Save