Dans l'environnement Windows, vous pouvez facilement le lire avec softalk, etc., mais dans l'environnement Linux, vous ne pouvez pas l'exécuter à moins de faire de votre mieux avec wine etc. Il n'y a pas d'autre choix que d'appeler directement AquesTalk, ce que softalk appelle.
Si vous souhaitez simplement synthétiser la voix, il est plus facile d'appeler l'API de synthèse vocale de Google Translate avec gTTS. Lorsque j'essaye d'installer open-jtalk, il entre en conflit dans mon environnement, donc la solution est gênante et je ne l'ai pas essayée.
Utilisez la bibliothèque AquesTalk2 à partir de code c et python pour synthétiser la voix.
Téléchargez la version d'évaluation depuis Download \ | Aquest Co., Ltd.. Cet article utilise AquesTalk2. L'opération avec AquesTalk et AquesTalk10 n'est pas confirmée.
De plus, dans la version d'évaluation, tous les tons de "na line, ma line" seront "nu".
Installez la bibliothèque conformément au manuel inclus dans le fichier téléchargé. Veuillez lire comme il convient la version de la bibliothèque et s'il faut utiliser lib ou lib64.
$ cd aqtk2-lnx-eva/lib64
$ cp libAquesTalk2Eva.so.2.3 /usr/lib
$ sudo ln -sf /usr/lib/libAquesTalk2Eva.so.2.3 /usr/lib/libAquesTalk2Eva.so.2
$ sudo ln -sf /usr/lib/libAquesTalk2Eva.so.2 /usr/lib/libAquesTalk2Eva.so
$ sudo /sbin/ldconfig -n /usr/lib
Compilez et exécutez ʻaqtk2-lnx-eva / samples / SampleTalk.c`. Vous pouvez suivre le manuel ci-joint.
Puisqu'une fonction de synthèse vocale est préparée pour chaque codage, modifiez SampleTalk.c en fonction du codage tel que terminal. Ici, UTF-8 est utilisé. Si la fonction qui correspond à l'encodage n'est pas appelée, elle ne fonctionnera pas correctement.
// unsigned char *wav = AquesTalk2_Synthe_Euc(str, 100, &size, NULL);
unsigned char *wav = AquesTalk2_Synthe_Utf8(str, 100, &size, NULL);
Compilez avec la bibliothèque et le chemin d'en-tête spécifiés.
$ g++ -o SampleTalk samples/SampleTalk.c -lAquesTalk2Eva -Ilib64
L'exemple prend le texte de l'entrée standard et renvoie les données au format wav vers la sortie standard. Il lira "Ralentissez ** Nu **".
$ echo "Prends ton temps" | ./SampleTalk > sample.wav
Chargez et exécutez la bibliothèque avec ctypes. Vous pouvez modifier la qualité de la voix en spécifiant le fichier phont joint à la version d'évaluation. S'il n'est pas spécifié, cela fonctionne par défaut. La valeur par défaut est assez facile à entendre.
from ctypes import *
def synthe_utf8(text, speed=100, file_phont=None):
if file_phont is not None:
with open(file_phont, 'rb') as f:
phont = f.read()
else:
phont = None
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):
print("ERR:", size.value)
return None
wav_p = cast(wav_p, POINTER(ARRAY(c_ubyte, size.value)))
wav = bytearray(wav_p.contents)
aqtk.AquesTalk2_FreeWave(wav_p)
return wav
if __name__ == '__main__':
with open('./default.wav', 'wb') as f:
wav = synthe_utf8(u"Prends ton temps", speed=100)
f.write(wav)
with open('./yukkuri.wav', 'wb') as f:
wav = synthe_utf8(u"Prends ton temps", speed=100, file_phont='aqtk2-lnx-eva/phont/aq_yukkuri.phont')
f.write(wav)
Dans la version d'évaluation, "na line, ma line" est "nu", mais il semble que vous ayez besoin d'une licence pour la lire correctement. Pour un usage personnel, vous pouvez obtenir une licence de développement pour moins de 2000 yens. (Au 9 juin 2018) Voir ci-dessous pour des détails tels que les règles de distribution. Licence d'utilisation personnelle \ | Aquest Co., Ltd.