TtsEngineSsml.GetOutputFormat(SpeakOutputFormat, IntPtr) Método

Definición

Devuelve el mejor resultado de audio coincidente admitido por una respuesta del motor de síntesis dada a una solicitud para el motor de sintetizador de compatibilidad con un formato de salida determinado.Returns the best matching audio output supported by a given synthesize engine response to a request to the synthesizer engine for the support of a particular output format.

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

Parámetros

speakOutputFormat
SpeakOutputFormat

Miembro válido de la enumeración de SpeakOutputFormat que indica el tipo de formato solicitado de la salida de audio.Valid member of the SpeakOutputFormat enumeration indicating the type of requested audio output format.

targetWaveFormat
IntPtr

Un puntero a un struct que contiene el valor de detalle para el tipo de formato de audio solicitado por el argumento speakOutputFormat.A pointer to a struct containing detail setting for the audio format type requested by the speakOutputFormat argument.

Devoluciones

Devuelve una instancia de IntPtr válida que hace referencia a un struct que contiene información detallada sobre el formato de salida.Returns a valid IntPtr instance referring to a struct containing detailed information about the output format.

Ejemplos

La siguiente implementación de ejemplo valida las entradas seleccionadas, si están dentro de las tolerancias; de lo contrario, usa los valores predeterminados.The sample implementation below validates selected inputs, using them if they are within tolerances, otherwise using default values.

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

Comentarios

La estructura utilizada como targetWaveFormat y devuelta por el método debe ser compatible WAVEFORMATEX con el disponible en SAPI y el valor devuelto se debe CoTaskMemAllocasignar mediante.The structure used as targetWaveFormat and returned by the method should compatible with the WAVEFORMATEX available under SAPI, and the returned value should be allocated using CoTaskMemAlloc.

Debe struct proporcionar la funcionalidad equivalente a:The struct must provide functionality equivalent to:

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

Notas a los desarrolladores de herederos

El objeto que se TtsEngineSsml hereda de debe examinar el formato de salida solicitado targetWaveFormat tal y como se especifica en y devolver el formato más cercano que admita.Object inheriting from TtsEngineSsml should examine the requested output format as specified by targetWaveFormat and return the closest format that it supports.

Se aplica a