From d46cb4e58fd2a7caea80ab4854fa30f5eaa0ac16 Mon Sep 17 00:00:00 2001 From: miteruzo Date: Sun, 3 Dec 2023 06:20:16 +0900 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E3=83=95=E3=82=A1?= =?UTF-8?q?=E3=82=A4=E3=83=AB=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + AqKanji2Koe.h | 78 ------------------------------------------ aques.cpp | 94 --------------------------------------------------- aques.py | 2 +- 4 files changed, 2 insertions(+), 173 deletions(-) delete mode 100644 AqKanji2Koe.h delete mode 100644 aques.cpp diff --git a/.gitignore b/.gitignore index 0094cd3..2a0b21c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /connection.py /__pycache__ +/nizika_talking.wav diff --git a/AqKanji2Koe.h b/AqKanji2Koe.h deleted file mode 100644 index 9dfadf1..0000000 --- a/AqKanji2Koe.h +++ /dev/null @@ -1,78 +0,0 @@ -////////////////////////////////////////////////////////////////////// -/*! @class AqKanji2Koe - - @brief AquesTalk用言語処理部 (Linux) - - 漢字かな混じりテキスト->かな音声記号列 - - @author N.Yamazaki (Aquest) - - @date 2022/12/07 N.Yamazaki Ver.4.1.3 -*/ -// COPYRIGHT (C) 2019 AQUEST CORP. -////////////////////////////////////////////////////////////////////// -#if !defined(_AQ_KANJI2KOE_H_) -#define _AQ_KANJI2KOE_H_ -#ifdef __cplusplus -extern "C"{ -#endif - -///////////////////////////////////////////// -//! 言語処理インスタンス生成(初期化) -//! @param pathDic[in] 辞書のディレクトリを指定(最後に/が有っても無くても良い) -//! @param pErr[out] エラー時にはエラーコードが入る 正常終了時は不定値 -//! @return インスタンスハンドル エラーの時は0が返る -void * AqKanji2Koe_Create(const char *pathDic, int *pErr); - -///////////////////////////////////////////// -//! 言語処理インスタンス生成 (初期化)その2 -//! 呼び出し側で辞書データ(バイナリ)をメモリに読み込んでから指定 -//! 初期化を高速化するためのメモリマップトファイルなどが使える -//! @param pSysDic[in] システム辞書データ先頭アドレス(必須) -//! @param pUserDic[in] ユーザ辞書データ先頭アドレス(使用しないときは0を指定) -//! @param pErr[out] エラー時にはエラーコードが入る 正常終了時は不定値 -//! @return インスタンスハンドル エラーの時は0が返る -void * AqKanji2Koe_Create_Ptr(const void *pSysDic, const void *pUserDic, int *pErr); - -///////////////////////////////////////////// -//! インスタンス解放 -//! @param hAqKanji2Koe[in] AqKanji2Koe_Create()で返されたインスタンスハンドル -void AqKanji2Koe_Release(void *hAqKanji2Koe); - -///////////////////////////////////////////// -//! 言語処理 (かな音声記号列出力) -//! @param hAqKanji2Koe[in] AqKanji2Koe_Create()で返されたインスタンスハンドル -//! @param kanji[in] 漢字かな混じり文テキスト(UTF8 BOM無) -//! @param koe[out] カナ音声記号列(UTF8 BOM無) -//! @param nBufKoe[in] koeのバッファサイズ[byte] -//! @return 0:正常終了 それ以外:エラーコード -int AqKanji2Koe_Convert(void *hAqKanji2Koe, const char *kanji, char *koe, int nBufKoe); - -///////////////////////////////////////////// -//! 言語処理 (ローマ字音声記号列出力) -//! @param hAqKanji2Koe[in] AqKanji2Koe_Create()で返されたインスタンスハンドル -//! @param kanji[in] 漢字かな混じり文テキスト(UTF8 BOM無) -//! @param koe[out] ローマ字音声記号列(UTF8 BOM無) -//! @param nBufKoe[in] koeのバッファサイズ[byte] -//! @return 0:正常終了 それ以外:エラーコード -int AqKanji2Koe_ConvRoman(void *hAqKanji2Koe, const char *kanji, char *koe, int nBufKoe); - -///////////////////////////////////////////// -//! 開発ライセンスキー設定 -//! 音声波形を生成する前に一度呼び出す。 -//! これにより評価版の制限がなくなる。 -//! @param key[in] 開発ライセンスキーを指定 -//! @return ライセンスキーが正しければ0、正しくなければ1が返る -//! *キーの解析を防ぐため不正なキーでも0を返す場合がある。このとき制限は解除されない。 -int AqKanji2Koe_SetDevKey(const char *devKey); - -#ifdef __cplusplus -} -#endif -#endif // !defined(_AQ_KANJI2KOE_H_) -// ---------------------------------------------------------------------- -// ! Copyright AQUEST Corp. 2006- . All Rights Reserved. ! -// ! An unpublished and CONFIDENTIAL work. Reproduction, adaptation, or ! -// ! translation without prior written permission is prohibited except ! -// ! as allowed under the copyright laws. ! -// ---------------------------------------------------------------------- diff --git a/aques.cpp b/aques.cpp deleted file mode 100644 index 306cba6..0000000 --- a/aques.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/*------------------------------------------------------------- - Kanji2KoeCmd - かな漢字混じりテキストを音声記号列に変換 - - $ Kanji2KoeCmd (dic_dir) < in.txt > out.koe - - ■ビルド(GCC 5.1以上の環境が必要) - $ ln -sf ../lib64/libAqKanji2Koe.so.4.0 ./libAqKanji2Koe.so.4 - $ ln -sf ../lib64/libAqKanji2Koe.so.4.0 ./libAqKanji2Koe.so - $ g++ -I./lib64 -o Kanji2KoeCmd Kanji2KoeCmd.cpp -L. -lAqKanji2Koe - - ■実行 - $ echo 音声合成テスト | LD_LIBRARY_PATH=. ./Kanji2KoeCmd ../aq_dic - - ■ライブラリの配置 - libAqKanji2Koe.so.X.Xを他のアプリからも呼び出す場合は、 - ldconfigコマンドで共有ライブラリに登録する。 - 詳しくは、本ライブラリのマニュアルの「ライブラリ配置」を参照 - - ■辞書の配置(デフォルト) - - |- Kanji2KoeCmd - |- aq_dic/ 辞書フォルダ(aq_dic)を同じディレクトリに配置 - |- aqdic.bin - |- aq_user.dic (ユーザ辞書:任意) - OE - |- CREDITS - - - 2011/01/14 N.Yamazaki Creation - 2019/03/05 N.Yamazaki Ver.4用に一部修正 - --------------------------------------------------------------*/ -#include -#include -#include -#include // setlocale() -#include "AqKanji2Koe.h" - -#define NSTR 4096 - -char * GetPathDic(const char *pathModule); - -int main(int ac, char **av) -{ - int iret; - char kanji[NSTR]; - char koe[NSTR]; - void *hAqKanji2Koe; - - // 開発ライセンスキー(ライセンス証に記載)の設定 -// iret = AqKanji2Koe_SetDevKey("XXX-XXX-XXX"); - - if(ac==1){ - char *pPathDic = GetPathDic(av[0]); - hAqKanji2Koe = AqKanji2Koe_Create(pPathDic, &iret); - free(pPathDic); - } - else { - hAqKanji2Koe = AqKanji2Koe_Create(av[1], &iret); - } - - if(hAqKanji2Koe==0){ - fprintf(stderr, "ERR: can not initialize Dictionary(%d)\n", iret); - fprintf(stderr, "USAGE: $ Kanji2KoeCmd (dic_dir) < in.txt > out.koe\n"); - return iret; - } - - int i; - for(i=0; ; i++){ - if(fgets(kanji, NSTR, stdin)==0) break; - iret = AqKanji2Koe_Convert(hAqKanji2Koe, kanji, koe, NSTR); - if(iret!=0) { - fprintf(stderr, "ERR: AqKanji2Koe_Convert()=%d\n", iret); - break; - } - fprintf(stdout, "%s\n", koe); - } - - AqKanji2Koe_Release(hAqKanji2Koe); - return 0; -} - -char * GetPathDic(const char *pathModule) -{ - char *p = strrchr((char*)pathModule, '/'); - if(p==NULL){ - return strdup("./aq_dic"); - } - char *path = (char*)malloc(strlen(pathModule)+strlen("/aq_dic")+1); - strncpy(path, pathModule, p-pathModule); - strcpy(path+(p-pathModule), "/aq_dic"); - return path; -} - diff --git a/aques.py b/aques.py index 13646da..aa17fe5 100644 --- a/aques.py +++ b/aques.py @@ -17,7 +17,7 @@ class Aques: p = subprocess.Popen ('./aques', stdin = subprocess.PIPE, stdout = subprocess.PIPE) - koe = p.communicate (text.encode ())[0].decode () + koe: str = p.communicate (text.encode ())[0].decode () aqtk = cdll.LoadLibrary ('libAquesTalk2Eva.so') aqtk.AquesTalk2_Synthe_Utf8.restype = POINTER (ARRAY (c_ubyte, 0))