Ejemplo n.º 1
0
import ScoreDraft
from ScoreDraftNotes import *
import XiaYYConverter

'''
line= ("zheng", re(5,24), "yue", do(5,48), "li", re(5,24), "cai", mi(5,36), so(5,12), "hua", mi(5,24), la(4,24))
line+=("wu", re(5,24), "you", do(5,48), "hua", re(5,24), "cai", mi(5,24), do(5,12), re(5,12), mi(5,24), BL(24))
seq = [line]

line= ("er", mi(5,12), so(5,12), "yue", la(5,48), "jian", do(6,24), "cai", la(5, 48), "hua", so(5,24), mi(5,24))
line+= ("hua", la(5,24), "you", mi(5,48), "zheng", re(5,12), mi(5,12), "kai", do(5,24), BL(24))
seq += [line]

line= ("er", do(5,12), re(5,12), "yue", mi(5,12), so(5,12), "jian", mi(5,48), "cai", re(5,24), "hua", do(5,24))
line+=("hua", la(4,24), "you", do(5,48), "zheng", la(4,12), do(5,12), "kai", la(4,96), BL(96))
seq += [line]
'''

seq=[ ("ming", so(5,16), "tian", so(5,16), "ni", so(5,16), "shi", so(5,16), "fou", mi(5,16), "hui", fa(5,16), "xiang", so(5,48), "qi", ti(5,32)), BL(16)]
seq+=[ ("zuo", la(5,16), "tian", la(5,16), "ni", la(5,16), "xie", la(5,16), "de", fa(5,16), "ri", la(5,16), "ji", so(5,72)), BL(24)]
XiaYY = ScoreDraft.XiaYY_UTAU()
ScoreDraft.UtauDraftSetLyricConverter(XiaYY, XiaYYConverter.XiaYYConverter)

doc=ScoreDraft.Document()
doc.setTempo(60)
#doc.setReferenceFreqeuncy(440.0)
doc.sing(seq, XiaYY)
doc.mixDown('XiaYY.wav')

Ejemplo n.º 2
0
import ScoreDraft
from ScoreDraftNotes import *
import VCCVEnglishConverter

doc=ScoreDraft.Document()
doc.setTempo(100)


#seq = [ ('la', do(5,48), 'la', do(5,48), 'la', so(5,48), 'la', so(5,48), 'la',la(5,48), 'la',la(5,48), 'la',so(5,96))]

#seq = [ ("g6d", mi(5,24), "bI", so(5,24), "zhO", so(5,12), la(5,36) )]
#seq += [ ("mi", mi(5,24), "gat", so(5,16), "t6", so(5,8), "gO", so(5,12), la(5,36))]
#seq += [ ("mi", so(5,36), "yO", mi(5,12), "mI", so(5,24), "O", re(5,72)), BL(48)]

#seq = [ ('sk0r', 36, 1.0, 0.7, 'dr@ft', 36, 1.0, 0.6)]

#seq = [ ('pI', 24, 2.0, 2.0, 'dhan', 24, 1.5, 1.0)]

seq = [ ("ma", mi(5,24), "ma", re(5,24), mi(5,48)), BL(24)]
seq +=[ ("do",mi(5,24),"yO", so(5,24), "ri", la(5,24), "mem", mi(5,12),re(5,12), "b3", re(5,72)), BL(24)]
seq +=[ ("dhx",do(5,12), re(5,12), "Od", mi(5,24), "str0l", so(5,24), "h@t", so(5,72)), BL(24)]
seq +=[ ("yO", mi(5,12),ti(5,36)),BL(12),("gAv", la(5,24), "t6",so(5,12), "mE", mi(5,96))]

singer = ScoreDraft.Yami_UTAU()
ScoreDraft.UtauDraftSetLyricConverter(singer, VCCVEnglishConverter.VCCVEnglishConverter)
singer.tune("constvc 80.0")

doc.sing(seq, singer)
doc.mixDown('vccv.wav')

Ejemplo n.º 3
0
                                                       24), "cai", mi(5, 36),
        so(5, 12), "hua", mi(5, 24), la(4, 24))
line += ("wu", re(5, 24), "you", do(5, 48), "hua", re(5, 24), "cai", mi(5, 24),
         do(5, 12), re(5, 12), mi(5, 24), BL(24))
seq = [line]

line = ("er", mi(5, 12), so(5, 12), "yue", la(5, 48), "jian", do(6, 24), "cai",
        la(5, 48), "hua", so(5, 24), mi(5, 24))
line += ("hua", la(5, 24), "you", mi(5, 48), "zheng", re(5, 12), mi(5,
                                                                    12), "kai",
         do(5, 24), BL(24))
seq += [line]

line = ("er", do(5, 12), re(5, 12), "yue", mi(5, 12), so(5, 12), "jian",
        mi(5, 48), "cai", re(5, 24), "hua", do(5, 24))
