Home
How to Install
Documentation
Festival/Festvox Overview
Quideline for developing BTTS
Text analysis
Lexicon
Diphone Database
Interfacing and integration
Appendices
Referrences
People
Publications
Join Us
Downloads
Screnshots
Mailing list
Related links
 
SourceForge.net Logo
 

Appendices

 
Bangla IPA Phoneset Go to Introduction
Phoneset mapping for Bangla Go to Admission
Phoneset Go to TOEFL and GRE Requirements
Diphone generation schema file Go to Classification of Student
Sample list of nonsense words Go to Academic Regulations
Festival,Festvox,Speech Tools installation Go to Awards and Scholarships
Future Development Go to Degrees Offered

 

 

Diphone Generation Schema File


This is the file “BD_Schema.scm” that produces the non-sense words for diphone using the Phoneset of Bangla.This generates all the combination of diphone possible in Bangla, though it contains some combination which are never used.Those are excluded manually later from the generated list.However this file can be edited to produce more efficient diphone list for Bangla.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;;
;;; American Internation University Bangladesh ;;;
;;; ;;;
;;; Permission is hereby granted, free of charge, to use and distribute ;;;
;;; this software and its documentation without restriction, including ;;;
;;; without limitation the rights to use, copy, modify, merge, publish, ;;;
;;; distribute, sublicense, and/or sell copies of this work, and to ;;;
;;; permit persons to whom this work is furnished to do so, subject to ;;;
;;; the following conditions: ;;;
;;; 1. The code must retain the above copyright notice, this list of ;;;
;;; conditions and the following disclaimer. ;;;
;;; 2. Any modifications must be clearly marked as such. ;;;
;;; 3. Original authors' names are not deleted. ;;;
;;; 4. The authors' names are not used to endorse or promote products ;;;
;;; derived from this software without specific prior written ;;;
;;; permission. ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; ;;
;;; Scheme for a generating diphones for Bangla ;;
;;; Inspired by Steve Isard's diphone schemas from CSTR, University of ;;
;;; Edinburgh ;;
;;; ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;; for generating diphone list for Bangla

