|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*-------------------------------------------------------------
- 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 (ユーザ辞書:任意)
- |- CREDITS
-
-
- 2011/01/14 N.Yamazaki Creation
- 2019/03/05 N.Yamazaki Ver.4用に一部修正
-
- -------------------------------------------------------------*/
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <locale.h> // 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;
- }
-
|