line += ("hua", la(4, 24), "you", do(5, 48), "zheng", la(4, 12), do(5,
                                                                    12), "kai",
         la(4, 96), BL(96))
seq += [line]

doc.setReferenceFrequency(440.0)

WanEr = ScoreDraft.WanEr_UTAU()
WanEr.tune("rap_freq 2.0")

ScoreDraft.UtauDraftSetLyricConverter(WanEr,
                                      TsuroVCVConverter.TsuroVCVConverter)

doc.sing(seq, WanEr)
doc.mixDown('vcv.wav')
Ejemplo n.º 4
0
#!/usr/bin/python3

import sys
sys.path += ['../']

import ScoreDraft
from ScoreDraftNotes import *
import JPVCVConverter

doc = ScoreDraft.Document()
doc.setTempo(120)

seq = [('あ', mi(5, 48), 'り', so(5, 48), 'が', ti(5, 48), 'とぅ', do(6, 144),
        ti(5, 144), so(5, 144))]

# voicebank: please copy the "voice/uta" folder from UTAU
doc.sing(seq, ScoreDraft.uta_UTAU())
'''
Ayaka= ScoreDraft.Ayaka2_UTAU()
ScoreDraft.UtauDraftSetLyricConverter(Ayaka, JPVCVConverter.JPVCVConverter)
doc.sing(seq, Ayaka)
'''

doc.mixDown('uta.wav')
Ejemplo n.º 5
0
line = ("zheng", re(5, 24), "yue", do(5, 48), "li", re(5,
                                                       24), "cai", mi(5, 36),
        so(5, 12), "hua", mi(5, 24), la(4, 24))
line += ("wu", re(5, 24), "you", do(5, 48), "hua", re(5, 24), "cai", mi(5, 24),
         do(5, 12), re(5, 12), mi(5, 24), BL(24))
seq = [line]

line = ("er", mi(5, 12), so(5, 12), "yue", la(5, 48), "jian", do(6, 24), "cai",
        la(5, 48), "hua", so(5, 24), mi(5, 24))
line += ("hua", la(5, 24), "you", mi(5, 48), "zheng", re(5, 12), mi(5,
                                                                    12), "kai",
         do(5, 24), BL(24))
seq += [line]

line = ("er", do(5, 12), re(5, 12), "yue", mi(5, 12), so(5, 12), "jian",
        mi(5, 48), "cai", re(5, 24), "hua", do(5, 24))
line += ("hua", la(4, 24), "you", do(5, 48), "zheng", la(4, 12), do(5,
                                                                    12), "kai",
         la(4, 96), BL(96))
seq += [line]

Ayaka = ScoreDraft.Ayaka_UTAU()
ScoreDraft.UtauDraftSetLyricConverter(
    Ayaka, CVVCChineseConverter.CVVCChineseConverter)

doc = ScoreDraft.Document()
doc.setReferenceFreqeuncy(440.0)
doc.sing(seq, Ayaka)
doc.mixDown('cvvc2.wav')
Ejemplo n.º 6
0
'''
seq = [ ("- gU", mi(5,18), "U d", mi(5,6), "baI", so(5,18), "aI dZ", so(5,6), "dZoU", so(5,12), la(5,36) )]
seq += [ ("- mi", mi(5,18), "i g", mi(5,6), "gA", so(5,12), "A t", so(5,4), "t@", so(5,6), "@ g", so(5,2), "goU", so(5,12), la(5,36))]
seq += [ ("- mi", so(5,36), "i oU", mi(5,9), "oU m", mi(5,3), "maI", so(5,24), "aI oU", re(5,72)), BL(48)]

seq += [ ("- gU", 18, 0.75, 1.0, "U d", 6, 1.0, 1.0, "baI", 18, 0.75, 1.0, "aI dZ", 6, 1.0, 1.0,  "dZoU", 36, 1.0, 0.5 ), BL(12)]
seq += [ ("- mi", 18, 0.75, 1.0, "i g", 6, 1.0, 1.0, "gA", 12, 0.75, 1.0, "A t", 4, 1.0, 1.0, "t@", 6, 1.0, 1.0, "@ g", 2, 1.0, 1.0, "goU", 36, 1.0, 0.5), BL(12)]
'''

# seq = [ ('- paI', 20, 2.0, 2.0, 'aI T', 4, 2.0, 2.0, 'TA', 20, 1.5, 1.0, 'A n-', 4, 1.0, 1.0)]
#seq = [ ('- sk', 4, 1.0, 1.0, 'kO', 20, 1.0, 0.9, 'O r', 12, 0.9, 0.7, 'dr', 4, 1.0, 1.0, 'r{', 20, 1.0, 0.7, '{ f', 4, 0.7, 0.7, 'f t-', 4, 0.7, 0.6)]

seq = [("gUd", mi(5, 24), "baI", so(5, 24), "dZoU", so(5, 12), la(5, 36))]
seq += [("mi", mi(5, 24), "gAt", so(5, 16), "t@", so(5, 8), "goU", so(5, 12),
         la(5, 36))]
