-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathHZYS.py
55 lines (47 loc) · 2.12 KB
/
HZYS.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from huoZiYinShua import *
import argparse
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="使用程序进行电棍活版印刷")
parser.add_argument("-t", "--text", help="要输出的文字", default="我是你跌")
parser.add_argument("-d", "--directplay", help="直接播放声音", default=False, action="store_true")
parser.add_argument("-o", "--output", help="输出音频文件名称,例如./输出.wav", default="./Output.wav")
parser.add_argument("-f", "--file", help="读取的文件名称,例如./输入.txt", default="")
parser.add_argument("-y", "--inYsddMode", help="匹配到特定文字时使用原声大碟", default=False, action="store_true")
parser.add_argument("-p", "--pitchMult", help="音调偏移程度,大于1升高音调,小于1降低音调,建议[0.5, 2]", default=1)
parser.add_argument("-s", "--speedMult", help="播放速度,大于1加速,小于1减速,建议[0.5, 2]", default=1)
parser.add_argument("-r", "--reverse", help="频音的成生放倒", default=False, action="store_true")
parser.add_argument("-n", "--norm", help="统一所有字音量", default=False, action="store_true")
#新建活字印刷类实例
HZYS = huoZiYinShua("./settings.json")
args = parser.parse_args()
#从文件读取输入
if (args.file != ""):
#读取要活字印刷的内容
textFile = open(args.file, encoding="utf8")
textToRead = textFile.read()
textFile.close()
#使用文本,不读取文件
else:
textToRead = args.text
print("输出文本:" + textToRead)
print("生成中...")
#判定命令行参数,确定是否直接播放声音
#直接播放
if (args.directplay == True):
print("直接播放")
HZYS.directPlay(textToRead,
inYsddMode=args.inYsddMode,
pitchMult=float(args.pitchMult),
speedMult=float(args.speedMult),
reverse=args.reverse,
norm=args.norm)
#导出
else:
HZYS.export(textToRead,
filePath=args.output,
inYsddMode=args.inYsddMode,
pitchMult=float(args.pitchMult),
speedMult=float(args.speedMult),
reverse=args.reverse,
norm=args.norm)
programPause = input("按下回车以退出...")