(FILECREATED "25-Jul-84 21:17:58" {ERIS}<SPEECH>HALVORSEN>SPEECHFIX.;1 3069 changes to: (VARS SPEECHFIXCOMS) (FNS MEEF FOOBAR SPEECH.SYNTHSLICE SPEECH.SYNTHTRAJ)) (* Copyright (c) by NIL. All rights reserved.) (PRETTYCOMPRINT SPEECHFIXCOMS) (RPAQQ SPEECHFIXCOMS ((FNS FOOBAR MEEF SPEECH.SYNTHSLICE SPEECH.SYNTHTRAJ))) (DEFINEQ (FOOBAR (LAMBDA (X) (* kbr: "25-Jul-84 16:26") (FOR I FROM 1 TO (ARRAYSIZE X) DO (COND ((>$ (ELT X I) 0.0) (SETF (ELT X I) (x$ 26.38071 (LOG (ELT X I))))) ((<$ (ELT X I) 0.0) (SETF (ELT X I) (x$ 26.38071 (0-$ (LOG (0-$ (ELT X I))))))) (T (SETF (ELT X I) 0.0)))))) (MEEF (LAMBDA NIL (* kbr: "25-Jul-84 16:33") (FOR I FROM 1 TO 10000 DO (SPEECH.BOUT S (FIXR (ELT X (+ 100 (IMOD I 100)))))))) (SPEECH.SYNTHSLICE (LAMBDA (SLICE) (* edited: "25-Jul-84 14:28") (* SPEECH.WAVE created according to contents of SLICE We do 4 periods%, then fake the rest. *) (COND ((NULL SLICE) (SETQ SLICE SPEECH.SLICE))) (PROG (PERIOD0) (COEWAVE.INIT.COEFF SPEECH.COEFF) (COEWAVE.INIT.MEMORY SPEECH.MEMORY) (* PERIOD0 = glottal period. *) (SETQ PERIOD0 (/ SR (PVECTOR.F0 SLICE))) (COND ((ZEROP PERIOD0) (SETQ PERIOD0 100))) (FOR (N ← 1) BY (+ N PERIOD0) WHILE (< N (ARRAYSIZE SPEECH.WAVE)) AS I FROM 1 TO 4 DO (PARCOE.PTC SLICE SPEECH.COEFF) (COEWAVE.CTW SPEECH.COEFF SPEECH.MEMORY SPEECH.WAVE N (IMIN (+ N PERIOD0 -1) (ARRAYSIZE SPEECH.WAVE)))) (FOR N FROM (1+ (x 4 PERIOD0)) TO (ARRAYSIZE SPEECH.WAVE) DO (SETF (ELT SPEECH.WAVE N) (ELT SPEECH.WAVE (+ (x 3 PERIOD0) (\ N PERIOD0)))) (COND (COEWAVE.TRACE (WDISPLAY.DRAWXY N (ELT SPEECH.WAVE N) COEWAVE.WINDOW)))) (RETURN SPEECH.WAVE)))) (SPEECH.SYNTHTRAJ (LAMBDA (TRAJ) (* edited: "25-Jul-84 14:28") (* SPEECH.WAVE created according to contents of TRAJ *) (COND ((NULL TRAJ) (SETQ TRAJ SPEECH.TRAJ))) (PROG NIL (COEWAVE.INIT.COEFF SPEECH.COEFF) (COEWAVE.INIT.MEMORY SPEECH.MEMORY) (* Synthesize%, updating SPEECH.COEFF every 50 samples *) (FOR (N ← 1) BY (+ N 50) WHILE (< N (ARRAYSIZE SPEECH.WAVE)) DO (PARCOE.INTERPOLATE N TRAJ SPEECH.SLICE) (PARCOE.PTC SPEECH.SLICE SPEECH.COEFF) (COEWAVE.CTW SPEECH.COEFF SPEECH.MEMORY SPEECH.WAVE N (IMIN (+ N 49) (ARRAYSIZE SPEECH.WAVE)))) (RETURN SPEECH.WAVE)))) ) (DECLARE: DONTCOPY (FILEMAP (NIL (347 3047 (FOOBAR 357 . 776) (MEEF 778 . 980) (SPEECH.SYNTHSLICE 982 . 2229) ( SPEECH.SYNTHTRAJ 2231 . 3045))))) STOP