TtsEngineSsml.GetOutputFormat(SpeakOutputFormat, IntPtr) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
特定の出力形式をサポートする合成エンジンへの要求に対する、特定の合成エンジン応答によってサポートされた、最も一致するオーディオ出力を返します。
public:
abstract IntPtr GetOutputFormat(System::Speech::Synthesis::TtsEngine::SpeakOutputFormat speakOutputFormat, IntPtr targetWaveFormat);
public abstract IntPtr GetOutputFormat (System.Speech.Synthesis.TtsEngine.SpeakOutputFormat speakOutputFormat, IntPtr targetWaveFormat);
abstract member GetOutputFormat : System.Speech.Synthesis.TtsEngine.SpeakOutputFormat * nativeint -> nativeint
Public MustOverride Function GetOutputFormat (speakOutputFormat As SpeakOutputFormat, targetWaveFormat As IntPtr) As IntPtr
パラメーター
- speakOutputFormat
- SpeakOutputFormat
要求されたオーディオ出力形式の種類を示す SpeakOutputFormat 列挙体の有効なメンバー。
- targetWaveFormat
-
IntPtr
nativeint
speakOutputFormat
の引数で要求された、オーディオ形式の種類の詳細設定を含む struct
へのポインター。
戻り値
nativeint
出力形式に関する詳細情報を含む IntPtr を参照する struct
の有効なインスタンスを返します。
例
次のサンプル実装では、選択した入力が許容範囲内にある場合は使用し、それ以外の場合は既定値を使用して検証します。
public IntPtr GetOutputFormat(SpeakOutputFormat format, IntPtr targetWaveFormat) {
WaveFormat waveFormat = new WaveFormat();
WaveFormat rq=new WaveFormat();
Marshal.PtrToStructure(targetWaveFormat,rq);
waveFormat.AvgBytesPerSec = AvgBytesPerSec Min < rq.AvgBytesPerSec && rq.AvgBytesPerSec < AvgBytesPerSecMax? rq.AvgBytesPerSec : 3200;
waveFormat.BitsPerSample = BitsPerSampleMin < rq.AvgBytesPerSec && rq.BitsPerSample < BitsPerSampleMax ? rq.AvgBytesPerSec : 3200; 16;
waveFormat.BlockAlign = 2;
waveFormat.Channels = 1;
waveFormat.FormatTag = 1;
waveFormat.SamplesPerSec = 16000;
waveFormat.Size = 0;
IntPtr wfx = Marshal.AllocCoTaskMem(Marshal.SizeOf(waveFormat));
Marshal.StructureToPtr(waveFormat, wfx, false);
//Console.WriteLine ("GetOutputFormat called");
return wfx;
}
internal struct WaveFormat {
public Int16 FormatTag;
public Int16 Channels;
public int SamplesPerSec;
public int AvgBytesPerSec;
public Int16 BlockAlign;
public Int16 BitsPerSample;
public Int16 Size;
}
注釈
メソッドによって として targetWaveFormat
使用され、返される構造体は、SAPI で使用可能な と互換性がある WAVEFORMATEX
必要があり、返される値は を使用して CoTaskMemAlloc
割り当てる必要があります。
には struct
、次と同等の機能が用意されている必要があります。
internal struct WaveFormat
{
public Int16 FormatTag;
public Int16 Channels;
public int SamplesPerSec;
public int AvgBytesPerSec;
public Int16 BlockAlign;
public Int16 BitsPerSample;
public Int16 Size;
}
注意 (実装者)
を TtsEngineSsml 継承するオブジェクトは、 で targetWaveFormat
指定された要求された出力形式を調べ、サポートされている最も近い形式を返す必要があります。
適用対象
.NET