EventParameterType Enumeração
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.
Enumera os tipos de ponteiros de dados passados para eventos de síntese de fala.
public enum class EventParameterType
public enum EventParameterType
type EventParameterType =
Public Enum EventParameterType
- Herança
Campos
Object | 2 | Não há suporte no momento. |
Pointer | 3 | Não há suporte no momento. |
String | 4 | Indica que o argumento |
Token | 1 | Indica que o argumento |
Undefined | 0 | Indica que o argumento |
Exemplos
O exemplo a seguir faz parte de uma implementação de síntese de fala personalizada herdada de TtsEngineSsml e usando o uso de TextFragment , SpeechEventInfo , FragmentState e TtsEventId .
A implementação de Speak
Recebe uma matriz de TextFragment instâncias e cria uma nova matriz de TextFragment instâncias a ser passada para o
Speak
método em um mecanismo de síntese subjacente.Se o TtsEngineAction valor de enumeração encontrado na Action propriedade no FragmentState retornado pela State propriedade de cada TextFragment instância for Speak , a implementação
Traduz o American Britishisms no texto a ser falado.
Se a EventInterest Propriedade nas ITtsEngineSite interfaces fornecidas para a implementação oferecer suporte ao WordBoundary tipo de evento, uma SpeechEventInfo instância será usada para criar um evento para gerar um medidor de progresso do sintetizador criado.
Os parâmetros on SpeechEventInfo , incluindo o EventParameterType valor do membro retornado por ParameterType , são usados para registrar o evento gerado por meio do
LogSpeechEvent
método.
Um mecanismo de renderização de fala é chamado com a TextFragment matriz modificada.
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
A EventParameterType
enumeração é usada ao construir um SpeechEventInfo objeto. Um EventParameterType
membro de enumeração passado como o parameterType
argumento para o construtor SpeechEventInfo especifica como o param2
argumento do Construtor (que deve ser um IntPtr ) é interpretado.
A escolha de EventParameterType
é ditada pelo tipo de evento que está sendo solicitado, conforme especificado por um membro de System.Speech.Synthesis.TtsEngine.TtsEventId .
Para obter informações detalhadas sobre como usar EventParameterType
o, consulte a documentação do EventId
Observação
Atualmente, as instâncias de mecanismos de fala sintéticos gerenciados escritos usando os membros do System.Speech.Synthesis namespace não podem alterar os recursos após a construção.