Skip to content

Commit

Permalink
调整细节
Browse files Browse the repository at this point in the history
Signed-off-by: allan716 <525223688@qq.com>
  • Loading branch information
allanpk716 committed Nov 11, 2021
1 parent d5f2dcd commit 9d2f8d6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
16 changes: 9 additions & 7 deletions internal/pkg/sub_helper/sub_helper.go
Expand Up @@ -369,19 +369,19 @@ func MergeMultiDialogue4EngSubtitle(inSubParser *subparser.FileInfo) {
inSubParser.DialoguesEx = merger.Get()
}

// GetVADINfoFromSub 跟下面的 GetVADINfoFromSubNeedOffsetTime 函数功能一致
func GetVADINfoFromSub(infoSrc *subparser.FileInfo, FrontAndEndPer float64, SubUnitMaxCount int) ([]SubUnit, error) {
return GetVADINfoFromSubNeedOffsetTime(infoSrc, FrontAndEndPer, SubUnitMaxCount, 0)
}

/*
GetVADINfoFromSub
GetVADINfoFromSubNeedOffsetTime 只不过这里可以加一个每一句话固定的偏移时间
这里的字幕要求是完整的一个字幕
1. 抽取字幕的时间片段的时候,暂定,前 15% 和后 15% 要避开,前奏、主题曲、结尾曲
2. 将整个字幕,抽取连续 5 句对话为一个单元,提取时间片段信息
3. 可能还有一个需求,默认的模式是每五句话一个单元,还有一种模式是每一句话向后找到连续的四句话组成一个单元,允许重叠
目前看到的情况是前者的抽样率太低,需要使用后者的逻辑
*/
func GetVADINfoFromSub(infoSrc *subparser.FileInfo, FrontAndEndPer float64, SubUnitMaxCount int) ([]SubUnit, error) {
return GetVADINfoFromSubNeedOffsetTime(infoSrc, FrontAndEndPer, SubUnitMaxCount, 0)
}

// GetVADINfoFromSubNeedOffsetTime 跟上面的函数功能一致,只不过这里可以加一个每一句话固定的偏移时间
func GetVADINfoFromSubNeedOffsetTime(infoSrc *subparser.FileInfo, FrontAndEndPer float64, SubUnitMaxCount int, offsetTime float64) ([]SubUnit, error) {
if SubUnitMaxCount < 0 {
SubUnitMaxCount = 0
Expand Down Expand Up @@ -430,7 +430,9 @@ func GetVADINfoFromSubNeedOffsetTime(infoSrc *subparser.FileInfo, FrontAndEndPer
} else {
srcSubUnitList = append(srcSubUnitList, *srcOneSubUnit)
srcOneSubUnit = NewSubUnit()
i = i - SubUnitMaxCount + SubUnitMaxCount/5
// TODO 这里决定了插入数据的密度,有待测试
//i = i - SubUnitMaxCount + SubUnitMaxCount/5
i = i - SubUnitMaxCount + SubUnitMaxCount/2
}
}
if srcOneSubUnit.GetDialogueCount() > 0 {
Expand Down
2 changes: 1 addition & 1 deletion internal/pkg/sub_timeline_fixer/fixer.go
Expand Up @@ -536,7 +536,7 @@ func (s *SubTimelineFixer) GetOffsetTimeV2(infoBase, infoSrc *subparser.FileInfo
println(fmt.Sprintf("Old Mean: %v SD: %v Per: %v", oldMean, oldSd, per))
println(fmt.Sprintf("New Mean: %v SD: %v Per: %v", newMean, newSd, per))

return false, -1, -1, nil
return true, newMean, newSd, nil
}

// GetOffsetTimeV3 使用 VAD 检测语音是否有人声,输出连续的点标记,再通过 SimHash 进行匹配,找到最佳的偏移时间
Expand Down

0 comments on commit 9d2f8d6

Please sign in to comment.