次の方法で共有


TtsEngineSsml.GetOutputFormat(SpeakOutputFormat, IntPtr) メソッド

定義

特定の出力形式をサポートする合成エンジンへの要求に対する、特定の合成エンジン応答によってサポートされた、最も一致するオーディオ出力を返します。

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 へのポインター。

戻り値

IntPtr

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 指定された要求された出力形式を調べ、サポートされている最も近い形式を返す必要があります。

適用対象