[C] [Python] Lesen mit AquesTalk unter Linux

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.

Dinge die zu tun sind

Verwenden Sie die AquesTalk2-Bibliothek aus c- und Python-Code, um die Stimme zu synthetisieren.

Ausführungsumgebung

Installieren Sie AquesTalk

herunterladen

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".

Installation

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 

Führen Sie das AquesTalk-Beispiel aus

Kompilieren Sie aqtk2-lnx-eva / samples / SampleTalk.c und führen Sie es aus. Sie können dem beigefügten Handbuch folgen.

Ändern Sie das Beispiel entsprechend der Codierung

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

Kompilieren Sie mit der angegebenen Bibliothek und dem angegebenen Headerpfad.

$ g++ -o SampleTalk samples/SampleTalk.c -lAquesTalk2Eva -Ilib64

Lauf

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

Laufen Sie von Python

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)

** Nu **

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

[C] [Python] Lesen mit AquesTalk unter Linux
X86 Assembler unter Linux (Verknüpfung mit C)
Lesen Sie CSV mit Python-Pandas
Yum-Befehl zum Zugriff auf MySQL mit Python 3 unter Linux
Machen Sie mit Python einen Haltepunkt auf der c-Ebene
Lesen Sie die Kernspannung unter Linux
Lesen von JSON-Daten mit Python
Testen Sie Python mit Miniconda unter OS X und Linux mit travis-ci
Installieren Sie Python Pillow unter Amazon Linux
Löse ABC163 A ~ C mit Python
Rufen Sie C von Python mit DragonFFI auf
Erstellen Sie Awaitable mit der Python / C-API
Löse ABC168 A ~ C mit Python
AtCoder ABC 114 C-755 mit Python3 gelöst
Löse ABC162 A ~ C mit Python
Lesen Sie Dateien parallel zu Python
Hinweise zur Verwendung von rstrip mit Python.
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Erste Schritte mit Python 3.8 unter Windows
Führen Sie die Python 3.5.2-Umgebung unter Amazon Linux ein
Laden Sie fbx aus Python mitinema4d
python> os.path.join ('data', 'checkpoint')> 'data / checkpoint' unter Linux
Rufen Sie C / C ++ von Python auf dem Mac auf
[Memo] Tweet auf Twitter mit Python
Japanische Dateiaufzählung mit Python2-System unter Windows (Gegenmaßnahme gegen 5C-Probleme)
Führen Sie das Servo mit Python unter ESP32 (Windows) aus.
Führen Sie Python-Code unter C ++ aus (mit Boost.Python).
Wie man pydoc auf Python Interpreter liest
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Suchen Sie nach Dateien wie Linux Find in Python
Ein Memo mit Python2.7 und Python3 in CentOS
Kartenmietinformationen auf einer Karte mit Python
Verfolgen Sie aktive Anwendungen auf einem Mac mit Python
Hinweise zur japanischen OCR mit Python
Lesen wir die RINEX-Datei mit Python ①
Laden Sie mit Python Dateien im Web herunter
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
[Python] Bilder mit OpenCV lesen (für Anfänger)
[Automatisierung] Lesen Sie Word-Dokumente mit Python
Verwenden von C ++ - Funktionen aus Python mit pybind11
PIL mit Python 3.x unter macOS installieren
Installieren Sie Python 3.8, Pip 3.8 auf EC2 (Amazon Linux 2)
Führen Sie Python in C ++ unter Visual Studio 2017 aus
Lesen von Zeichen in Bildern mit Python OCR
RaspberryPi L Chika mit Python und C #
[C, C ++, Python, JavaScript] L Chika mit Edison
[Automatisierung] Lesen Sie E-Mails (Nachrichtendatei) mit Python
Führen Sie Linux mit ARM-Architektur mit QEMU aus
Kommunizieren Sie mit I2C-Geräten unter Linux C.
Arbeiten mit GPS in Python für Raspberry Pi 3
Setzen Sie die MeCab-Bindung für Python unter Windows, Mac und Linux mit pip ein
Führen Sie einen Stapel Python 2.7 mit nohup unter Amazon Linux AMI unter EC2 aus
Lesen Sie die Datei mit Python und löschen Sie die Zeilenumbrüche [Hinweise zum Lesen der Datei]