SpeechEventInfo.ParameterType Eigenschap

Definitie

Retourneert het gegevenstype van het object waarnaar wordt verwezen door de IntPtr geretourneerde door de Param2 parameter op het huidige SpeechEventInfo object.

public:
 property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short

Waarde van eigenschap

Een short waarde die overeenkomt met een lid van de EventParameterType opsomming en geeft het gegevenstype van het object aan waarnaar wordt verwezen door de IntPtr geretourneerde Param2 parameter en gebruikt als het tweede argument voor de constructor van het huidige SpeechEventInfo object.

Voorbeelden

Het onderstaande voorbeeld maakt deel uit van een aangepaste implementatie voor spraaksynthese die wordt overgenomen van TtsEngineSsml, en het gebruik van TextFragment, SpeechEventInfoen FragmentStateTtsEventId

De implementatie van Speak

  1. Hiermee ontvangt u een matrix met TextFragment exemplaren en maakt u een nieuwe matrix met TextFragment exemplaren die moeten worden doorgegeven aan de Speak methode op een onderliggende synthese-engine.

  2. Als de TtsEngineAction opsommingswaarde op basis van de Action eigenschap op de FragmentState geretourneerde State eigenschap van elke TextFragment instantie is, is Speakde implementatie

    • Vertaalt Americanisme in Britishismen in de tekst die moet worden gesproken.

    • Als de EventInterest eigenschap op de ITtsEngineSite interfaces die zijn opgegeven voor de implementatie het WordBoundary gebeurtenistype ondersteunt, wordt er een SpeechEventInfo exemplaar gebruikt om een gebeurtenis te maken om een synthesizervoortgangsmeter aan te sturen.

      De parameters op SpeechEventInfo, inclusief ParameterType , worden gebruikt voor het vastleggen van de gebeurtenis die is gegenereerd via de LogSpeechEvent methode.

  3. Vervolgens wordt een spraakrenderingsengine aangeroepen met de gewijzigde TextFragment matrix.

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);

}

Opmerkingen

De vereisten voor de System.IntPtr verwijzing van de eigenschap van Param2 de SpeechEventInfo eigenschap worden uniek bepaald door de waarden van de EventId en ParameterType eigenschappen van het SpeechEventInfo exemplaar.

Zie de documentatie voor Param2gedetailleerde informatie over het gebruikEventId.

Van toepassing op