Domanda

Sto creando un piccolo widget Silverlight che pronuncia una parola ed evidenzia ogni sillaba così come viene pronunciata.

Come parte di questo, sto usando SpeechSynthesizer.PhonemeReached event per determinare i tempi di inizio e fine di ciascun fonema (come passo per capire i tempi di inizio e fine di ciascuna sillaba).

La cosa strana è che PhonemeReachedEventArgs La proprietà .Phoneme è talvolta un carattere di controllo, almeno (ma forse non esclusivamente) U + 0004 FINE TRASMISSIONE , compresi i luoghi che non sono, umm, la fine della trasmissione (come, diciamo, l'inizio).

Non riesco a trovare alcuna documentazione su ciò che dovrebbe significare, qualcuno lo sa?

MODIFICA : Per chiarire, non sto facendo la sintesi vocale in Silverlight (poiché non è supportata), lo sto facendo sul server e restituendo i tempi limite della sillaba e la trascrizione IPA della parola in un'intestazione HTTP della risposta audio. Probabilmente non avrei dovuto menzionare affatto la parte di Silverlight, dal momento che non è davvero rilevante, non ho davvero pensato molto a spiegare il contesto. Ooops. :)

È stato utile?

Soluzione

Se stai cercando di capire l'ora di inizio e di fine di ciascun fonema (che in realtà è una domanda diversa) ... prova a utilizzare la proprietà PhonemeReachedEventArgs.Duration. L'ora di inizio sarà l'ora di inizio della frase " + le durate cumulative di tutti i fonemi precedentemente pronunciati. L'ora di fine sarà l'ora di inizio del fonema corrente " + la durata del fonema corrente.

Come rispondere al tuo " pubblicato " domanda, presumo che tu stia usando l'inglese come lingua di sintesi. In questo caso, è probabile che i "caratteri" stai vedendo in realtà valori di indice nella Tabella dei fonemi in inglese americano . Puoi anche vedere lo stesso con fonemi cinesi , tuttavia fonemi giapponesi hanno rappresentazioni unicode, che sono tutti al di fuori del "carattere di controllo" gamma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top