Aracılığıyla paylaş


TtsEngineSsml.GetOutputFormat(SpeakOutputFormat, IntPtr) Yöntem

Tanım

Belirli bir çıkış biçiminin desteklenmesi için bir sentezleyici altyapısı isteğine verilen bir sentez altyapısı yanıtı tarafından desteklenen en iyi eşleşen ses çıkışını döndürür.

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

Parametreler

speakOutputFormat
SpeakOutputFormat

İstenen ses çıkış biçiminin türünü gösteren numaralandırmanın geçerli üyesi SpeakOutputFormat .

targetWaveFormat
IntPtr

nativeint

Bağımsız değişken tarafından istenen ses biçimi türü için bir ayrıntı içeren ayarın işaretçisi structspeakOutputFormat .

Döndürülenler

IntPtr

nativeint

Çıkış biçimi hakkında ayrıntılı bilgi içeren bir örneğe başvuran geçerli IntPtr bir struct örnek döndürür.

Örnekler

Aşağıdaki örnek uygulama seçilen girişleri doğrular, tolerans içindeyse kullanır, aksi takdirde varsayılan değerleri kullanır.

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;  
}  

Açıklamalar

yöntemi targetWaveFormat tarafından kullanılan ve döndürülen yapı, SAPI altında sağlanan ile WAVEFORMATEX uyumlu olmalı ve döndürülen değer kullanılarak CoTaskMemAllocayrılmalıdır.

aşağıdakilere struct eşdeğer işlevsellik sağlamalıdır:

internal struct WaveFormat  
{  
    public Int16 FormatTag;  
    public Int16 Channels;  
    public int SamplesPerSec;  
    public int AvgBytesPerSec;  
    public Int16 BlockAlign;  
    public Int16 BitsPerSample;  
    public Int16 Size;  
}  

Uygulayanlara Notlar

devralan TtsEngineSsml nesne tarafından targetWaveFormat belirtilen istenen çıkış biçimini incelemeli ve desteklediği en yakın biçimi döndürmelidir.

Şunlara uygulanır