EventParameterType Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Énumère les types de pointeurs de données passés aux événements de synthèse vocale.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- Héritage
Champs
Object | 2 | Non pris en charge actuellement. |
Pointer | 3 | Non pris en charge actuellement. |
String | 4 | Indique que l'argument |
Token | 1 | Indique que l’argument |
Undefined | 0 | Indique que l'argument |
Exemples
L’exemple suivant fait partie d’une implémentation de synthèse vocale personnalisée qui hérite de TtsEngineSsml , et utilise l’utilisation de TextFragment ,, SpeechEventInfo FragmentState et TtsEventId .
L’implémentation de Speak
Reçoit un tableau d' TextFragment instances et crée un nouveau tableau d' TextFragment instances à passer à la
Speak
méthode sur un moteur de synthèse sous-jacent.Si la TtsEngineAction valeur d’énumération trouvée à partir de la Action propriété sur le FragmentState retourné par la State propriété de chaque TextFragment instance est Speak , l’implémentation
Traduit l’americanisme en Britishisms dans le texte à prononcer.
Si la EventInterest propriété sur les ITtsEngineSite interfaces fournies à l’implémentation prend en charge le WordBoundary type d’événement, une SpeechEventInfo instance est utilisée pour créer un événement pour piloter un compteur de progression de synthétiseur créé.
Les paramètres sur SpeechEventInfo , y compris la EventParameterType valeur de membre retournée par ParameterType , sont utilisés pour enregistrer l’événement généré par le biais de la
LogSpeechEvent
méthode.
Un moteur de rendu vocal est ensuite appelé avec le TextFragment tableau modifié.
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);
}
Remarques
L' EventParameterType
énumération est utilisée lors de la construction d’un SpeechEventInfo objet. Un EventParameterType
membre d’énumération passé comme parameterType
argument au constructeur pour SpeechEventInfo spécifie comment l' param2
argument du constructeur (qui doit être un IntPtr ) est interprété.
Le choix de EventParameterType
est dicté par le type d’événement demandé, comme spécifié par un membre de System.Speech.Synthesis.TtsEngine.TtsEventId .
Pour plus d’informations sur l’utilisation de EventParameterType
, consultez la documentation de. EventId
Notes
Actuellement, les instances d’un moteur de reconnaissance vocale synthétique écrit à l’aide des membres de l' System.Speech.Synthesis espace de noms ne peuvent pas modifier les ressources après la construction.