SpeechEventInfo(Int16, Int16, Int32, IntPtr) Constructeur
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.
Construit un SpeechEventInfo approprié.
public:
SpeechEventInfo(short eventId, short parameterType, int param1, IntPtr param2);
public SpeechEventInfo (short eventId, short parameterType, int param1, IntPtr param2);
new System.Speech.Synthesis.TtsEngine.SpeechEventInfo : int16 * int16 * int * nativeint -> System.Speech.Synthesis.TtsEngine.SpeechEventInfo
Public Sub New (eventId As Short, parameterType As Short, param1 As Integer, param2 As IntPtr)
Paramètres
- eventId
- Int16
Instance de TtsEventId indiquant le tri de l'événement de plateforme de reconnaissance vocale que l'objet SpeechEventInfo doit gérer.
- parameterType
- Int16
Instance d'EventParameterType indiquant comment la référence System.IntPtr
de param2
doit être interprétée, et, implicitement, l'utilisation de param1
.
- param1
- Int32
Valeur entière à passer à la plateforme de reconnaissance vocale lorsque l'événement demandé par l'instance SpeechEventInfo à construire est généré.
La signification exacte de cet entier est implicitement déterminée par la valeur parameterType
.
- param2
-
IntPtr
nativeint
Instance System.IntPtr
référençant un objet. à passer à la plateforme de reconnaissance vocale lorsque l'événement demandé par l'instance SpeechEventInfo à construire est généré.
Le type qui doit être référencé est défini explicitement par la valeur parameterType
. Valeur System.IntPtr.Zero
.
Exemples
L’exemple ci-dessous 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éé.
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));
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
Les valeurs autorisées utilisées pour parameterType
, et param1
param2
et leur signification sont dictées par le type d’événement demandé, tel que spécifié par le membre de TtsEventId utilisé pour eventId
.
Pour plus d’informations sur les valeurs appropriées pour parameterType
, param1
et param2
, consultez la documentation de. EventId
Le type des événements qui peuvent être gérés par l’infrastructure de la plateforme de reconnaissance vocale peut être obtenu par le biais de la EventInterest propriété sur l’implémentation du site du moteur de synthétiseur de ITtsEngineSite .