SpeechEventInfo Struct-datatyp

Definition

Används för att ange vilken typ av händelse och dess argument (om några) som ska genereras som en del av återgivningen av text till tal av en anpassad syntetisk talmotor.

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)
Arv
SpeechEventInfo
Implementeringar

Exempel

Exemplet nedan är en del av en anpassad implementering av talsyntes som ärver från TtsEngineSsmloch använder användningen av TextFragment, SpeechEventInfo, FragmentStateoch TtsEventId

Genomförandet av Speak

  1. Tar emot en matris med TextFragment instanser och skapar en ny matris med TextFragment instanser som ska skickas till Speak metoden på en underliggande syntesmotor.

  2. TtsEngineAction Om uppräkningsvärdet som hittas från Action egenskapen på den FragmentState som returneras av egenskapen för State varje TextFragment instans är , är Speakimplementeringen

    • Översätter amerikanismen till britishismer i texten som ska talas.

    • EventInterest Om egenskapen på de ITtsEngineSite gränssnitt som tillhandahålls till implementeringen stöder WordBoundary händelsetypen, används en SpeechEventInfo instans för att skapa en händelse för att köra en synthesizer-förloppsmätare skapas.

  3. En talrenderingsmotor anropas sedan med den ändrade TextFragment matrisen.

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

}

Kommentarer

En anpassad talsyntesmotor begär genereringen av händelser under Speech Platform genom att tillhandahålla en lämplig SpeechEventInfo instans till AddEvents medlemmen i ITtsEngineSite motorplatsobjektet som skickas till implementeringar av Speak, AddLexiconoch RemoveLexicon.

Konstruktorer

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

Skapar en lämplig SpeechEventInfo.

Egenskaper

Name Description
EventId

Hämtar och ställer in talplattformshändelsen som en instans av SpeechEventInfo används för att begära.

Param1

Hämtar och anger värdet integer (param1 i konstruktorn) som ska skickas till Speech-plattformen för att generera en händelse som den aktuella instansen av SpeechEventInfo används för att begära.

Param2

Hämtar och anger instansen System.IntPtr (param2 i konstruktorn) som refererar till objektet som ska skickas till Speech-plattformen för att generera en händelse som den aktuella instansen av SpeechEventInfo används för att begära.

ParameterType

Returnerar datatypen för det objekt som det aktuella objektet pekar på och som IntPtr returneras av parametern Param2 för det aktuella SpeechEventInfo objektet.

Metoder

Name Description
Equals(Object)

Avgör om ett angivet objekt är en instans av SpeechEventInfo och lika med den aktuella instansen av SpeechEventInfo.

Equals(SpeechEventInfo)

Avgör om ett angivet SpeechEventInfo objekt är lika med den aktuella instansen av SpeechEventInfo.

GetHashCode()

Tillhandahåller en hash-kod för ett SpeechEventInfo objekt.

Operatorer

Name Description
Equality(SpeechEventInfo, SpeechEventInfo)

Avgör om två instanser av SpeechEventInfo är lika med.

Inequality(SpeechEventInfo, SpeechEventInfo)

Avgör om två instanser av SpeechEventInfo inte är lika med.

Gäller för