SpeechEventInfo Struct

Definitie

Wordt gebruikt om het type gebeurtenis en de argumenten (indien aanwezig) op te geven die moeten worden gegenereerd als onderdeel van de rendering van tekst naar spraak door een aangepaste synthetische spraakengine.

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)
Overname
SpeechEventInfo
Implementeringen

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.

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

Een aangepaste spraaksynthese-engine vraagt de generatie van gebeurtenissen onder het Speech Platform aan door een geschikt SpeechEventInfo exemplaar op te geven voor AddEvents het lid van het ITtsEngineSite enginesiteobject dat is doorgegeven aan implementaties van Speak, AddLexiconen RemoveLexicon.

Constructors

Name Description
SpeechEventInfo(Int16, Int16, Int32, IntPtr)

Maakt een geschikte SpeechEventInfo.

Eigenschappen

Name Description
EventId

Hiermee haalt u de Speech-platform-gebeurtenis op die wordt gebruikt om een aanvraag SpeechEventInfo uit te voeren.

Param1

Hiermee haalt u de integer waarde (param1 in de constructor) op die moet worden doorgegeven aan het Speech-platform om een gebeurtenis te genereren waarvan SpeechEventInfo het huidige exemplaar wordt gebruikt om een aanvraag uit te voeren.

Param2

Hiermee wordt het System.IntPtr exemplaar (param2 in de constructor) opgehaald en ingesteld dat verwijst naar het object dat moet worden doorgegeven aan het Speech-platform om een gebeurtenis te genereren waarvan SpeechEventInfo het huidige exemplaar wordt gebruikt om een aanvraag uit te voeren.

ParameterType

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

Methoden

Name Description
Equals(Object)

Bepaalt of een opgegeven object een exemplaar is van SpeechEventInfo en gelijk is aan het huidige exemplaar van SpeechEventInfo.

Equals(SpeechEventInfo)

Bepaalt of een opgegeven SpeechEventInfo object gelijk is aan het huidige exemplaar van SpeechEventInfo.

GetHashCode()

Biedt een hash-code voor een SpeechEventInfo object.

Operators

Name Description
Equality(SpeechEventInfo, SpeechEventInfo)

Bepaalt of twee exemplaren SpeechEventInfo gelijk zijn.

Inequality(SpeechEventInfo, SpeechEventInfo)

Bepaalt of twee exemplaren SpeechEventInfo niet gelijk zijn.

Van toepassing op