Blame view

volia/skyrim.py 1.52 KB
acad79ac3   quillotm   Generate wav file...
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
56
  
  import argparse
  from utils import SubCommandRunner
  from core.data import read_lst
  import os
  
  
  
  def lst2wav(lst: str, root: str, outfile: str):
      lst_ = read_lst(lst)
  
      with open(outfile, "w") as f:
          for id_ in lst_:
              # Split id
              splited = id_.split(",")
  
              # Get language
              language = None
              if splited[0] == "en-us":
                  language = "english"
              elif splited[0] == "":
                  language = "french"
  
              # Create wav filename
              splited3 = splited[3].splited(".")
              wav = "-".join(splited3) + ".wav"
  
              # Create full path
              full_path = os.path.join(language, "wave-audio", wav)
  
              f.write(f"{id_} {full_path}
  ")
          pass
      pass
  
  
  if __name__ == '__main__':
      # Main parser
      parser = argparse.ArgumentParser(description="Skyrim data-management commands")
      subparsers = parser.add_subparsers(title="action")
  
      parser_lst2wav = subparsers.add_parser("lst2wav", help="Generate wav file from lst")
      parser_lst2wav.add_argument("--lst", type=str, help="list file .lst")
      parser_lst2wav.add_argument("--root", type=str, help="root directory with audio files")
      parser_lst2wav.add_argument("--outfile", type=str, help="output wav.scp-like file")
      parser_lst2wav.set_defaults(which="lst2wav")
  
      # Parse
      args = parser.parse_args()
  
      # Run commands
      runner = SubCommandRunner({
          "lst2wav" : lst2wav
      })
  
      runner.run(args.which, args.__dict__, remove="which")