mirror of
https://github.com/RVC-Boss/GPT-SoVITS.git
synced 2025-08-21 18:49:47 +08:00
fix _merge_yi crash
This commit is contained in:
parent
dbf7702b54
commit
62431b1eae
@ -650,8 +650,10 @@ class ToneSandhi:
|
||||
# output seg: [['听一听', 'v']]
|
||||
def _merge_yi(self, seg: List[Tuple[str, str]]) -> List[Tuple[str, str]]:
|
||||
new_seg = []
|
||||
i = 0
|
||||
# function 1
|
||||
for i, (word, pos) in enumerate(seg):
|
||||
while i < len(seg):
|
||||
word, pos = seg[i]
|
||||
if (
|
||||
i - 1 >= 0
|
||||
and word == "一"
|
||||
@ -660,22 +662,16 @@ class ToneSandhi:
|
||||
and seg[i - 1][1] == "v"
|
||||
and seg[i + 1][1] == "v"
|
||||
):
|
||||
new_seg[i - 1][0] = new_seg[i - 1][0] + "一" + new_seg[i - 1][0]
|
||||
merged = seg[i - 1][0] + "一" + seg[i + 1][0]
|
||||
new_seg[-1] = [merged, seg[i - 1][1]]
|
||||
i += 2
|
||||
else:
|
||||
if (
|
||||
i - 2 >= 0
|
||||
and seg[i - 1][0] == "一"
|
||||
and seg[i - 2][0] == word
|
||||
and pos == "v"
|
||||
and seg[i - 2][1] == "v"
|
||||
):
|
||||
continue
|
||||
else:
|
||||
new_seg.append([word, pos])
|
||||
new_seg.append([word, pos])
|
||||
i += 1
|
||||
seg = new_seg
|
||||
new_seg = []
|
||||
# function 2
|
||||
for i, (word, pos) in enumerate(seg):
|
||||
for word, pos in seg:
|
||||
if new_seg and new_seg[-1][0] == "一":
|
||||
new_seg[-1][0] = new_seg[-1][0] + word
|
||||
else:
|
||||
|
Loading…
x
Reference in New Issue
Block a user