Pergunta

Estou criando um pequeno widget de silverlight que pronuncia uma palavra e destaques cada sílaba como é pronunciada.

Como parte disto, eu estou usando o SpeechSynthesizer.PhonemeReached evento para determinar os tempos de início e fim de cada fonema (como um passo em descobrir os horários de início e fim de cada sílaba).

O estranho é que a PhonemeReachedEventArgs .Phoneme propriedade às vezes é um caractere de controle, pelo menos (mas possivelmente não exclusivamente) U + 0004 fIM dE tRANSMISSÃO , incluindo lugares que não são, umm, o fim da transmissão (como, por exemplo, o início).

Não consigo encontrar qualquer documentação do que isto é suposto dizer, alguém sabe?

Editar : Para esclarecer, eu não estou fazendo a síntese de fala em Silverlight (desde que não é suportado), eu estou fazendo isso no servidor e retornar os tempos limite de sílaba e IPA transcrição da palavra em um cabeçalho HTTP da resposta de áudio. Eu provavelmente não deveria ter mencionado a parte silverlight em tudo, desde que não é realmente relevante, eu só realmente não penso muito sobre explicando o contexto. Opa. :)

Foi útil?

Solução

Se você está tentando descobrir os horários de início e término de cada fonema (que realmente é uma questão diferente) ... tente usar a propriedade PhonemeReachedEventArgs.Duration. O horário de início será a "hora de início da frase" + as durações acumuladas de todos os fonemas anteriormente pronunciadas. O tempo final será a "hora de início do fonema atual" + a duração do fonema atual.

Como responder à sua pergunta "postado", estou assumindo que você está usando o Inglês como o idioma de síntese. Neste caso, é provável que os "personagens" que você está vendo são realmente os valores do índice para o American Inglês Phoneme Tabela . Você também pode ver o mesmo com fonemas chineses , no entanto fonemas japoneses têm representações Unicode, que estão todos fora da faixa "caractere de controle".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top