More post-processing

This commit is contained in:
Nikolaj Olsson 2024-03-20 20:07:10 +01:00
parent 001cad505d
commit 3db3f275ea
2 changed files with 30 additions and 6 deletions

View File

@ -129,7 +129,7 @@ Could be fun.
14 14
00:00:29,660 --> 00:00:32,580 00:00:29,660 --> 00:00:32,580
Well, we could get to know each other a We could get to know each other a
little, maybe loosen things up around little, maybe loosen things up around
15 15
@ -138,7 +138,7 @@ here?
16 16
00:00:33,680 --> 00:00:39,160 00:00:33,680 --> 00:00:39,160
Well, I've worked with this lot before, I've worked with this lot before,
and, erm... Yeah, this is as loose as they and, erm... Yeah, this is as loose as they
17 17
@ -191,8 +191,8 @@ Wait.";
var fixedSubtitle = AudioToTextPostProcessor.TryForWholeSentences(subtitle, "en", 42); var fixedSubtitle = AudioToTextPostProcessor.TryForWholeSentences(subtitle, "en", 42);
Assert.AreEqual(14, fixedSubtitle.Paragraphs.Count); Assert.AreEqual(14, fixedSubtitle.Paragraphs.Count);
Assert.IsTrue(fixedSubtitle.Paragraphs[2].Text == "Well, we could get to know each other a" + Environment.NewLine + "little, maybe loosen things up around here?"); Assert.IsTrue(fixedSubtitle.Paragraphs[2].Text == "We could get to know each other a" + Environment.NewLine + "little, maybe loosen things up around here?");
Assert.IsTrue(fixedSubtitle.Paragraphs[3].Text == "Well, I've worked with this lot before, and," + Environment.NewLine + "erm... Yeah, this is as loose as they get."); Assert.IsTrue(fixedSubtitle.Paragraphs[3].Text == "I've worked with this lot before, and," + Environment.NewLine + "erm... Yeah, this is as loose as they get.");
Assert.IsTrue(fixedSubtitle.Paragraphs[4].Text == "Hmm."); Assert.IsTrue(fixedSubtitle.Paragraphs[4].Text == "Hmm.");
Assert.IsTrue(fixedSubtitle.Paragraphs[5].Text == "What's the about that, Bob's?"); Assert.IsTrue(fixedSubtitle.Paragraphs[5].Text == "What's the about that, Bob's?");
} }
@ -217,5 +217,25 @@ that could be fun indeed my friend.";
Assert.IsTrue(fixedSubtitle.Paragraphs[0].Text == "Yes, I think this could" + Environment.NewLine + "indeed be very good."); Assert.IsTrue(fixedSubtitle.Paragraphs[0].Text == "Yes, I think this could" + Environment.NewLine + "indeed be very good.");
Assert.IsTrue(fixedSubtitle.Paragraphs[1].Text == "But also that could be" + Environment.NewLine + "fun indeed my friend."); Assert.IsTrue(fixedSubtitle.Paragraphs[1].Text == "But also that could be" + Environment.NewLine + "fun indeed my friend.");
} }
[TestMethod]
public void TryForWholeSentences3()
{
var raw = @"1
00:04:23,780 --> 00:04:27,340
In each of the commercials that I'm in,
I'm the one who simply can't go on without
2
00:04:27,340 --> 00:04:27,780
the product.";
var subtitle = new Subtitle();
new SubRip().LoadSubtitle(subtitle, raw.SplitToLines(), null);
var fixedSubtitle = AudioToTextPostProcessor.TryForWholeSentences(subtitle, "en", 42);
Assert.AreEqual(2, fixedSubtitle.Paragraphs.Count);
}
} }
} }

View File

@ -184,8 +184,10 @@ namespace Nikse.SubtitleEdit.Core.AudioToText
var currentOk = arrayCurrent.Count == 1 || (arrayCurrent.Count == 2 && arrayCurrent[0].Length < lineMaxLength * 2); var currentOk = arrayCurrent.Count == 1 || (arrayCurrent.Count == 2 && arrayCurrent[0].Length < lineMaxLength * 2);
var nextOk = arrayNext.Count == 1 || (arrayNext.Count == 2 && arrayNext[0].Length < lineMaxLength * 2); var nextOk = arrayNext.Count == 1 || (arrayNext.Count == 2 && arrayNext[0].Length < lineMaxLength * 2);
var allOk = newCurrentText.Length < lineMaxLength * 2 &&
newNextText.Length < lineMaxLength * 2;
if (currentOk && nextOk) if (currentOk && nextOk && allOk)
{ {
p.Text = newCurrentText; p.Text = newCurrentText;
next.Text = newNextText; next.Text = newNextText;
@ -219,8 +221,10 @@ namespace Nikse.SubtitleEdit.Core.AudioToText
var currentOk = arrayCurrent.Count == 1 || (arrayCurrent.Count == 2 && arrayCurrent[0].Length < lineMaxLength * 2); var currentOk = arrayCurrent.Count == 1 || (arrayCurrent.Count == 2 && arrayCurrent[0].Length < lineMaxLength * 2);
var nextOk = arrayNext.Count == 1 || (arrayNext.Count == 2 && arrayNext[0].Length < lineMaxLength * 2); var nextOk = arrayNext.Count == 1 || (arrayNext.Count == 2 && arrayNext[0].Length < lineMaxLength * 2);
var allOk = newCurrentText.Length < lineMaxLength * 2 &&
newNextText.Length < lineMaxLength * 2;
if (currentOk && nextOk) if (currentOk && nextOk && allOk)
{ {
p.Text = newCurrentText; p.Text = newCurrentText;
next.Text = newNextText; next.Text = newNextText;