Partager via


SpeechEventInfo(Int16, Int16, Int32, IntPtr) Constructeur

Définition

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

  1. 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.

  2. 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éé.

  3. 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 .

S’applique à