CeVIOという音声創作ソフトウェアがあり、C++で感情やコンディションを細かく制御することが可能らしいです。サンプルコードを使って実際にためしてみたのですが、CeVIO::ISpeakingStatePtr pState = pTalker->Speak("こんにちは");
の部分に外部から文字列(charかstringです)を入れられるようにする方法が分かりません。どなたかご教授お願いします。
code
#include "stdafx.h"
#include <ObjBase.h>
// タイプライブラリインポート
// (タイプライブラリの登録は、【CeVIO Creative Studio】インストール時に行われます。)
#import "libid:D3AEA482-B527-4818-8CEA-810AFFCB24B6" named_guids rename_namespace("CeVIO")
int _tmain(int argc, _TCHAR* argv[])
{
// COM初期化
::CoInitialize(NULL);
// ServiceControlインスタンス生成
CeVIO::IServiceControl *pServiceControl;
HRESULT result0 = ::CoCreateInstance(CeVIO::CLSID_ServiceControl,
NULL,
CLSCTX_INPROC_SERVER,
CeVIO::IID_IServiceControl,
reinterpret_cast<LPVOID *>(&pServiceControl));
if (FAILED(result0)) {
// 失敗
::CoUninitialize();
return 0;
}
// ServiceControlのバージョン4.0追加機能インターフェイスを取得
CeVIO::IServiceControlV40Part *pServiceControlV40Part = NULL;
result = pServiceControl->QueryInterface(CeVIO::IID_IServiceControlV40Part,
reinterpret_cast<LPVOID *>(&pServiceControlV40Part));
if (SUCCEEDED(result)) {
MessageBox(NULL, pServiceControlV40Part->HostVersion.GetBSTR(), L"", MB_OK);
} else {
// バージョン4.0以前の場合はこちらに分岐
}
// 【CeVIO Creative Studio】起動
pServiceControl->StartHost(false);
// Talkerインスタンス生成
CeVIO::ITalker *pTalker;
HRESULT result1 = ::CoCreateInstance(CeVIO::CLSID_Talker,
NULL,
CLSCTX_INPROC_SERVER,
CeVIO::IID_ITalker,
reinterpret_cast<LPVOID *>(&pTalker));
if (FAILED(result1)) {
// 失敗
::CoUninitialize();
return 0;
}
// キャスト設定
pTalker->Cast = "さとうささら";
// (例)音量設定
pTalker->Volume = 100;
// ServiceControlのバージョン4.0追加機能インターフェイスを取得
CeVIO::ITalkerV40Part *pTalkerV40Part = NULL;
result = pTalker->QueryInterface(CeVIO::IID_ITalkerV40Part,
reinterpret_cast<LPVOID *>(&pTalkerV40Part));
if (SUCCEEDED(result)) {
// (例)抑揚設定
pTalkerV40Part->ToneScale = 100;
}
// (例)再生
CeVIO::ISpeakingStatePtr pState = pTalker->Speak("こんにちは");
pState->Wait();
// (例)音素データ取得
CeVIO::IPhonemeDataArrayPtr pPhonemes = pTalker->GetPhonemes("はじめまして");
// Talker解放(追加部分)
if (pTalkerV40Part != NULL) pTalkerV40Part->Release();
// Talker解放
pTalker->Release();
// 【CeVIO Creative Studio】終了
pServiceControl->CloseHost(0);
// ServiceControl解放(追加部分)
if (pServiceControlV40Part != NULL) pServiceControlV40Part->Release();
// ServiceControl解放
pServiceControl->Release();
// COM使用終了
::CoUninitialize();
return 0;
}
/code
CeVIOの外部コンポーネントについて
ページ移動
- 掲示板
- ↳ C言語何でも質問掲示板
- ↳ 四聖龍神録2 掲示板
- ↳ 四聖龍神録Plus掲示板
- ↳ AerobeatPlus掲示板
- 副次コンテンツ
- ↳ 作品お披露目掲示板
- 登録ユーザー用コンテンツ
- ↳ 登録ユーザー掲示板
- コミュニティフォーラム
- ↳ みんなでソースコードをレビューしよう
- ↳ 3DCGソフト使用者のコミュ
- ↳ Win32 API
- ↳ 組み込み系スクリプト言語をつかってみよう
- ↳ 東方好きあつまれ
- ↳ C言語誰でも交流サイト - mixC++ -
- ↳ ビット論理演算が好きな人♪
- ↳ 企画関係について語ろうか
- ↳ エフェクトアニメーション
- ↳ 学生で集まってみる?
- ↳ DirectX SDK
- ↳ マイコン/FPGA電子工作部
- ↳ PHPに可能性を無限大
- ↳ Code Golf を楽しもう!
- ↳ 作曲している人で話し合ってみませんか♪
- ↳ ソフト制作コミュ
- ↳ El Shaddai - エルシャダイ -
- ↳ PSPプログラミング
- ↳ CINEMA 4D
- ↳ お絵かきコミュニティ
- ↳ 素材作ってみたよ!
- ↳ OpenGL
- ↳ OpenCV
- ↳ RPGを作りたい!
- ↳ ポケモン好き集まれ
- ↳ ならば .NETをやらないか?
- ↳ 1から勉強してみないか?
- ↳ 赤髪超大好き♪
- ↳ ノースリーブ
- ↳ 伝説の戦士プリキュアを語ろう
- ↳ コンテストコミュニティー
- ↳ DXライブラリ何でも質問コミュニティ
- ↳ 四聖龍神録コミュニティ
- ↳ HTML/CSS/JavaScript
- ↳ 生放送コミュ
- ↳ サンプルを共有するコミュニティ
- ↳ おすすめマーカー
- ↳ minecraft
- ↳ Xtal Language
- ↳ マインクラフト
- ↳ 数学やらないか?
- ↳ 習ったことをプログラムで表してみよう!
- ↳ 小物アプリ作成や ら な い か
- ↳ AIの可能性は無限大
- ↳ 自作OS製作(GUI入門)[雑談]
- ↳ リレーコーディング
- ↳ Unix/Linux
- ↳ 競技プログラミングごっこやろうぜ
- ↳ 夏休みプログラミングイベント2012 in MixC++
- ↳ D言語を広めよう
- ↳ Scala布教の会
- ↳ 3Dゲーム作ろうぜ!モデリング~プログラミングまで
- ↳ 言語に興味を持ったら是非!!
- ↳ レイヴンズ・ネスト
- ↳ C言語とC++言語のコミュニティー!
- ↳ 放課後ふぁんたじあ
- ↳ マイ サンプルズ
- ↳ ガンヲタの館
- ↳ 歯科機器
- ↳ 歯科機器情報
- ↳ 52歳からはじめるC言語
- mixC++更新・仕様変更履歴