seq += [("mi", so(5, 36), "oU", mi(5, 12), "maI", so(5, 24), "oU", re(5, 72)),
        BL(48)]

#seq = [ ('skOr', 36, 1.0, 0.7, 'dr{ft', 36, 1.0, 0.6)]

#seq = [ ('paI', 24, 2.0, 2.0, 'TAn', 24, 1.5, 1.0)]

# Kasane Teto English Voicebank (CVVC)
# Link to voicebank: http://kasaneteto.jp/en/voicebank.html
Teto = ScoreDraft.TetoEng_UTAU()
ScoreDraft.UtauDraftSetLyricConverter(Teto,
                                      TTEnglishConverter.TTEnglishConverter)

doc.sing(seq, Teto)
doc.mixDown('cvvc.wav')
Ejemplo n.º 7
0
def produce_speech(sentence,
                   output_path="",
                   playback=True,
                   by_sentence=False,
                   sentence_number='1'):
    try:
        return_message = ""
        if not os.path.exists(temp_dir):
            os.mkdir(temp_dir)
        filename = "temp" + sentence_number + ".wav"
        temp_filename = os.path.join(temp_dir, filename)

        doc = ScoreDraft.Document()
        doc.setTempo(120)

        sn = 24  #Short note
        ln = 48  #Long note

        singer = ScoreDraft.Yami_UTAU()
        ScoreDraft.UtauDraftSetLyricConverter(
            singer, VCCVEnglishConverter.VCCVEnglishConverter)
        singer.tune('CZMode')

        sequence = []
        for word in sentence:
            subsequence = ()
            for syllable in word:
                if syllable[0] == 'rest':
                    if len(subsequence) != 0:
                        sequence.append(subsequence)
                        subsequence = ()
                    if syllable[1] == -3:  #Long pause
                        sequence.append(BL(ln))
                    elif syllable[1] == -2:  #Short pause
                        sequence.append(BL(sn))
                elif syllable[0] != '':
                    if syllable[1] == 0:  #Unstressed syllable
                        subsequence += (syllable[0], mi(5, sn))
                    elif syllable[1] == 2:  #Secondary stressed syllable
                        subsequence += (syllable[0], fa(5, sn))
                    elif syllable[1] == 1:  #Primary stressed syllable
                        subsequence += (syllable[0], so(5, sn))
            if len(subsequence) != 0:
                sequence.append(subsequence)

        doc.sing(sequence, singer)
        doc.mixDown(temp_filename)
        rendered_filename = temp_filename

        if output_path != "":
            try:
                if not "." in os.path.basename(
                        output_path) or os.path.basename(
                            output_path).startswith("."):
                    if not os.path.exists(os.path.abspath(output_path)):
                        os.mkdir(os.path.abspath(output_path))
                    filename = 'sentence' + sentence_number + '-on-{}.wav'.format(
                        str(datetime.now()).replace(':', '-'))
                    output_filename = os.path.join(output_path, filename)
                else:
                    if not os.path.exists(os.path.dirname(output_path)):
                        os.mkdir(os.path.dirname(output_path))
                    output_filename = output_path
                    if not output_path.endswith(".wav"):
                        output_filename += sentence_number * by_sentence + ".wav"
                shutil.copy(temp_filename, output_filename)
                rendered_filename = output_filename
                return_message += "----Rendered .wav file is available at " + rendered_filename + "\n"
            except:
                pass
                return_message += "!!!-An error occured during saving rendered file at output path\n"

    except:
        return_message += "!!!-An error occured during rendering process\n"
    try:
        if playback:
            chunk = 1024
            file = wave.open(rendered_filename, "rb")
            player = pyaudio.PyAudio()
            stream = player.open(format=player.get_format_from_width(
                file.getsampwidth()),
                                 channels=file.getnchannels(),
                                 rate=file.getframerate(),
                                 output=True)

            data = file.readframes(chunk)
            while len(data) > 0:
                stream.write(data)
                data = file.readframes(chunk)

            stream.stop_stream()
            stream.close()

            player.terminate()
            #            playsound(rendered_filename)
            pass
    except:
        pass
    shutil.rmtree(temp_dir, ignore_errors=True)
    return return_message
Ejemplo n.º 8
0
#!/usr/bin/python3

import sys
sys.path += ['../']

import ScoreDraft
from ScoreDraftNotes import *
import VCCVEnglishConverter

doc = ScoreDraft.Document()
doc.setTempo(100)

seq = [('twin', do(5, 48), 'k9l', do(5, 48), 'twin', so(5, 48), 'k9l',
        so(5, 48), 'li', la(5, 48), 't9l', la(5, 48), 'sta', so(5, 96))]

Yami = ScoreDraft.Yami_UTAU()
ScoreDraft.UtauDraftSetLyricConverter(
    Yami, VCCVEnglishConverter.VCCVEnglishConverter)

doc.sing(seq, Yami)
doc.mixDown('vccv.wav')