A wrapper library and integration IPC server of the CeVIO API for .NET 7 / .NET Standard 2.0
This is a wrapper library and linkage server that allows the .NET external linkage interface of the speech synthesis software " CeVIO " to be used even from the latest .NET 7 etc. It will be available from .NET apps other than .NET Framework 4.8. It also supports modern writing methods such as async / await , ValueTask , and nullable .
A wrapper library and integration IPC server for the .NET external integration interface of the speech synthesis software " CeVIO ", which can be used from the latest .NET 7 and other .NET Framework 4.8 environments. It also supports modern C# writing style such as async / await , ValueTask , nullable , and so on.
async / awaitnullableValueTask<T>.unitypackage is available.nupkg.unitypackage dotnet add package FluentCeVIOWrapper.Common //ファクトリメソッドで非同期生成
//IDisposableを継承しているためusingが使えます
using var fcw = await FluentCeVIO . FactoryAsync ( ) ;
//非同期でCeVIO外部連携インターフェイス起動
await fcw . StartAsync ( ) ;
//利用可能なキャスト(ボイス)を非同期で取得
var casts = await fcw . GetAvailableCastsAsync ( ) ;
//感情一覧を非同期で取得
var emotes = await fcw . GetComponentsAsync ( ) ;
var newEmo = emotes
. Select ( v => {
v . Value = ( v . Name == "哀しみ" ) ?
( uint ) 100 :
( uint ) 0 ;
return v ;
} )
. ToList ( ) ;
//メソッドチェーンでまとめてパラメータ指定
await fcw . CreateParam ( )
. Cast ( casts [ 0 ] )
. Alpha ( 30 )
. Speed ( 50 )
. ToneScale ( 75 )
. Components ( newEmo )
. SendAsync ( ) ;
//非同期で音声合成
await fcw . SpeakAsync ( "こんにちは。" ) ;
//感情設定は Emotions() で簡単にできる
await fcw . CreateParam ( )
//キャスト名の直接指定でも実はOK
. Cast ( "さとうささら" )
//感情一覧を取得しなくても使える便利関数
//感情名が一致すれば設定します。存在しない場合は無視
. Emotions ( new ( )
{
[ "元気" ] = 0 ,
[ "哀しみ" ] = 0 ,
[ "怒り" ] = 75 ,
[ "普通" ] = 50
} )
. SendAsync ( ) ;
await fcw . SpeakAsync ( "こんにちは!!" ) ;| CeVIO class | CeVIO name | FCW class | FCW name |
|---|---|---|---|
| - | - | FluentCeVIOUtil | GetCastIdAsync() |
| Talker/Talker2 | Alpha | FluentCeVIO | GetAlphaAsync() / SetAlphaAsync() |
| Talker/Talker2 | Alpha | FluentCeVIOParam | Alpha() |
| Talker/Talker2 | AvailableCasts | FluentCeVIO | GetAvailableCastsAsync() |
| Talker/Talker2 | Cast | FluentCeVIO | GetCastAsync() / SetCastAsync() |
| Talker/Talker2 | Cast | FluentCeVIOParam | Cast() |
| ServiceControl /ServiceControl2 | CloseHost() | FluentCeVIO | CloseAsync() |
| Talker/Talker2 | Components | FluentCeVIO | GetComponentsAsync() / SetComponentsAsync() |
| Talker/Talker2 | Components | FluentCeVIOParam | Components() |
| Talker/Talker2 | Components | FluentCeVIOParam | Emotions() |
| Talker/Talker2 | GetPhonemes() | FluentCeVIO | GetPhonemesAsync() |
| Talker/Talker2 | GetTextDuration() | FluentCeVIO | GetTextDurationAsync() |
| ServiceControl /ServiceControl2 | HostVersion | FluentCeVIO | GetHostVersionAsync() |
| ServiceControl /ServiceControl2 | IsHostStarted | FluentCeVIO | GetIsHostStartedAsync() |
| Talker/Talker2 | OutputWaveToFile() | FluentCeVIO | OutputWaveToFileAsync() |
| Talker/Talker2 | Speak() | FluentCeVIO | SpeakAsync() |
| Talker/Talker2 | Speak() | FluentCeVIOParam | SendAndSpeakAsync() |
| Talker/Talker2 | Speed | FluentCeVIO | GetSpeedAsync() / SetSpeedAsync() |
| Talker/Talker2 | Speed | FluentCeVIOParam | Speed() |
| ServiceControl /ServiceControl2 | StartHost() | FluentCeVIO | StartAsync() |
| Talker/Talker2 | Stop() | FluentCeVIO | StopAsync() |
| Talker/Talker2 | Tone | FluentCeVIO | GetToneAsync() / SetToneAsync() |
| Talker/Talker2 | Tone | FluentCeVIOParam | Tone() |
| Talker/Talker2 | ToneScale | FluentCeVIO | GetToneScaleAsync() / SetToneScaleAsync() |
| Talker/Talker2 | ToneScale | FluentCeVIOParam | ToneScale() |
| Talker/Talker2 | Volume | FluentCeVIO | GetVolumeAsync() / SetVolumeAsync() |
| Talker/Talker2 | Volume | FluentCeVIOParam | Volume() |
Process.Start() etc.FluentCeVIOWrapper.Common.FluentCeVIO class.-help : Show help-cevio : CeVIO_AI or CeVIO_CS-pipeName : Named pipe name used in IPC. Set when starting multiple times.-dllPath : Specify the CeVIO installation folder pathIf you want to communicate with CeVIO AI and CeVIO Creative Studio at the same time, start up two servers.
Simply download unitypackage from Releases and import it.
see README
Assets/Init.cs is the actual calling script.
さとうささら) to the voice library name you already own.MIT License
Copyright (c) 2022 - 2023 Inu
See details LICENSE