rhubarb-lip-sync/lib/flite-1.4/sapi/FliteCMUKalDiphone/register_vox/register-vox.cpp

105 lines
4.4 KiB
C++

///////////////////////////////////////////////////////////////////////////
// //
// Cepstral, LLC //
// Copyright (c) 2001 //
// All Rights Reserved. //
// //
// Permission is hereby granted, free of charge, to use and distribute //
// this software and its documentation without restriction, including //
// without limitation the rights to use, copy, modify, merge, publish, //
// distribute, sublicense, and/or sell copies of this work, and to //
// permit persons to whom this work is furnished to do so, subject to //
// the following conditions: //
// 1. The code must retain the above copyright notice, this list of //
// conditions and the following disclaimer. //
// 2. Any modifications must be clearly marked as such. //
// 3. Original authors' names are not deleted. //
// 4. The authors' names are not used to endorse or promote products //
// derived from this software without specific prior written //
// permission. //
// //
// CEPSTRAL, LLC AND THE CONTRIBUTORS TO THIS WORK DISCLAIM ALL //
// WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED //
// WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL //
// CEPSTRAL, LLC NOR THE CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, //
// INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER //
// RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION //
// OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR //
// IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. //
// //
///////////////////////////////////////////////////////////////////////////
// Author: David Huggins-Daines (dhd@cepstral.com) //
// Date: November 2001 //
///////////////////////////////////////////////////////////////////////////
#include <atlbase.h>
#include <stdio.h>
#include <sphelper.h>
/* CHANGEME: Include the _i.c file for your voice here instead. */
#include "../FliteCMUKalDiphone_i.c"
int wmain(int argc, WCHAR *argv[])
{
USES_CONVERSION;
HRESULT hr;
::CoInitialize(NULL);
ISpObjectToken *cpToken;
ISpDataKey *cpDataKeyAttribs;
hr = SpCreateNewTokenEx(
SPCAT_VOICES,
/* CHANGEME: Change the following five arguments for your voice. */
L"CMUKal", /* A unique name for your voice. */
&CLSID_FliteCMUKalDiphoneObj, /* The CLSID for your voice object. */
L"CMU Kal Diphone Voice", /* Language-independent full name. */
0x409, /* Language ID (US English is 0x409) */
L"CMU Kal Diphone Voice", /* Language-dependent full name. */
&cpToken,
&cpDataKeyAttribs);
//--- Set additional attributes for searching and the path to the
// voice data file we just created.
if (SUCCEEDED(hr))
{
/* CHANGEME: The gender of your speaker. */
hr = cpDataKeyAttribs->SetStringValue(L"Gender",
L"Male");
/* CHANGEME: The name of your speaker. */
if (SUCCEEDED(hr))
hr = cpDataKeyAttribs->SetStringValue(L"Name",
L"CMU Kal Diphone");
/* CHANGEME: The language IDs supported by your voice. */
if (SUCCEEDED(hr))
hr = cpDataKeyAttribs->SetStringValue(L"Language",
/* US English;
English */
L"409;9");
/* CHANGEME: The general age of your speaker (Adult, Child). */
if (SUCCEEDED(hr))
hr = cpDataKeyAttribs->SetStringValue(L"Age",
L"Adult");
/* CHANGEME: The vendor name for your voice. */
if (SUCCEEDED(hr))
hr = cpDataKeyAttribs->SetStringValue(L"Vendor",
L"CMU");
}
::CoUninitialize();
if (FAILED(hr)) {
fprintf(stderr, "SpCreateNewTokenEx failed, code %x\n",
FAILED(hr));
return FAILED(hr);
}
return 0;
}