In der Windows-Umgebung können Sie es leicht mit Softalk usw. auslesen, in der Linux-Umgebung können Sie es jedoch nur ausführen, wenn Sie mit Wein usw. Ihr Bestes geben. Es bleibt nichts anderes übrig, als AquesTalk direkt aufzurufen, das Softalk aufruft.
Wenn Sie nur Sprache synthetisieren möchten, ist es einfacher, die Text-to-Speech-API von Google Translate mit gTTS aufzurufen. Wenn ich versuche, open-jtalk zu installieren, kommt es zu Konflikten in meiner Umgebung, sodass die Lösung problematisch ist und ich sie nicht ausprobiert habe.
Verwenden Sie die AquesTalk2-Bibliothek aus c- und Python-Code, um die Stimme zu synthetisieren.
Laden Sie die Evaluierungsversion von [Download \ | Aquest Co., Ltd.] herunter (https://www.a-quest.com/download.html). Dieser Artikel verwendet AquesTalk2. Der Vorgang mit AquesTalk und AquesTalk10 ist nicht bestätigt.
Außerdem sind in der Evaluierungsversion alle Töne von "na line, ma line" "nu".
Installieren Sie die Bibliothek gemäß dem in der heruntergeladenen Datei enthaltenen Handbuch. Bitte lesen Sie gegebenenfalls die Version der Bibliothek und ob Sie lib oder lib64 verwenden möchten.
$ 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
Kompilieren Sie aqtk2-lnx-eva / samples / SampleTalk.c
und führen Sie es aus.
Sie können dem beigefügten Handbuch folgen.
Da für jede Codierung eine Sprachsynthesefunktion vorbereitet ist, ändern Sie SampleTalk.c entsprechend der Codierung, z. B. Terminal. Hier wird UTF-8 verwendet. Wenn die der Codierung entsprechende Funktion nicht aufgerufen wird, funktioniert sie nicht ordnungsgemäß.
// unsigned char *wav = AquesTalk2_Synthe_Euc(str, 100, &size, NULL);
unsigned char *wav = AquesTalk2_Synthe_Utf8(str, 100, &size, NULL);
Kompilieren Sie mit der angegebenen Bibliothek und dem angegebenen Headerpfad.
$ g++ -o SampleTalk samples/SampleTalk.c -lAquesTalk2Eva -Ilib64
Das Beispiel übernimmt Text von der Standardeingabe und gibt Daten im WAV-Format an die Standardausgabe aus. Es wird "Slow down ** Nu **" angezeigt.
$ echo "Lass dir Zeit" | ./SampleTalk > sample.wav
Laden Sie die Bibliothek und führen Sie sie mit ctypes aus. Sie können die Sprachqualität ändern, indem Sie die an die Evaluierungsversion angehängte Phont-Datei angeben. Wenn nicht angegeben, funktioniert es standardmäßig. Die Standardeinstellung ist ziemlich leicht zu hören.
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"Lass dir Zeit", speed=100)
f.write(wav)
with open('./yukkuri.wav', 'wb') as f:
wav = synthe_utf8(u"Lass dir Zeit", speed=100, file_phont='aqtk2-lnx-eva/phont/aq_yukkuri.phont')
f.write(wav)
In der Evaluierungsversion ist "na line, ma line" "nu", aber es scheint, dass Sie eine Lizenz benötigen, um es richtig zu lesen. Für den persönlichen Gebrauch erhalten Sie eine Entwicklungslizenz für weniger als 2000 Yen. (Stand 9. Juni 2018) Weiter unten finden Sie Details wie Verteilungsregeln. Lizenz für den persönlichen Gebrauch \ | Aquest Co., Ltd.
Recommended Posts