EventParameterType Enumeración
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í.
Enumera los tipos de punteros de datos transferidos a los eventos de la síntesis de voz.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- Herencia
Campos
Object | 2 | Actualmente no se admite. |
Pointer | 3 | Actualmente no se admite. |
String | 4 | Indica que el argumento |
Token | 1 | Indica que el argumento |
Undefined | 0 | Indica que el argumento |
Ejemplos
El ejemplo siguiente forma parte de una implementación de síntesis de voz personalizada que hereda de y usa TtsEngineSsml TextFragment , , y SpeechEventInfo FragmentState TtsEventId .
La implementación de Speak
Recibe una matriz de instancias y crea una nueva matriz de instancias que se pasarán al método TextFragment en un motor de TextFragment
Speak
síntesis subyacente.Si el TtsEngineAction valor de enumeración de encontrado en la propiedad en el devuelto por la propiedad de cada instancia Action es , la FragmentState State TextFragment Speak implementación
Traduce el americanismo a los britishismos en el texto que se va a hablar.
Si la propiedad en las interfaces proporcionadas a la implementación admite el tipo de evento , se usa una instancia de para crear un evento para impulsar un medidor de progreso EventInterest ITtsEngineSite del WordBoundary SpeechEventInfo sintetizador.
Los parámetros de SpeechEventInfo , incluido el valor de miembro devuelto por , se usan para registrar el evento generado a EventParameterType través del método ParameterType
LogSpeechEvent
.
A continuación, se llama a un motor de representación de voz con la matriz TextFragment modificada.
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
La EventParameterType
enumeración se usa al construir un SpeechEventInfo objeto . Un miembro de enumeración pasado como argumento al constructor para especifica cómo se interpreta el argumento del EventParameterType
parameterType
constructor SpeechEventInfo param2
(que debe ser IntPtr ).
La elección de viene determinada por el tipo de evento que se solicita, tal y como EventParameterType
especifica un miembro de System.Speech.Synthesis.TtsEngine.TtsEventId .
Para obtener información detallada sobre cómo usar EventParameterType
, consulte la documentación de . EventId
Nota
Actualmente, las instancias de motores de voz sintéticos administrados escritos con los miembros del espacio de nombres System.Speech.Synthesis no pueden cambiar los recursos después de la construcción.