(set! vowels '(a A i u ri e oi o ow I I: U RI e: oi: o: ow: RA ae))
(set! consonants '(k kh g gh n: ca ch j jh ny t th d dh n to tho do dho p ph b bh m ja r l sh s h ro ro: : ay Z))
;(set! onset-only '(h y w))
(set! nocvcs '())
(set! coda-only '(n: ny ro ro: : ay Z))
;(set! syllabics '(i o))
(set! silence '#)

(set! cvc-carrier '((# t aa ) (aa #)))
(set! vc-carrier '((# t aa t) (aa #)))
(set! cv-carrier '((# t aa ) (t aa #)))
(set! cc-carrier '((# t aa ) (aa t aa #)))
(set! vv-carrier '((# t aa t) (t aa #)))
(set! silv-carrier '(() (t aa #)))
(set! silc-carrier '(() (aa t aa #)))
(set! vsil-carrier '((# t aa t ) ()))
(set! csil-carrier '((# t aa t aa) ()))

;;; Open and vowels to (syllable end after vowel)
(set! vcopen-carrier '((# t aa t) (aa #)))
;;; Syllabics
;(set! syllabics-carrier1 '((pau t aa ) ( aa pau))) ;; c-syl
;(set! syllabics-carrier2 '((pau t aa t) (aa pau))) ;; syl-c
;(set! syllabics-carrier3 '((pau t aa t) (t aa pau))) ;; syl-v
;(set! syllabics-carrier4 '((pau t aa t) (t aa pau))) ;; syl-syl

;;; These functions simply fill out the nonsense words
;;; from the carriers and vowel consonant definitions

(define (list-cvcs)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append c "-" v) (string-append v "-" c))
(append (car cvc-carrier) (list c v c) (car (cdr cvc-carrier)))))
(remove-list consonants nocvcs)))
vowels)))

(define (list-vcs)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append v "-" c))
(append (car vc-carrier) (list v c) (car (cdr vc-carrier)))))
nocvcs))
vowels)))

(define (list-cvs)
(apply
append
(mapcar
(lambda (c)
(mapcar
(lambda (v)
(list
(list (string-append c "-" v))
(append (car cv-carrier) (list c v) (car (cdr cv-carrier)))))
vowels))
nocvcs)))

(define (list-vvs)
(apply
append
(mapcar
(lambda (v1)
(mapcar
(lambda (v2)
(list
(list (string-append v1 "-" v2))
(append (car vv-carrier) (list v1 v2) (car (cdr vv-carrier)))))
vowels))
vowels)))

(define (list-ccs)
(apply
append
(mapcar
(lambda (c1)
(mapcar
(lambda (c2)
(list
(list (string-append c1 "-" c2))
(append (car cc-carrier) (list c1 '- c2) (car (cdr cc-carrier)))))
(remove-list consonants coda-only)))
(remove-list consonants onset-only))))

(define (list-silv)
(mapcar
(lambda (v)
(list
(list (string-append silence "-" v))
(append (car silv-carrier) (list silence v) (car (cdr silv-carrier)))))
vowels))

(define (list-silc)
(mapcar
(lambda (c)
(list
(list (string-append silence "-" c))
(append (car silc-carrier) (list silence c) (car (cdr silc-carrier)))))
(remove-list consonants coda-only)))

(define (list-vsil)
(mapcar
(lambda (v)
(list
(list (string-append v "-" silence))
(append (car vsil-carrier) (list v silence) (car (cdr vsil-carrier)))))
vowels))

(define (list-csil)
(mapcar
(lambda (c)
(list
(list (string-append c "-" silence))
(append (car csil-carrier) (list c silence) (car (cdr csil-carrier)))))
(remove-list consonants onset-only)))


(define (list-vcopen)
(apply
append
(mapcar
(lambda (v)
(mapcar
(lambda (c)
(list
(list (string-append v "$-" c))
(append (car vc-carrier) (list v '- c) (car (cdr vc-carrier)))))
consonants))
vowels)))

(define (list-syllabics)
(append
(apply
append
(mapcar
(lambda (s)
(mapcar
(lambda (c)
(list
(list (string-append c "-" s))
(append (car syllabics-carrier1) (list c s) (car (cdr syllabics-carrier1)))))
(remove-list consonants onset-only)))
syllabics))
(apply
append
(mapcar
(lambda (s)
(mapcar
(lambda (c)
(list
(list (string-append s "-" c))
(append (car syllabics-carrier2) (list s '- c) (car (cdr syllabics-carrier2)))))
(remove-list consonants coda-only)))
syllabics))
(apply
append
(mapcar
(lambda (s)
(mapcar
(lambda (v)
(list
(list (string-append s "-" v))
(append (car syllabics-carrier3) (list s '- v) (car (cdr syllabics-carrier3)))))
vowels))
syllabics))))

;;; End of individual generation functions

(define (diphone-gen-list)
"(diphone-gen-list)
Returns a list of nonsense words as phone strings."
(append
(list-cvcs) ;; consonant-vowel and vowel-consonant
(list-vcs) ;; one which don't go in cvc
(list-cvs) ;;
(list-vvs) ;; vowel-vowel
(list-ccs) ;; consonant-consonant
; (list-syllabics)
(list-silv)
(list-silc)
(list-csil)
(list-vsil)
(list
'(("#-#") (# t aa t aa # #)))
; (list-vcopen) ;; open vowels
))

(set! bangla2eng_map
'((a a)
(A aa)
(i i)
(u u)
(e e)
(ri ri)
(oi oi)
(o o)
(ow ow)
(k k)
(kh kha)
(g g)
(gh gh)
(n: n)
(ca cha)
(ch cha)
(j j)
(jh jh)
(ny nya)
(t t)
(th tha)
(d da)
(dh dha)
(n na)
(to th)
(tho tho)
(do do)
(dho dho)
(p po)
(ph pho)
(b bo)
(bh bho)
(m mo)
(ja ja)
(ay ay)
(r ro)
(l lo)
(sh sho)
(s sa)
(h ha)
(ro rho)
(ro: rhoo)
(I i)
(I: i)
(U u)
(RI ri)
(e: e)
(oi: oi)
(o: o)
(ow: ow)
(RA ra)
(Z z)
(ae ae)
))


(define (Diphone_Prompt_Word utt)
"(Diphone_Prompt_Word utt)
Specify specific modifications of the utterance before synthesis
specific to this particular phone set."
(mapcar
(lambda (s)
(let ((n (item.name s))
(newn (cdr (assoc_string (item.name s) bangla2eng_map))))
(cond
((cdr newn) ;; its a dual one
(let ((newi (item.insert s (list (car (cdr newn))) 'after)))
(item.set_feat newi "end" (item.feat s "end"))
(item.set_feat s "end"
(/ (+ (item.feat s "segment_start")
(item.feat s "end"))
2))
(item.set_name s (car newn))))
(newn
(item.set_name s (car newn)))
(t
;; as is
))))
(utt.relation.items utt 'Segment))
utt)

(define (Diphone_Prompt_Setup)
"(Diphone_Prompt_Setup)
Called before synthesizing the prompt waveforms. Cross language prompts from UK male (for Bangla Male)."
(voice_rab_diphone) ;; UK male voice
(set! FP_F0 90)
)


(provide 'bd_schema)

 

Page maintained by Imrul Amir Rahat.amir.rahat@gmail.com