|
|
@@ -7,14 +7,11 @@ import (
|
|
|
"github.com/allanpk716/ChineseSubFinder/internal/logic/sub_parser/ass"
|
|
|
"github.com/allanpk716/ChineseSubFinder/internal/logic/sub_parser/srt"
|
|
|
"github.com/allanpk716/ChineseSubFinder/internal/pkg/sub_parser_hub"
|
|
|
- "github.com/go-echarts/go-echarts/v2/charts"
|
|
|
"github.com/go-echarts/go-echarts/v2/opts"
|
|
|
+ "github.com/grd/stat"
|
|
|
"github.com/james-bowman/nlp"
|
|
|
"github.com/james-bowman/nlp/measures/pairwise"
|
|
|
"gonum.org/v1/gonum/mat"
|
|
|
- "math/rand"
|
|
|
- "os"
|
|
|
-
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
|
@@ -166,9 +163,15 @@ func GetOffsetTime(baseEngSubFPath, srcSubFPath string) (time.Duration, error) {
|
|
|
} else {
|
|
|
timeFormat = timeFormatSrt
|
|
|
}
|
|
|
+
|
|
|
+ var startDiffTimeLineData = make([]opts.LineData, 0)
|
|
|
+ var endDiffTimeLineData = make([]opts.LineData, 0)
|
|
|
+ var startDiffTimeList = make(stat.Float64Slice, 0)
|
|
|
+ var endDiffTimeList = make(stat.Float64Slice, 0)
|
|
|
+ var xAxis = make([]string, 0)
|
|
|
// 上面找出了连续匹配 maxCompareDialogue:N 次的字幕语句块
|
|
|
// 求出平均时间偏移
|
|
|
- for _, matchIndexItem := range matchIndexList {
|
|
|
+ for mIndex, matchIndexItem := range matchIndexList {
|
|
|
|
|
|
for i := 0; i < maxCompareDialogue; i++ {
|
|
|
// 这里会统计连续的这 5 句话的时间差
|
|
|
@@ -199,6 +202,14 @@ func GetOffsetTime(baseEngSubFPath, srcSubFPath string) (time.Duration, error) {
|
|
|
TimeDiffStart := baseTimeStart.Sub(srtTimeStart)
|
|
|
TimeDiffEnd := baseTimeEnd.Sub(srtTimeEnd)
|
|
|
|
|
|
+ startDiffTimeLineData = append(startDiffTimeLineData, opts.LineData{Value: TimeDiffStart.Seconds()})
|
|
|
+ endDiffTimeLineData = append(endDiffTimeLineData, opts.LineData{Value: TimeDiffEnd.Seconds()})
|
|
|
+
|
|
|
+ startDiffTimeList = append(startDiffTimeList, TimeDiffStart.Seconds())
|
|
|
+ endDiffTimeList = append(endDiffTimeList, TimeDiffEnd.Seconds())
|
|
|
+
|
|
|
+ xAxis = append(xAxis, fmt.Sprintf("%d_%d", mIndex, i))
|
|
|
+
|
|
|
println(fmt.Sprintf("Diff Start-End: %s - %s Base[%d] %s-%s '%s' <--> Src[%d] %s-%s '%s'",
|
|
|
TimeDiffStart, TimeDiffEnd,
|
|
|
tmpBaseIndex, infoBase.DialoguesEx[tmpBaseIndex].StartTime, infoBase.DialoguesEx[tmpBaseIndex].EndTime, infoBase.DialoguesEx[tmpBaseIndex].EnLine,
|
|
|
@@ -207,32 +218,17 @@ func GetOffsetTime(baseEngSubFPath, srcSubFPath string) (time.Duration, error) {
|
|
|
println("---------------------------------------------")
|
|
|
}
|
|
|
|
|
|
- // 1.New 一个条形图对象
|
|
|
- bar := charts.NewBar()
|
|
|
- // 2.设置 标题 和 子标题
|
|
|
- bar.SetGlobalOptions(charts.WithTitleOpts(opts.Title{
|
|
|
- Title: "My first bar chart generated by go-echarts",
|
|
|
- Subtitle: "It's extremely easy to use, right?",
|
|
|
- }))
|
|
|
-
|
|
|
- // 3.设置 数据组
|
|
|
- bar.SetXAxis([]string{"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"}).
|
|
|
- AddSeries("Category A", generateBarItems()).
|
|
|
- AddSeries("Category B", generateBarItems())
|
|
|
- // 4.绘图 生成html
|
|
|
- f, _ := os.Create("bar.html")
|
|
|
- bar.Render(f)
|
|
|
-
|
|
|
- return 0, nil
|
|
|
-}
|
|
|
+ mean := stat.Mean(startDiffTimeList)
|
|
|
+ sd := stat.Sd(startDiffTimeList)
|
|
|
|
|
|
-// 数据生成数据
|
|
|
-func generateBarItems() []opts.BarData {
|
|
|
- items := make([]opts.BarData, 0)
|
|
|
- for i := 0; i < 7; i++ {
|
|
|
- items = append(items, opts.BarData{Value: rand.Intn(300)})
|
|
|
+ err = SaveStaticLine("bar.html", infoBase.Name, infoSrc.Name,
|
|
|
+ mean, sd, xAxis,
|
|
|
+ startDiffTimeLineData, endDiffTimeLineData)
|
|
|
+ if err != nil {
|
|
|
+ return 0, err
|
|
|
}
|
|
|
- return items
|
|
|
+
|
|
|
+ return 0, nil
|
|
|
}
|
|
|
|
|
|
const timeFormatAss = "15:04:05.00"
|