SpeechEventInfo.Param1 Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene y establece el integer valor (param1 en el constructor) que se va a pasar a la plataforma de voz para generar un evento del que se usa la instancia actual de SpeechEventInfo para solicitar.
public:
property int Param1 { int get(); };
public int Param1 { get; }
member this.Param1 : int
Public ReadOnly Property Param1 As Integer
Valor de propiedad
Devuelve el objeto integer que se va a pasar a la plataforma de voz cuando se genera el evento especificado por la instancia actual de SpeechEventInfo .
Ejemplos
El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que hereda de TtsEngineSsmly usa el uso de TextFragment, SpeechEventInfo, FragmentStatey TtsEventId
La implementación de Speak
Recibe una matriz de TextFragment instancias y crea una nueva matriz de instancias que se pasarán al
Speakmétodo en un motor de TextFragment síntesis subyacente.Si el TtsEngineAction valor de enumeración encontrado de la Action propiedad en el FragmentState devuelto por la State propiedad de cada TextFragment instancia es Speak, la implementación
Traduce el americanismo a los britishismos en el texto que se va a hablar.
Si la EventInterest propiedad de las ITtsEngineSite interfaces proporcionadas a la implementación admite el WordBoundary tipo de evento, se usa una SpeechEventInfo instancia para crear un evento para controlar un medidor de progreso del sintetizador.
Los parámetros de SpeechEventInfo, incluidos Param1 , se usan para registrar el evento generado a través del
LogSpeechEventmétodo .
A continuación, se llama a un motor de representación de voz con la matriz modificada TextFragment .
private const int WordBoundaryFlag = 1 << (int)TtsEventId.WordBoundary;
private readonly char[] spaces = new char[] { ' ', '\t', '\r', '\n' };
internal struct UsVsUk
{
internal string UK;
internal string US;
}
override public void Speak (TextFragment [] frags, IntPtr wfx, ITtsEngineSite site)
{
TextFragment [] newFrags=new TextFragment[frags.Length];
for (int i=0;i<frags.Length;i++){
newFrags[i].State=frags[i].State;
//truncate
newFrags[i].TextToSpeak = frags[i].TextToSpeak.Substring(frags[i].TextOffset,
frags[i].TextLength);
newFrags[i].TextLength = newFrags[i].TextToSpeak.Length;
newFrags[i].TextOffset = 0;
if (newFrags[i].State.Action == TtsEngineAction.Speak) {
//Us to UK conversion
foreach (UsVsUk term in TransList) {
newFrags[i].TextToSpeak.Replace(term.US, term.UK);
}
//Generate progress meter events if supported
if ((site.EventInterest & WordBoundaryFlag) != 0) {
string[] subs = newFrags[i].TextToSpeak.Split(spaces);
foreach (string s in subs) {
int offset = newFrags[i].TextOffset;
SpeechEventInfo spEvent = new SpeechEventInfo((Int16)TtsEventId.WordBoundary,
(Int16)EventParameterType.Undefined,
s.Length, new IntPtr(offset));
LogSpeechEvent(spEvent.EventId,
spEvent.ParameterType,
spEvent.Param1,
spEvent.Param2);
offset += s.Length;
if (s.Trim().Length > 0) {
SpeechEventInfo[] events = new SpeechEventInfo[1];
events[0] = spEvent;
site.AddEvents(events, 1);
}
}
}
}
}
_baseSynthesize.Speak(newFrags, wfx, site);
}
Comentarios
Los requisitos y el significado de la propiedad de Param1SpeechEventInfo se determinan de forma única por los valores de las EventId propiedades y ParameterType de la SpeechEventInfo instancia.
Para obtener información detallada sobre cómo usar Param1, consulte la documentación de EventId.