JavaでCeVIOを動かす軽いラッパー
非効率な実装ですが、元々軽いのでさほど影響はないと思います
CeVIO API を使用してこのプロジェクトにある CeVIOJavaAI.dll / CeVIOJavaCreative.dll から Java Native Access を使って呼び出します
DllExport を使用して Java Native Access から実行することが可能になりますが、再頒布することは禁止なので経由しています
利点: CeVIOJava(AI/Creative).dll から実行することでCeVIO Creative Studio / CeVIO AIをインストールするだけで実行可能になります
CeVIOJava cevio = new CeVIOBuilder()
.setPlatformType(PlatformType.CEVIO_AI) //PlatformType.CEVIO_CREATIVE_STUDIO
.create();
CeVIOJava cevio = new CeVIOBuilder()
.setAutoStart(true)
.create();
List<String> availableCasts = cevio.getAvailableCastsList();
if (availableCasts.isEmpty()) {
System.err.println("Non AvailableCasts");
} else {
CastSettings settings = cevio.getCastSettings(availableCasts.get(0));
for (TalkerComponent component : settings.getComponents().getAsCollection()) {
final int random = new Random().nextInt(100);
System.out.printf("name=%s id=%s value=%s newValue=%s%n", component.getName(), component.getId(), component.getValue(), random);
component.setValue(random);
}
for (TalkerComponent component : settings.getComponents().getAsCollection()) {
System.out.printf("[Log] name=%s id=%s value=%s%n", component.getName(), component.getId(), component.getValue());
}
settings.speak("こんにちは!" + settings.getCast() + "です!", true);
}
cevio.stop();
name=普通 id=A-02 value=0 newValue=70
name=怒り id=A-03 value=0 newValue=31
name=哀しみ id=A-04 value=0 newValue=94
name=元気 id=A-01 value=100 newValue=38
[Log] name=普通 id=A-02 value=70
[Log] name=怒り id=A-03 value=31
[Log] name=哀しみ id=A-04 value=94
[Log] name=元気 id=A-01 value=38
- Talker
- TalkerComponentCollection
- TalkerComponent
- PhonemeData
- ServiceControl (HostStartResult, HostCloseMode)
- SpeakingState