Partager via


SpeechEventInfo Structure

Définition

Utilisé pour spécifier le type d’événement et ses arguments (le cas échéant) à générer dans le cadre de la restitution de la conversion de texte par synthèse vocale par un moteur de synthèse vocal personnalisé.

public value class SpeechEventInfo : IEquatable<System::Speech::Synthesis::TtsEngine::SpeechEventInfo>
public struct SpeechEventInfo : IEquatable<System.Speech.Synthesis.TtsEngine.SpeechEventInfo>
type SpeechEventInfo = struct
Public Structure SpeechEventInfo
Implements IEquatable(Of SpeechEventInfo)
Héritage
SpeechEventInfo
Implémente

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

Un moteur de synthèse vocale personnalisé demande la génération d’événements sous la plateforme de reconnaissance vocale en fournissant une SpeechEventInfo instance appropriée à un AddEvents membre de l' ITtsEngineSite objet de site de moteur passé aux implémentations de Speak , AddLexicon et RemoveLexicon .

Constructeurs

SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Construit un SpeechEventInfo approprié.

Propriétés

EventId

Obtient et définit l'événement de plateforme de reconnaissance vocale demandé en utilisant une instance de SpeechEventInfo.

Param1

Obtient et définit la valeur de integer (param1 dans le constructeur) à passer à la plateforme de reconnaissance vocale pour générer un événement demandé en utilisant l'instance actuelle de SpeechEventInfo.

Param2

Obtient et définit l'instance de System.IntPtr (param2 dans le constructeur) qui référence l'objet à passer à la plateforme de reconnaissance vocale pour générer un événement demandé en utilisant l'instance actuelle de SpeechEventInfo.

ParameterType

Retourne le type de données de l'objet pointé vers IntPtr retourné par le paramètre Param2 sur l'objet SpeechEventInfo actuel.

Méthodes

Equals(Object)

Détermine si un objet spécifié est une instance de SpeechEventInfo et est égal à l’instance actuelle de SpeechEventInfo.

Equals(SpeechEventInfo)

Détermine si un objet SpeechEventInfo spécifié est égal à l’instance actuelle de SpeechEventInfo.

GetHashCode()

Fournit un code de hachage pour un objet SpeechEventInfo.

Opérateurs

Equality(SpeechEventInfo, SpeechEventInfo)

Détermine si deux instances de SpeechEventInfo sont égales.

Inequality(SpeechEventInfo, SpeechEventInfo)

Détermine si deux instances de SpeechEventInfo ne sont pas égales.

S’applique à