SpeechEventInfo.ParameterType Propriedade
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Retorna o tipo de dados do objeto apontado pelo IntPtrParam2 parâmetro retornado no objeto atual SpeechEventInfo .
public:
property short ParameterType { short get(); };
public short ParameterType { get; }
member this.ParameterType : int16
Public ReadOnly Property ParameterType As Short
Valor da propriedade
Um short valor correspondente a um membro da EventParameterType enumeração e indicando o tipo de dados do objeto apontado pelo IntPtrParam2 parâmetro retornado e usado como o segundo argumento para o construtor do objeto atual SpeechEventInfo .
Exemplos
O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada herdando e TtsEngineSsmlusando o uso de TextFragment, SpeechEventInfoe FragmentStateTtsEventId
A implementação de Speak
Recebe uma matriz de TextFragment instâncias e cria uma nova matriz de TextFragment instâncias a serem passadas para o
Speakmétodo em um mecanismo de síntese subjacente.Se o TtsEngineAction valor de enumeração encontrado da Action propriedade na FragmentState propriedade retornada por State cada TextFragment instância for Speak, a implementação
Traduz o americanismo para os britânicos no texto a ser falado.
Se a EventInterest propriedade nas ITtsEngineSite interfaces fornecidas à implementação der suporte ao WordBoundary tipo de evento, uma SpeechEventInfo instância será usada para criar um evento para gerar um medidor de progresso do sintetizador.
Os parâmetros em SpeechEventInfo, inclusive ParameterType , são usados para registrar o evento gerado por meio do
LogSpeechEventmétodo.
Um mecanismo de renderização de fala é chamado com a matriz modificada TextFragment .
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);
}
Comentários
Os requisitos na System.IntPtr referência da Param2 propriedade de SpeechEventInfo são determinados exclusivamente pelos valores da EventId instância e ParameterType propriedades da SpeechEventInfo instância.
Para obter informações detalhadas sobre como usar Param2, consulte a documentação para EventId.