forked from Nkyoku/aitalk_wrapper
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaitalk_AITalk.h
127 lines (115 loc) · 3.48 KB
/
aitalk_AITalk.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#pragma once
#include <stdint.h>
enum AITalkEventReasonCode {
AITALKEVENT_TEXTBUF_FULL = 101,
AITALKEVENT_TEXTBUF_FLUSH = 102,
AITALKEVENT_TEXTBUF_CLOSE = 103,
AITALKEVENT_RAWBUF_FULL = 201,
AITALKEVENT_RAWBUF_FLUSH = 202,
AITALKEVENT_RAWBUF_CLOSE = 203,
AITALKEVENT_PH_LABEL = 301,
AITALKEVENT_BOOKMARK = 302,
AITALKEVENT_AUTOBOOKMARK = 303
};
enum AITalkResultCode {
AITALKERR_SUCCESS = 0,
AITALKERR_INTERNAL_ERROR = -1,
AITALKERR_UNSUPPORTED = -2,
AITALKERR_INVALID_ARGUMENT = -3,
AITALKERR_WAIT_TIMEOUT = -4,
AITALKERR_NOT_INITIALIZED = -10,
AITALKERR_ALREADY_INITIALIZED = 10,
AITALKERR_NOT_LOADED = -11,
AITALKERR_ALREADY_LOADED = 11,
AITALKERR_INSUFFICIENT = -20,
AITALKERR_PARTIALLY_REGISTERED = 21,
AITALKERR_LICENSE_ABSENT = -100,
AITALKERR_LICENSE_EXPIRED = -101,
AITALKERR_LICENSE_REJECTED = -102,
AITALKERR_TOO_MANY_JOBS = -201,
AITALKERR_INVALID_JOBID = -202,
AITALKERR_JOB_BUSY = -203,
AITALKERR_NOMORE_DATA = 204,
AITALKERR_OUT_OF_MEMORY = -206,
AITALKERR_FILE_NOT_FOUND = -1001,
AITALKERR_PATH_NOT_FOUND = -1002,
AITALKERR_READ_FAULT = -1003,
AITALKERR_COUNT_LIMIT = -1004,
AITALKERR_USERDIC_LOCKED = -1011,
AITALKERR_USERDIC_NOENTRY = -1012
};
enum AITalkStatusCode {
AITALKSTAT_WRONG_STATE = -1,
AITALKSTAT_INPROGRESS = 10,
AITALKSTAT_STILL_RUNNING = 11,
AITALKSTAT_DONE = 12
};
enum AITalkJobInOut {
AITALKIOMODE_PLAIN_TO_WAVE = 11,
AITALKIOMODE_AIKANA_TO_WAVE = 12,
AITALKIOMODE_JEITA_TO_WAVE = 13,
AITALKIOMODE_PLAIN_TO_AIKANA = 21,
AITALKIOMODE_AIKANA_TO_JEITA = 32
};
enum ExtendFormat {
None = 0,
JeitaRuby = 1,
AutoBookmark = 16
};
using AITalkProcTextBuf = int(__stdcall *)(AITalkEventReasonCode reasonCode, int32_t jobID, void *userData);
using AITalkProcRawBuf = int (__stdcall *)(AITalkEventReasonCode reasonCode, int32_t jobID, uint64_t tick, void *userData);
using AITalkProcEventTTS = int(__stdcall *)(AITalkEventReasonCode reasonCode, int32_t jobID, uint64_t tick, const char *name, void *userData);
#pragma pack(push, 1)
struct AITalk_TConfig {
uint32_t hzVoiceDB;
const char *dirVoiceDBS;
uint32_t msecTimeout;
const char *pathLicense;
const char *codeAuthSeed;
uint32_t __reserved__;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct AITalk_TJobParam {
AITalkJobInOut modeInOut;
void *userData;
};
#pragma pack(pop)
#pragma pack(push, 1)
struct AITalk_TTtsParam {
static const size_t MAX_VOICENAME = 80;
static const size_t MAX_JEITACONTROL = 12;
uint32_t size;
AITalkProcTextBuf procTextBuf;
AITalkProcRawBuf procRawBuf;
AITalkProcEventTTS procEventTts;
uint32_t lenTextBufBytes;
uint32_t lenRawBufBytes;
float volume;
int32_t pauseBegin;
int32_t pauseTerm;
ExtendFormat extendFormat;
char voiceName[MAX_VOICENAME];
struct TJeitaParam {
char femaleName[MAX_VOICENAME];
char maleName[MAX_VOICENAME];
int32_t pauseMiddle;
int32_t pauseLong;
int32_t pauseSentence;
char control[MAX_JEITACONTROL]; // JEITA TT-6004‚ðŽQÆ‚¹‚æ
} Jeita;
uint32_t numSpeakers;
int32_t __reserved__;
struct TSpeakerParam {
char voiceName[MAX_VOICENAME];
float volume;
float speed;
float pitch;
float range;
int pauseMiddle;
int32_t pauseLong;
int32_t pauseSentence;
char styleRate[MAX_VOICENAME];
} Speaker[1];
};
#pragma pack(pop)