ginipick commited on
Commit
eab6c03
ยท
verified ยท
1 Parent(s): 0eff675

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -10
app.py CHANGED
@@ -41,27 +41,42 @@ def optimize_gpu_settings():
41
  if 'L40S' in torch.cuda.get_device_name(0):
42
  torch.cuda.set_per_process_memory_fraction(0.95)
43
 
 
 
44
  def analyze_lyrics(lyrics, repeat_chorus=2):
45
- lines = [line.strip() for line in lyrics.split('\n') if line.strip()]
 
 
46
 
 
 
 
 
 
 
 
 
 
 
 
47
  sections = {
48
  'verse': 0,
49
  'chorus': 0,
50
  'bridge': 0,
51
  'total_lines': len(lines)
52
  }
53
-
54
- # ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
55
- current_section = None
56
- last_section_start = 0
57
 
 
58
  section_lines = {
59
  'verse': [],
60
  'chorus': [],
61
  'bridge': []
62
  }
63
 
64
- # ๋ฃจํ”„๋ฅผ ๋Œ๋ฉฐ ํƒœ๊ทธ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด ํ•ด๋‹น ํƒœ๊ทธ ์ „๊นŒ์ง€์˜ ๋ผ์ธ์„ ์ด์ „ ์„น์…˜์— ์ €์žฅ
 
 
 
65
  for i, line in enumerate(lines):
66
  lower_line = line.lower()
67
 
@@ -86,17 +101,26 @@ def analyze_lyrics(lyrics, repeat_chorus=2):
86
  sections['bridge'] += 1
87
  last_section_start = i + 1
88
 
89
- # ๋งˆ์ง€๋ง‰ ๋‚จ์€ ๋ผ์ธ๋“ค์„ ํ˜„์žฌ ์„น์…˜์— ์ถ”๊ฐ€
90
- if current_section is not None:
91
  section_lines[current_section].extend(lines[last_section_start:])
92
 
93
- # ์ฝ”๋Ÿฌ์Šค ๋ฐ˜๋ณต ๋“ฑ ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ
94
  if sections['chorus'] > 0 and repeat_chorus > 1:
95
  original_chorus = list(section_lines['chorus'])
96
  for _ in range(repeat_chorus - 1):
97
  section_lines['chorus'].extend(original_chorus)
98
 
99
- return sections, sum(sections[sec] for sec in ('verse','chorus','bridge')), len(lines), section_lines
 
 
 
 
 
 
 
 
 
100
 
101
 
102
  def calculate_generation_params(lyrics):
 
41
  if 'L40S' in torch.cuda.get_device_name(0):
42
  torch.cuda.set_per_process_memory_fraction(0.95)
43
 
44
+ import logging
45
+
46
  def analyze_lyrics(lyrics, repeat_chorus=2):
47
+ # ๋จผ์ € ๋ผ์ธ๋ณ„๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ๊ณต๋ฐฑ ์ค„ ์ œ๊ฑฐ
48
+ lines = [line.strip() for line in lyrics.split('\n')]
49
+ lines = [line for line in lines if line]
50
 
51
+ # ๋งŒ์•ฝ ์ „์ฒด๊ฐ€ ๋น„์–ด์žˆ๋‹ค๋ฉด ๊ฐ•์ œ๋กœ '.' ํ•œ ์ค„ ์ถ”๊ฐ€
52
+ if not lines:
53
+ lines = ['.']
54
+ else:
55
+ # ๋งˆ์ง€๋ง‰ ์ค„์ด [verse], [chorus], [bridge] ํƒœ๊ทธ๋กœ๋งŒ ๋๋‚˜๋ฉด
56
+ # ์ž„์˜๋กœ '.' ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์‹ค์ œ ๊ฐ€์‚ฌ ๋ผ์ธ์ด ๋˜๋„๋ก ์ฒ˜๋ฆฌ
57
+ last_line_lower = lines[-1].lower()
58
+ if last_line_lower in ['[verse]', '[chorus]', '[bridge]']:
59
+ lines.append('.')
60
+
61
+ # ๊ธฐ๋ณธ ์„น์…˜ ์ •๋ณด
62
  sections = {
63
  'verse': 0,
64
  'chorus': 0,
65
  'bridge': 0,
66
  'total_lines': len(lines)
67
  }
 
 
 
 
68
 
69
+ # ์„น์…˜ ๋ผ์ธ๋“ค์„ ๋‹ด์„ ๋”•์…”๋„ˆ๋ฆฌ
70
  section_lines = {
71
  'verse': [],
72
  'chorus': [],
73
  'bridge': []
74
  }
75
 
76
+ current_section = None
77
+ last_section_start = 0
78
+
79
+ # [verse], [chorus], [bridge] ํƒœ๊ทธ๊ฐ€ ๋‚˜์˜ค๋ฉด ์„น์…˜์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ผ์ธ์„ ์ €์žฅ
80
  for i, line in enumerate(lines):
81
  lower_line = line.lower()
82
 
 
101
  sections['bridge'] += 1
102
  last_section_start = i + 1
103
 
104
+ # ๋งˆ์ง€๋ง‰ ์„น์…˜์— ๋‚จ์•„ ์žˆ๋Š” ๋ผ์ธ๋“ค์„ ์ถ”๊ฐ€
105
+ if current_section is not None and last_section_start < len(lines):
106
  section_lines[current_section].extend(lines[last_section_start:])
107
 
108
+ # ์ฝ”๋Ÿฌ์Šค ๋ฐ˜๋ณต ์ฒ˜๋ฆฌ
109
  if sections['chorus'] > 0 and repeat_chorus > 1:
110
  original_chorus = list(section_lines['chorus'])
111
  for _ in range(repeat_chorus - 1):
112
  section_lines['chorus'].extend(original_chorus)
113
 
114
+ # ์„น์…˜๋ณ„ ๋ผ์ธ์ˆ˜ ๋กœ๊น…
115
+ logging.info(
116
+ f"Section line counts - Verse: {len(section_lines['verse'])}, "
117
+ f"Chorus: {len(section_lines['chorus'])}, "
118
+ f"Bridge: {len(section_lines['bridge'])}"
119
+ )
120
+
121
+ # ๋ฐ˜ํ™˜: ์„น์…˜ ์ •๋ณด, ์ „์ฒด ์„น์…˜ ์ˆ˜, ์ „์ฒด ๋ผ์ธ ์ˆ˜, ๊ฐ ์„น์…˜๋ณ„ ๋ผ์ธ ๋”•์…”๋„ˆ๋ฆฌ
122
+ return sections, (sections['verse'] + sections['chorus'] + sections['bridge']), len(lines), section_lines
123
+
124
 
125
 
126
  def calculate_generation_params(lyrics):