「【トーク】外部APIの利用方法」の編集履歴(バックアップ)一覧はこちら
「【トーク】外部APIの利用方法」(2025/03/29 (土) 18:32:05) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
#right(){タグ:&tags()}
----
#contents
----
*概要
-スクリプトや自作ツールなどからCeVIOトークを外部利用できる
-主にスクリプトやプログラムが組める人向け
-公開されているツールについては
--→[[【トーク】便利なツール]]
--→[[CeVIO AI・CeVIO Proの情報まとめ/TIPS・バグ/外部ソフトと連携するには>>CeVIO AI・CeVIO Proの情報まとめ/TIPS・バグ#id_38301ed1]]
*公式ドキュメント
-&font(b,#FFF,#60EE3C){ ()CeVIO AI ()} [[CeVIO AI ユーザーズガイド ┃ 外部連携インターフェイス>>https://cevio.jp/guide/cevio_ai/interface/]]
-&font(b,#FFF,#D08CBB){ ()CeVIO CS ()} [[外部連携インターフェイス - CeVIO Creative Studio ユーザーズガイド>>http://guide2.project-cevio.com/interface]]
*できること
#areaedit()
** &link_wikipedia(Speech_Application_Programming_Interface){SAPI5}
-Microsoftが策定した読み上げ用APIにCeVIOは対応しています
-Windows10の「ナレーター」機能のように何もしなくても対応しているものがあります
-汎用のAPIのため、CeVIOの細かな調声パラメータには対応していません
-制限
--Win10の特定Ver.より制限が増え、CeVIOと連携できないツールが増えました(Word/Excel/Acrobat Reader/Chromeなど)
--CS6以前は32bitアプリから、CS7/AI以降は64bitアプリからでないと連携できません
&twitter_widget3(){<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">必要とする人が居るのか不明な CeVIO tips:<br>64bit環境だとそもそもSAPI.SpVoice.GetVoicesの中に存在してない。VBSから鳴らす場合SysWOW64\cscript からなら使える。system32\cscript からではだめ。 <a href="https://t.co/qtis98VBVF">https://t.co/qtis98VBVF</a></p>— naqtn(なくとん) (@naqtn) <a href="https://twitter.com/naqtn/status/1046212753550180359?ref_src=twsrc%5Etfw">September 30, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>}
** COMコンポーネント
-いろいろな言語から呼び出すことができます
--.NET以外で細かいことをやりたい場合はコレ一択です
--.NETからも呼ぶことはできます
-利用可能な言語
--C++, python, C#
** .NET
-.NETアプリケーションから利用できます
--※ちなみにCeVIO CS/AIのエディタも.NETアプリケーションです
-利用可能な言語
--C#, F#, VB.NET, PowerShell Script
#areaedit(end)
*CeVIO連携ツールの作り方
#areaedit()
**はじめに考えること
-他のトークソフトも対象のツールを作りたい場合
--[[まとめて制御できるコマンドラインツールやライブラリがある>>【トーク】便利なツール#id_67a3bbb4]]のでそれの利用を検討しましょう
--UIだけ自作し、上記ツールと内部的な通信等で連携する形が早いです
-UIはいる?いらない?
--CUIツールはサクッと作れますが、普通のCeVIOユーザーには使ってもらいにくいです
--UIを作るとなると色々環境の選定など大変です
-ツールの実行に必要な環境はある?
--スクリプトの場合、作るのは簡単ですがユーザーの手元に実行環境が無いと動きません
**制限・仕様
-合成の文字数制限
--エディタ上と同じく、同時に合成できる文字数には制限があります
---&color(#FFF,#60EE3C){ ()&bold(){CeVIO AI} ()} (ver. 8.1.8.0以降) [[日本語ボイスは200文字、英語ボイスは500文字まで>>https://cevio.jp/guide/cevio_ai/#:~:text=%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%9C%E3%82%A4%E3%82%B9%E3%81%AF200%E6%96%87%E5%AD%97%E3%80%81%E8%8B%B1%E8%AA%9E%E3%83%9C%E3%82%A4%E3%82%B9%E3%81%AF500%E6%96%87%E5%AD%97%E3%81%BE%E3%81%A7]]
---&color(#FFF,#60EE3C){ ()&bold(){CeVIO AI} ()} (ver. 8.1.8.0より以前) 100文字まで
---SAPI経由の場合は制限なし?
--小説の読み上げ、などの長文読み上げを行う場合は適宜分割処理と逐次合成処理が必要になります
-同時利用アプリ数の制限
--外部インターフェイスを利用できるのは同時に1アプリまでです
---読み上げさせながら同時に動画編集、はできないことになります
--CSとAIは別アプリのため、外部APIも同時利用可能です
-辞書登録された単語の読み・アクセントは反映されます
--プリセットは取得するAPIがありません(デフォルトのプリセットとして反映させることはできます)
-API利用次、企業等による商用利用は商用ライセンスが必要です
--商用利用に当たる場合でも同人や動画収益化程度のものはOKです
--https://cevio.jp/commercial/
#areaedit(end)
----
**各言語からの利用
#areaedit()
***C#
-最も情報が多く作りやすいでしょう
-.NETアセンブリとしてVSやVSCodeでインテリセンスを効かせながら組むことができます
-注意点:.NET Framework 4.8である必要があります
--.NET Coreや.NET 5以降では動作しません
--※内部的な通信にDeprecatedなAPI(.NET Remoting)を利用しているため
--公式ドキュメントではdll参照にGACが指定されていますが、.NET Core系ではこれも廃止されているため将来的な問題の可能性があります
--なお、dotnet cliを利用したりC#8.0以降を使いながらFramework向けにビルドすることは可能です
---[[C# 8/9の言語機能を.NET Frameworkで使う - Qiita>>https://qiita.com/kenichiuda/items/fada6068ea265fd6a389]]
****CeVIO CSとAIを透過的に扱いたい
-dllが異なりますが、最終的なメソッド名やプロパティ名はほぼ同じため、ラッピングできます
-System.Reflection.Assembly と Activator.CreateInstance() でdynamic型で呼び出す方法が使えます
-インテリセンスは効かなくなりますが、APIの数は多くないのでそれほど問題になりません
#highlight(csharp){{
var assembly = Assembly.LoadFrom("path/to/cevio/dll");
var service = assembly.GetType("CeVIO.Talk.RemoteService2.ServiceControl2"); //CSは "CeVIO.Talk.RemoteService.ServiceControl"
MethodInfo startHost = service.GetMethod("StartHost");
var result = startHost.Invoke(null, new object[] { false });
var talker = Activator.CreateInstance(
assembly.GetType("CeVIO.Talk.RemoteService2.Talker2"), //CSは "CeVIO.Talk.RemoteService.Talker"
new object[] { "さとうささら" }
);
talker.Volume = 100;
talker.Components.ByName("元気").Value = 100;
var result = talker.Speak("こんにちは、さとうささらです。");
result.Wait();
}}
****最新の.NET 5以降で動かしたい
-制限がありますが、COM経由で呼び出す方法があります
--.NET 6 RC版では、一部のAPI呼び出しがエラーになります(キャストの感情パラメータマップ関連API)
-.NETアセンブリと微妙にAPIが異なる(主に型)ため注意が必要です(LINQなどが使えない場合あり)
-インテリセンスは効かなくなります
#highlight(csharp){{
var service = Activator.CreateInstance(Type.GetTypeFromProgID("CeVIO.Talk.RemoteService2.ServiceControl2"));
service.StartHost(false);
var talker = Activator.CreateInstance(Type.GetTypeFromProgID("CeVIO.Talk.RemoteService2.Talker2"));
talker.Cast = "さとうささら";
var result = talker.Speak("こんにちは、さとうささらです。");
result.Wait();
//...
//開放忘れるとメモリリーク
System.Runtime.InteropServices.Marshal.ReleaseComObject(talker);
System.Runtime.InteropServices.Marshal.ReleaseComObject(service);
}}
****SAPI5でCeVIOが呼び出せない
***** .NET Core/.NET 5以降
WinRTの Windows.Media.SpeechSynthesis 経由だと選択肢から取得できません。
System.Speech.Synthesis 経由でリストアップできます(.NET Core系はnugetから取得)。
(※SAPI対応アプリでもCeVIOをリストアップできないアプリ(Chrome等)はこれが原因かもしれません)。
※.NET6 SDK / Win10.19043.1415 で確認。
#highlight(csharp){{
//取得可能
var synth = new System.Speech.Synthesis.SpeechSynthesizer();
foreach (var voice in synth.GetInstalledVoices())
{
var vi = voice.VoiceInfo;
Console.WriteLine($"{vi.Culture}: {vi.Description}");
}
//取得不可
var synth2 = Windows.Media.SpeechSynthesis.SpeechSynthesizer.AllVoices;
foreach (var voice in synth2)
{
Console.WriteLine($"{voice.Language}: {voice.Description}");
}
}}
#areaedit(end)
----
***Go
-有志のラッパーライブラリがあります
-cevigo
--https://github.com/gotti/cevigo
----
#areaedit()
***python
-※TODO*
-基本的にはpywin32を使ってCOMインターフェイスを叩く形になります
--[[CeVIO AIをpythonから呼ぶ時のメモ>>https://zenn.dev/decl/articles/4efdf0b7fef861]] (解説記事)
-ライブラリ
--[[CeVIOPy>>https://github.com/rabairen/CeVIOPy]]
--[[sasawrapper>>https://github.com/takana-v/sasawrapper]]
---[[PythonからCeVIO AIの外部連携インターフェイスを叩く>>https://qiita.com/taka7n/items/2dbfb0e6f8d4d9374c46]] (解説記事)
#areaedit(end)
----
#areaedit()
*** PowerShell
-.NET APIとCOMコンポーネントインターフェイスの両方が使用できます
--※TODO*
-制限
--COM経由でエディタのポーズが反映されない
--&twitter_widget3(){<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">CeVIO AIをPowerShellからCOMコンポーネントとして動かすときに、CeVIO AI側で設定した句読点のポーズ時間設定が効かへんのね…<br>かといってPowerShellから制御できるわけでもなさそう…?</p>— puuuii@そえゆか (@puuuii_yukari) <a href="https://twitter.com/puuuii_yukari/status/1471366116383821825?ref_src=twsrc%5Etfw">December 16, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>}
#areaedit(end)
----
#areaedit()
*** JavaScript
**** Node.js
-[[Edge-js>>https://github.com/agracio/edge-js]]という.NET APIをブリッジするライブラリがありますが、dll参照が上手く行きません
--メンテされていないオリジナル版のedgeではなく、メンテされているedge-jsを利用して下さい(サンプルソースは古いままなので注意)
--dynamic型を用いた動的読み込みなら出来る可能性があります(未確認)
-[[say.js>>https://github.com/Marak/say.js/pull/124]]というnpmライブラリで利用できるようにしたpatchがあります
-[[しらたき>>https://github.com/t1nyb0x/shirataki]]というwinaxを使ってCOMコンポーネントを叩くライブラリがあります
※TODO*
**** WSH
-公式のVBScriptサンプルと同様に、Windows Script HostでJavaScript(JScript)が利用できます。
-WSH自体がレガシーでモダンな文法が使えないのがネックです。
-shift-jisにしないと日本語部分でエラーになります。
#highlight(javascript){{
var service = WSH.CreateObject("CeVIO.Talk.RemoteService.ServiceControl");
var hostState = service.StartHost(false);
var talker = WSH.CreateObject("CeVIO.Talk.RemoteService.Talker");
var talker40 = WSH.CreateObject("CeVIO.Talk.RemoteService.TalkerV40");
talker.Cast = "さとうささら";
var state = talker.Speak("さとうささらです");
state.Wait;
}}
#areaedit(end)
----
#areaedit()
**APIの解説
-※TODO*
#areaedit(end)
----
#areaedit()
*** キャスト・パラメータ一覧
-APIから呼び出せるキャスト名や感情パラメータ名(日本語環境)
--CeVIO AIの「OИE」はキャスト名3パターンあり
---ver.8.1.16以前:「ONE」
---ver.8.1.21:「OИE」
---ver.8.1.24以降はどちらもOK
--CeVIO AI ver.8.1.8以降、キャスト名は日英どちらもOK
---「弦巻マキ (英)」と「Tsurumaki Maki (EN)」
--CeVIO AI ver.8.1.8より前はキャスト名はOS言語依存
****CeVIO CS
&font(b,#FFF,#D08CBB){ ()CeVIO CS ()}
#table_style(head=#AAFFFF){製品=#D08CBB:#FFF}
|製品|キャスト名|>|>|>|>|感情パラメータ名|備考|h
|CeVIO CS|[[さとうささら]]|元気|普通|怒り|哀しみ|||
|~ |[[すずきつづみ]]|クール|照れ|||||
|~ |[[タカハシ]]|元気|普通|へこみ||||
|~ |IA|High|Mid|MidLow|Low|||
|~ |[[ONE]]|High|Mid|MidLow|Low|||
-&font(b,#FFF,#D08CBB){ ()CeVIO CS ()} [[外部連携インターフェイス - CeVIO Creative Studio ユーザーズガイド>>http://guide2.project-cevio.com/interface]]
****CeVIO AI
&font(b,#FFF,#60EE3C){ ()CeVIO AI ()}
#table_style(head=#AAFFFF){製品=#60EE3C:#FFF}
|製品|キャスト名|>|>|>|>|感情パラメータ名|備考|h
|CeVIO AI|[[さとうささら]]|元気|普通|怒り|哀しみ|||
|~ |[[小春六花]]|嬉しい|普通|怒り|哀しみ|落ち着き||
|~ |IA|Bright|Normal|Strong|Dark|||
|~ |[[OИE]]|Bright|Normal|Strong|Dark||※表記はver.8.1.16以前は「[[ONE]]」、ver.8.1.24以降はどちらもOK|
|~ |[[弦巻マキ]] (日)|元気|怒り|落ち着き|哀しみ|穏やか|※スペース、カッコは半角|
|~ |[[弦巻マキ]] (英)|元気|怒り|落ち着き|哀しみ|穏やか|※日本語環境|
|~ |[[フィーちゃん]]|嬉しい|普通|怒り|哀しみ|落ち着き||
|~ |ロサ ([[ROSA]])|嬉しい|普通|怒り|哀しみ||※スペース、カッコは半角|
//|~ ||||||||
//|~ ||||||||
-&font(b,#FFF,#60EE3C){ ()CeVIO AI ()} [[CeVIO AI ユーザーズガイド ┃ 外部連携インターフェイス>>https://cevio.jp/guide/cevio_ai/interface/]]
#areaedit(end)
----
#areaedit()
*参考
-[[C#)DeepL API で翻訳した結果をボイスロイドにしゃべってもらいたい!(2)>>https://qiita.com/fuji_t/items/2ff27f9d73a9893c0b86]]
-[[PowerPointをメディア講義に対応させるメモ(PPT+CeVIO)>>https://qiita.com/uedacci/items/415886d63244e27d329a]]
-[[CeVIO AI さとうささらにテキストファイルを読んでもらうだけのPowerShellスクリプト作ったからよろしければどうぞ!>>https://twitter.com/puuuii_yukari/status/1431226830921428995]](puuuii@そえゆかさん)
-[[PythonからCeVIO AIの外部連携インターフェイスを叩く>>https://qiita.com/taka7n/items/2dbfb0e6f8d4d9374c46]] (sasawrapper)
-[[CeVIO AIをpythonから呼ぶ時のメモ>>https://zenn.dev/decl/articles/4efdf0b7fef861]]
-[[CeVIO AIにPythonを使ってその日の情報を喋らせる。① - Qiita>>https://qiita.com/NOkamo/items/7f8697f58f55ee183e19]]
#areaedit(end)
#right(){タグ:&tags()}
----
#contents
----
*概要
-スクリプトや自作ツールなどからCeVIOトークを外部利用できる
-主にスクリプトやプログラムが組める人向け
-公開されているツールについては
--→[[【トーク】便利なツール]]
--→[[CeVIO AI・CeVIO Proの情報まとめ/TIPS・バグ/外部ソフトと連携するには>>CeVIO AI・CeVIO Proの情報まとめ/TIPS・バグ#id_38301ed1]]
*公式ドキュメント
-&font(b,#FFF,#60EE3C){ ()CeVIO AI ()} [[CeVIO AI ユーザーズガイド ┃ 外部連携インターフェイス>>https://cevio.jp/guide/cevio_ai/interface/]]
-&font(b,#FFF,#D08CBB){ ()CeVIO CS ()} [[外部連携インターフェイス - CeVIO Creative Studio ユーザーズガイド>>http://guide2.project-cevio.com/interface]]
*できること
#areaedit()
** &link_wikipedia(Speech_Application_Programming_Interface){SAPI5}
-Microsoftが策定した読み上げ用APIにCeVIOは対応しています
-Windows10の「ナレーター」機能のように何もしなくても対応しているものがあります
-汎用のAPIのため、CeVIOの細かな調声パラメータには対応していません
-制限
--Win10の特定Ver.より制限が増え、CeVIOと連携できないツールが増えました(Word/Excel/Acrobat Reader/Chromeなど)
--CS6以前は32bitアプリから、CS7/AI以降は64bitアプリからでないと連携できません
&twitter_widget3(){<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">必要とする人が居るのか不明な CeVIO tips:<br>64bit環境だとそもそもSAPI.SpVoice.GetVoicesの中に存在してない。VBSから鳴らす場合SysWOW64\cscript からなら使える。system32\cscript からではだめ。 <a href="https://t.co/qtis98VBVF">https://t.co/qtis98VBVF</a></p>— naqtn(なくとん) (@naqtn) <a href="https://twitter.com/naqtn/status/1046212753550180359?ref_src=twsrc%5Etfw">September 30, 2018</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>}
** COMコンポーネント
-いろいろな言語から呼び出すことができます
--.NET以外で細かいことをやりたい場合はコレ一択です
--.NETからも呼ぶことはできます
-利用可能な言語
--C++, python, C#
** .NET
-.NETアプリケーションから利用できます
--※ちなみにCeVIO CS/AIのエディタも.NETアプリケーションです
-利用可能な言語
--C#, F#, VB.NET, PowerShell Script
#areaedit(end)
*CeVIO連携ツールの作り方
#areaedit()
**はじめに考えること
-他のトークソフトも対象のツールを作りたい場合
--[[まとめて制御できるコマンドラインツールやライブラリがある>>【トーク】便利なツール#id_67a3bbb4]]のでそれの利用を検討しましょう
--UIだけ自作し、上記ツールと内部的な通信等で連携する形が早いです
-UIはいる?いらない?
--CUIツールはサクッと作れますが、普通のCeVIOユーザーには使ってもらいにくいです
--UIを作るとなると色々環境の選定など大変です
-ツールの実行に必要な環境はある?
--スクリプトの場合、作るのは簡単ですがユーザーの手元に実行環境が無いと動きません
**制限・仕様
-合成の文字数制限
--エディタ上と同じく、同時に合成できる文字数には制限があります
---&color(#FFF,#60EE3C){ ()&bold(){CeVIO AI} ()} (ver. 8.1.8.0以降) [[日本語ボイスは200文字、英語ボイスは500文字まで>>https://cevio.jp/guide/cevio_ai/#:~:text=%E6%97%A5%E6%9C%AC%E8%AA%9E%E3%83%9C%E3%82%A4%E3%82%B9%E3%81%AF200%E6%96%87%E5%AD%97%E3%80%81%E8%8B%B1%E8%AA%9E%E3%83%9C%E3%82%A4%E3%82%B9%E3%81%AF500%E6%96%87%E5%AD%97%E3%81%BE%E3%81%A7]]
---&color(#FFF,#60EE3C){ ()&bold(){CeVIO AI} ()} (ver. 8.1.8.0より以前) 100文字まで
---SAPI経由の場合は制限なし?
--小説の読み上げ、などの長文読み上げを行う場合は適宜分割処理と逐次合成処理が必要になります
-同時利用アプリ数の制限
--外部インターフェイスを利用できるのは同時に1アプリまでです
---読み上げさせながら同時に動画編集、はできないことになります
--CSとAIは別アプリのため、外部APIも同時利用可能です
-辞書登録された単語の読み・アクセントは反映されます
--プリセットは取得するAPIがありません(デフォルトのプリセットとして反映させることはできます)
-API利用次、企業等による商用利用は商用ライセンスが必要です
--商用利用に当たる場合でも同人や動画収益化程度のものはOKです
--https://cevio.jp/commercial/
#areaedit(end)
----
**各言語からの利用
#areaedit()
***C#
-最も情報が多く作りやすいでしょう
-.NETアセンブリとしてVSやVSCodeでインテリセンスを効かせながら組むことができます
-注意点:.NET Framework 4.8である必要があります
--.NET Coreや.NET 5以降では動作しません
--※内部的な通信にDeprecatedなAPI(.NET Remoting)を利用しているため
--公式ドキュメントではdll参照にGACが指定されていますが、.NET Core系ではこれも廃止されているため将来的な問題の可能性があります
--なお、dotnet cliを利用したりC#8.0以降を使いながらFramework向けにビルドすることは可能です
---[[C# 8/9の言語機能を.NET Frameworkで使う - Qiita>>https://qiita.com/kenichiuda/items/fada6068ea265fd6a389]]
****CeVIO CSとAIを透過的に扱いたい
-dllが異なりますが、最終的なメソッド名やプロパティ名はほぼ同じため、ラッピングできます
-System.Reflection.Assembly と Activator.CreateInstance() でdynamic型で呼び出す方法が使えます
-インテリセンスは効かなくなりますが、APIの数は多くないのでそれほど問題になりません
#highlight(csharp){{
var assembly = Assembly.LoadFrom("path/to/cevio/dll");
var service = assembly.GetType("CeVIO.Talk.RemoteService2.ServiceControl2"); //CSは "CeVIO.Talk.RemoteService.ServiceControl"
MethodInfo startHost = service.GetMethod("StartHost");
var result = startHost.Invoke(null, new object[] { false });
var talker = Activator.CreateInstance(
assembly.GetType("CeVIO.Talk.RemoteService2.Talker2"), //CSは "CeVIO.Talk.RemoteService.Talker"
new object[] { "さとうささら" }
);
talker.Volume = 100;
talker.Components.ByName("元気").Value = 100;
var result = talker.Speak("こんにちは、さとうささらです。");
result.Wait();
}}
****最新の.NET 5以降で動かしたい
-制限がありますが、COM経由で呼び出す方法があります
--.NET 6 RC版では、一部のAPI呼び出しがエラーになります(キャストの感情パラメータマップ関連API)
-.NETアセンブリと微妙にAPIが異なる(主に型)ため注意が必要です(LINQなどが使えない場合あり)
-インテリセンスは効かなくなります
#highlight(csharp){{
var service = Activator.CreateInstance(Type.GetTypeFromProgID("CeVIO.Talk.RemoteService2.ServiceControl2"));
service.StartHost(false);
var talker = Activator.CreateInstance(Type.GetTypeFromProgID("CeVIO.Talk.RemoteService2.Talker2"));
talker.Cast = "さとうささら";
var result = talker.Speak("こんにちは、さとうささらです。");
result.Wait();
//...
//開放忘れるとメモリリーク
System.Runtime.InteropServices.Marshal.ReleaseComObject(talker);
System.Runtime.InteropServices.Marshal.ReleaseComObject(service);
}}
****SAPI5でCeVIOが呼び出せない
***** .NET Core/.NET 5以降
WinRTの Windows.Media.SpeechSynthesis 経由だと選択肢から取得できません。
System.Speech.Synthesis 経由でリストアップできます(.NET Core系はnugetから取得)。
(※SAPI対応アプリでもCeVIOをリストアップできないアプリ(Chrome等)はこれが原因かもしれません)。
※.NET6 SDK / Win10.19043.1415 で確認。
#highlight(csharp){{
//取得可能
var synth = new System.Speech.Synthesis.SpeechSynthesizer();
foreach (var voice in synth.GetInstalledVoices())
{
var vi = voice.VoiceInfo;
Console.WriteLine($"{vi.Culture}: {vi.Description}");
}
//取得不可
var synth2 = Windows.Media.SpeechSynthesis.SpeechSynthesizer.AllVoices;
foreach (var voice in synth2)
{
Console.WriteLine($"{voice.Language}: {voice.Description}");
}
}}
#areaedit(end)
----
***Go
-有志のラッパーライブラリがあります
-cevigo
--https://github.com/gotti/cevigo
----
#areaedit()
***python
-※TODO*
-基本的にはpywin32を使ってCOMインターフェイスを叩く形になります
--[[CeVIO AIをpythonから呼ぶ時のメモ>>https://zenn.dev/decl/articles/4efdf0b7fef861]] (解説記事)
-ライブラリ
--[[CeVIOPy>>https://github.com/rabairen/CeVIOPy]]
--[[sasawrapper>>https://github.com/takana-v/sasawrapper]]
---[[PythonからCeVIO AIの外部連携インターフェイスを叩く>>https://qiita.com/taka7n/items/2dbfb0e6f8d4d9374c46]] (解説記事)
#areaedit(end)
----
*** PowerShell
-.NET APIとCOMコンポーネントインターフェイスの両方が使用できます
--※TODO*
-制限
--COM経由でエディタのポーズが反映されない
--&twitter_widget3(){<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">CeVIO AIをPowerShellからCOMコンポーネントとして動かすときに、CeVIO AI側で設定した句読点のポーズ時間設定が効かへんのね…<br>かといってPowerShellから制御できるわけでもなさそう…?</p>— puuuii@そえゆか (@puuuii_yukari) <a href="https://twitter.com/puuuii_yukari/status/1471366116383821825?ref_src=twsrc%5Etfw">December 16, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>}
----
*** Rust
- [[cevio-rs>>https://github.com/JichouP/cevio-rs]]というライブラリがあります
https://docs.rs/cevio/latest/cevio/index.html
----
*** JavaScript
**** Node.js
-[[Edge-js>>https://github.com/agracio/edge-js]]という.NET APIをブリッジするライブラリがありますが、dll参照が上手く行きません
--メンテされていないオリジナル版のedgeではなく、メンテされているedge-jsを利用して下さい(サンプルソースは古いままなので注意)
--dynamic型を用いた動的読み込みなら出来る可能性があります(未確認)
-[[say.js>>https://github.com/Marak/say.js/pull/124]]というnpmライブラリで利用できるようにしたpatchがあります
-[[しらたき>>https://github.com/t1nyb0x/shirataki]]というwinaxを使ってCOMコンポーネントを叩くライブラリがあります
※TODO*
**** WSH
-公式のVBScriptサンプルと同様に、Windows Script HostでJavaScript(JScript)が利用できます。
-WSH自体がレガシーでモダンな文法が使えないのがネックです。
-shift-jisにしないと日本語部分でエラーになります。
#highlight(javascript){{
var service = WSH.CreateObject("CeVIO.Talk.RemoteService.ServiceControl");
var hostState = service.StartHost(false);
var talker = WSH.CreateObject("CeVIO.Talk.RemoteService.Talker");
var talker40 = WSH.CreateObject("CeVIO.Talk.RemoteService.TalkerV40");
talker.Cast = "さとうささら";
var state = talker.Speak("さとうささらです");
state.Wait;
}}
#areaedit(end)
----
#areaedit()
**APIの解説
-※TODO*
#areaedit(end)
----
#areaedit()
*** キャスト・パラメータ一覧
-APIから呼び出せるキャスト名や感情パラメータ名(日本語環境)
--CeVIO AIの「OИE」はキャスト名3パターンあり
---ver.8.1.16以前:「ONE」
---ver.8.1.21:「OИE」
---ver.8.1.24以降はどちらもOK
--CeVIO AI ver.8.1.8以降、キャスト名は日英どちらもOK
---「弦巻マキ (英)」と「Tsurumaki Maki (EN)」
--CeVIO AI ver.8.1.8より前はキャスト名はOS言語依存
****CeVIO CS
&font(b,#FFF,#D08CBB){ ()CeVIO CS ()}
#table_style(head=#AAFFFF){製品=#D08CBB:#FFF}
|製品|キャスト名|>|>|>|>|感情パラメータ名|備考|h
|CeVIO CS|[[さとうささら]]|元気|普通|怒り|哀しみ|||
|~ |[[すずきつづみ]]|クール|照れ|||||
|~ |[[タカハシ]]|元気|普通|へこみ||||
|~ |IA|High|Mid|MidLow|Low|||
|~ |[[ONE]]|High|Mid|MidLow|Low|||
-&font(b,#FFF,#D08CBB){ ()CeVIO CS ()} [[外部連携インターフェイス - CeVIO Creative Studio ユーザーズガイド>>http://guide2.project-cevio.com/interface]]
****CeVIO AI
&font(b,#FFF,#60EE3C){ ()CeVIO AI ()}
#table_style(head=#AAFFFF){製品=#60EE3C:#FFF}
|製品|キャスト名|>|>|>|>|感情パラメータ名|備考|h
|CeVIO AI|[[さとうささら]]|元気|普通|怒り|哀しみ|||
|~ |[[小春六花]]|嬉しい|普通|怒り|哀しみ|落ち着き||
|~ |IA|Bright|Normal|Strong|Dark|||
|~ |[[OИE]]|Bright|Normal|Strong|Dark||※表記はver.8.1.16以前は「[[ONE]]」、ver.8.1.24以降はどちらもOK|
|~ |[[弦巻マキ]] (日)|元気|怒り|落ち着き|哀しみ|穏やか|※スペース、カッコは半角|
|~ |[[弦巻マキ]] (英)|元気|怒り|落ち着き|哀しみ|穏やか|※日本語環境|
|~ |[[フィーちゃん]]|嬉しい|普通|怒り|哀しみ|落ち着き||
|~ |ロサ ([[ROSA]])|嬉しい|普通|怒り|哀しみ||※スペース、カッコは半角|
//|~ ||||||||
//|~ ||||||||
-&font(b,#FFF,#60EE3C){ ()CeVIO AI ()} [[CeVIO AI ユーザーズガイド ┃ 外部連携インターフェイス>>https://cevio.jp/guide/cevio_ai/interface/]]
#areaedit(end)
----
#areaedit()
*参考
-[[C#)DeepL API で翻訳した結果をボイスロイドにしゃべってもらいたい!(2)>>https://qiita.com/fuji_t/items/2ff27f9d73a9893c0b86]]
-[[PowerPointをメディア講義に対応させるメモ(PPT+CeVIO)>>https://qiita.com/uedacci/items/415886d63244e27d329a]]
-[[CeVIO AI さとうささらにテキストファイルを読んでもらうだけのPowerShellスクリプト作ったからよろしければどうぞ!>>https://twitter.com/puuuii_yukari/status/1431226830921428995]](puuuii@そえゆかさん)
-[[PythonからCeVIO AIの外部連携インターフェイスを叩く>>https://qiita.com/taka7n/items/2dbfb0e6f8d4d9374c46]] (sasawrapper)
-[[CeVIO AIをpythonから呼ぶ時のメモ>>https://zenn.dev/decl/articles/4efdf0b7fef861]]
-[[CeVIO AIにPythonを使ってその日の情報を喋らせる。① - Qiita>>https://qiita.com/NOkamo/items/7f8697f58f55ee183e19]]
#areaedit(end)