2015-12-02 5 views
5

voice_kal_diphone e voice_ral_diphone funzionano correttamente in modalità di canto (c'è l'uscita vocale e le altezze sono corrette per le note specificate).festival 2.4: perché alcune voci non funzionano con la modalità di canto?

voice_cmu_us_ahw_cg e le altre voci CMU non funzionano correttamente - c'è l'uscita vocale ma l'intonazione non viene modificata in base alle note specificate.

È possibile ottenere l'output corretto con le voci CMU di qualità superiore?

La riga di comando per la lavorazione uscita (pitch-interessata) è:

text2wave -mode singing -eval "(voice_kal_diphone)" -o song.wav song.xml 

La riga di comando per non funzionante (pitch inalterato) di uscita è:

text2wave -mode singing -eval "(voice_cmu_us_ahw_cg)" -o song.wav song.xml 

Ecco song.xml:

<?xml version="1.0"?> 
<!DOCTYPE SINGING PUBLIC "-//SINGING//DTD SINGING mark up//EN" "Singing.v0_1.dtd" []> 
<SINGING BPM="60"> 
<PITCH NOTE="A4,C4,C4"><DURATION BEATS="0.3,0.3,0.3">nationwide</DURATION></PITCH> 
<PITCH NOTE="C4"><DURATION BEATS="0.3">is</DURATION></PITCH> 
<PITCH NOTE="D4"><DURATION BEATS="0.3">on</DURATION></PITCH> 
<PITCH NOTE="F4"><DURATION BEATS="0.3">your</DURATION></PITCH> 
<PITCH NOTE="F4"><DURATION BEATS="0.3">side</DURATION></PITCH> 
</SINGING> 

Potrebbe anche essere necessario questo patch per singing-mode.scm:

@@ -339,7 +339,9 @@ 
(defvar singing-max-short-vowel-length 0.11) 

(define (singing_do_initial utt token) 
- (if (equal? (item.name token) "") 
+ (if (and 
+  (not (equal? nil token)) 
+  (equal? (item.name token) "")) 
     (let ((restlen (car (item.feat token 'rest)))) 
     (if singing-debug 
      (format t "restlen %l\n" restlen)) 

Per impostare il mio ambiente ho utilizzato il festvox fest_build script. Puoi anche download voice_cmu_us_ahw_cg separately.

+0

Hai costruito la tua voce? "voice_cmu_us_ahw_cg" non è disponibile nella lista delle voci correnti. Se è una voce della comunità, potrebbe essere ancora in fase beta. –

+0

@kiran: Ho usato lo script "fest_build" di festvox.org: http://festvox.org/fest_build e la voce specifica è disponibile qui: http://festvox.org/packed/festival/2.4/voices/festvox_cmu_us_ahw_cg .tar.gz – Beau

+0

"Questo software non fa quello che voglio" non è in realtà una domanda di programmazione, ma non posso contrassegnarlo come off-topic a causa del bounty. A meno che non si stia tentando di scrivere codice per risolverlo, sembra una domanda di software generale. – TessellatingHeckler

risposta

1

Sembra che il problema sia nella generazione di telefoni.

voice_kal_diphone utilizza il modello di sintesi UniSyn, mentre voice_cmu_us_ahw_cg utilizza il modello ClusterGen. L'ultimo ha un proprio modello di intonazione e durata (basato sullo stato) invece di intonazione/durata del telefono: probabilmente avete notato che anche la durata non è cambiata nel "brano" generato.

singing-mode.scm tenta di estrarre ciascuna sillaba e modificarne la frequenza. Nel caso del modello ClusterGen, il generatore di onde del modello ignora semplicemente le frequenze e le durate delle sillabe impostate in Target a causa della diversa modellazione.

Di conseguenza abbiamo una migliore qualità della voce (basata sul modello statistico), ma non è possibile modificare direttamente la frequenza.

È possibile trovare una descrizione molto buona della pipeline di generazione here.

Problemi correlati