TtsEngineAction TtsEngineAction TtsEngineAction TtsEngineAction Enum

定義

特定の TextFragment をレンダリングするときに実行する SSML (Speech Synthesis Markup Language) アクションを指定します。Specifies the Speech Synthesis Markup Language (SSML) action to be taken in rendering a given TextFragment.

public enum class TtsEngineAction
public enum TtsEngineAction
type TtsEngineAction = 
Public Enum TtsEngineAction
継承
TtsEngineActionTtsEngineActionTtsEngineActionTtsEngineAction

フィールド

Bookmark Bookmark Bookmark Bookmark 3

TextFragment をブックマークの内容として使用することを示します。Indicates that TextFragment is to be used as the contents of a bookmark. SSML 仕様の <mark> XML タグに対応します。It corresponds to the <mark> XML tag in the SSML specification.

ParseUnknownTag ParseUnknownTag ParseUnknownTag ParseUnknownTag 7

SSML の入力から操作が特定されていないことを示します。Indicates that no action has been determined from SSML input. この入力が解釈されるか、無視されるかは合成エンジンの判断で決められるかもしれません。This input that may be interpreted or ignored by at the discretion of a synthesis engine. 関連付けられている TextFragment は、SSML 標準に含まれない不明な XML タグです。The associated TextFragment is an unknown XML tag not part of the SSML standard.

Pronounce Pronounce Pronounce Pronounce 2

入力 TextFragment テキストを音素として解釈することを要求します。Requests that input TextFragment text be interpreted as phonemes. 正確な発音は、TextFragment インスタンスの State プロパティから返される FragmentState オブジェクトの Phoneme メンバーによって指定されます。Exact pronunciation is specified by the Phoneme member of the FragmentState object returned by the State property on TextFragment instances. SSML 仕様の <Phoneme> XML タグに対応します。It corresponds to the <Phoneme> XML tag in the SSML specification.

Silence Silence Silence Silence 1

TextFragment に音声として表示するテキストがないことを示します。Indicates that a TextFragment contains no text to be rendered as speech. 無音時間は、TextFragment インスタンスの State プロパティから返される FragmentState オブジェクトの Duration プロパティによって指定されます。Duration of the silence is specified by the Duration property of the the FragmentState object returned by the State property on TextFragment instances. SSML 仕様の <Silence> XML タグに対応します。It corresponds to the <Silence> XML tag in the SSML specification.

Speak Speak Speak Speak 0

関連付けられた TextFragment を処理し、読み上げることを要求します。Requests that the associated TextFragment should be processed and spoken. これは TextFragment の既定値です。This is the default value for a TextFragment. SSML 仕様の <speak> XML タグに対応します。It corresponds to the <speak> XML tag in the SSML specification.

SpellOut SpellOut SpellOut SpellOut 4

TextFragment プロパティを使用して TextToSpeak によって指定されたテキスト値を個別の文字として合成することを示します。Indicates that text values provided by a TextFragment through its TextToSpeak property are to be synthesize as individual characters. このレンダリングには、空白以外の句読点や英数字のテキストが含まれます。This rendering includes punctuation, other than white space, as well as alphanumeric text. たとえば、関連付けられているテキスト フラグメント "word!" は、For example, the associated text fragment "word!" "w o r d exclamation point" (w o r d 感嘆符) に合成されます。should be synthesized into "w o r d exclamation point".

StartParagraph StartParagraph StartParagraph StartParagraph 6

段落の状態を示します。Indicates state of paragraph. SSML 仕様の <p> XML タグに対応します。It corresponds to the <p> XML tag in the SSML specification.

StartSentence StartSentence StartSentence StartSentence 5

文の開始を示します。Indicates start of sentence. SSML 仕様の <s> XML タグに対応します。It corresponds to the <s> XML tag in the SSML specification.

次の例は、を継承TtsEngineSsmlするカスタム音声合成の実装の一部であり、、 TextFragment FragmentState、およびの使用を使用します。TtsEventIdThe following example is part of a custom speech synthesis implementation inheriting from TtsEngineSsml, and using the use of TextFragment, FragmentState, and TtsEventId

の実装SpeakThe implementation of Speak

  1. インスタンスのTextFragment配列を受け取り、基になる合成エンジンTextFragmentSpeakメソッドに渡されるインスタンスの新しい配列を作成します。Receives an array of TextFragment instances and creates a new array of TextFragment instances to be passed to the Speak method on an underlying synthesis engine.

  2. State FragmentState Action TtsEngineAction各インスタンスのプロパティによって返されるのプロパティによって検出された列挙値が話さTextFragmentれる場合、実装If the TtsEngineAction enumeration value by found from the Action property on the FragmentState returned by the State property of each TextFragment instance is Speak, the implementation

    • 読み上げられるテキストの Americanism を Britishisms に変換します。Translates Americanism to Britishisms in the text to be spoken.

    • 実装に提供されITtsEngineSiteたインターフェイスのEventInterestプロパティがイベントの種類をサポートしている場合は、シンセサイザーの進行状況を示すイベントが作成TtsEventId.WordBoundaryされます。If the EventInterest property on the ITtsEngineSite interface provided to the implementation support the TtsEventId.WordBoundary event type, an event to drive a synthesizer progress meter is created.

  3. その後、変更TextFragmentされた配列を使用して音声レンダリングエンジンが呼び出されます。A speech rendering engine is then called with the modified TextFragment array.

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

}

注釈

TtsEngineActionTextFragmentサービス要求を表します。TtsEngineAction represents requests for servicing a TextFragment. アクションは SSML 仕様の要素に密接に対応し、のTextToSpeakプロパティTextFragmentによって返されるテキストに実装されます。The actions correspond closely to elements in the SSML specification and are implemented on the text returned by the TextToSpeak property on a TextFragment.

に関連付けられTextFragmentているState値は、プロパティによって返されます。 TtsEngineActionThe TtsEngineAction value associated with a TextFragment is returned by the State property.

プロパティによっTtsEngineActionて返される値の処理は、からTtsEngineSsml派生したクラスのSpeakメソッドの speech 合成実装によって処理されます。 StateProcessing of the TtsEngineAction value returned by the State property is handled by a speech synthesizes implementation of the Speak method on a class derived from TtsEngineSsml.

適用対象