TtsEngineSsml.GetOutputFormat(SpeakOutputFormat, IntPtr) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 struct
speakOutputFormat
.
Döndürülenler
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 CoTaskMemAlloc
ayrı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.