mirror of
https://github.com/SubtitleEdit/subtitleedit.git
synced 2024-10-28 06:52:35 +01:00
Minor refact
This commit is contained in:
parent
bab49280fe
commit
ca9534f8f4
132
src/libse/AudioToText/DownloadModel.cs
Normal file
132
src/libse/AudioToText/DownloadModel.cs
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
namespace Nikse.SubtitleEdit.Core.AudioToText
|
||||||
|
{
|
||||||
|
public class DownloadModel
|
||||||
|
{
|
||||||
|
public string Url { get; set; }
|
||||||
|
public string TwoLetterLanguageCode { get; set; }
|
||||||
|
public string LanguageName { get; set; }
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return LanguageName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static readonly DownloadModel[] VoskModels = new[]
|
||||||
|
{
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "en",
|
||||||
|
LanguageName = "English",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-en-us-0.22-lgraph.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "cn",
|
||||||
|
LanguageName = "Chinese",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-cn-kaldi-multicn-2-lgraph.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "fr",
|
||||||
|
LanguageName = "French",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-fr-pguyot-0.3.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "es",
|
||||||
|
LanguageName = "Spanish",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-es-0.3.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "de",
|
||||||
|
LanguageName = "German",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "pt",
|
||||||
|
LanguageName = "Portuguese",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-pt-0.3.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "it",
|
||||||
|
LanguageName = "Italian",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-it-0.4.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "nl",
|
||||||
|
LanguageName = "Dutch",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-nl-spraakherkenning-0.6-lgraph.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "sv",
|
||||||
|
LanguageName = "Swedish",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-sv-rhasspy-0.15.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "ru",
|
||||||
|
LanguageName = "Russian",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "fa",
|
||||||
|
LanguageName = "Farsi",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-fa-0.5.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "tr",
|
||||||
|
LanguageName = "Turkish",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-tr-0.3.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "el",
|
||||||
|
LanguageName = "Greek",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-el-gr-0.7.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "ar",
|
||||||
|
LanguageName = "Arabic",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-ar-mgb2-0.4.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "uk",
|
||||||
|
LanguageName = "Ukrainian",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-uk-v3-small.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "ph",
|
||||||
|
LanguageName = "Filipino",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-tl-ph-generic-0.6.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "kz",
|
||||||
|
LanguageName = "Kazakh",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-kz-0.15.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "jp",
|
||||||
|
LanguageName = "Japanese",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-ja-0.22.zip",
|
||||||
|
},
|
||||||
|
new DownloadModel
|
||||||
|
{
|
||||||
|
TwoLetterLanguageCode = "ca",
|
||||||
|
LanguageName = "Catalan",
|
||||||
|
Url = "https://alphacephei.com/vosk/models/vosk-model-small-ca-0.4.zip",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
@ -7,6 +7,7 @@ using System.Diagnostics;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using Vosk;
|
using Vosk;
|
||||||
|
|
||||||
@ -109,7 +110,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
|
|
||||||
internal static string GetLanguage(string text)
|
internal static string GetLanguage(string text)
|
||||||
{
|
{
|
||||||
var languageCodeList = new[] { "en", "ru", "cn", "fr", "sv", "de", "es", "fa", "tr", "ca", "uk", "kz", "ph", "ar", "nl", "el", "pt" };
|
var languageCodeList = DownloadModel.VoskModels.Select(p => p.TwoLetterLanguageCode);
|
||||||
foreach (var languageCode in languageCodeList)
|
foreach (var languageCode in languageCodeList)
|
||||||
{
|
{
|
||||||
if (text.Contains("model-" + languageCode) || text.Contains("model-small-" + languageCode) || text.StartsWith(languageCode, StringComparison.OrdinalIgnoreCase))
|
if (text.Contains("model-" + languageCode) || text.Contains("model-small-" + languageCode) || text.StartsWith(languageCode, StringComparison.OrdinalIgnoreCase))
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Nikse.SubtitleEdit.Core.Common;
|
using Nikse.SubtitleEdit.Core.AudioToText;
|
||||||
|
using Nikse.SubtitleEdit.Core.Common;
|
||||||
using Nikse.SubtitleEdit.Logic;
|
using Nikse.SubtitleEdit.Logic;
|
||||||
using System;
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
@ -11,135 +12,6 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
{
|
{
|
||||||
public bool AutoClose { get; internal set; }
|
public bool AutoClose { get; internal set; }
|
||||||
|
|
||||||
public class DownloadModel
|
|
||||||
{
|
|
||||||
public string Url { get; set; }
|
|
||||||
public string TwoLetterLanguageCode { get; set; }
|
|
||||||
public string LanguageName { get; set; }
|
|
||||||
public override string ToString()
|
|
||||||
{
|
|
||||||
return LanguageName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private readonly DownloadModel[] _voskModels = new[]
|
|
||||||
{
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "en",
|
|
||||||
LanguageName = "English",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-en-us-0.22-lgraph.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "cn",
|
|
||||||
LanguageName = "Chinese",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-cn-kaldi-multicn-2-lgraph.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "fr",
|
|
||||||
LanguageName = "French",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-fr-pguyot-0.3.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "es",
|
|
||||||
LanguageName = "Spanish",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-es-0.3.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "de",
|
|
||||||
LanguageName = "German",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-de-0.15.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "pt",
|
|
||||||
LanguageName = "Portuguese",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-pt-0.3.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "it",
|
|
||||||
LanguageName = "Italian",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-it-0.4.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "nl",
|
|
||||||
LanguageName = "Dutch",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-nl-spraakherkenning-0.6-lgraph.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "sv",
|
|
||||||
LanguageName = "Swedish",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-sv-rhasspy-0.15.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "ru",
|
|
||||||
LanguageName = "Russian",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-ru-0.22.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "fa",
|
|
||||||
LanguageName = "Farsi",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-fa-0.5.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "tr",
|
|
||||||
LanguageName = "Turkish",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-tr-0.3.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "el",
|
|
||||||
LanguageName = "Greek",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-el-gr-0.7.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "ar",
|
|
||||||
LanguageName = "Arabic",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-ar-mgb2-0.4.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "uk",
|
|
||||||
LanguageName = "Ukrainian",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-uk-v3-small.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "ph",
|
|
||||||
LanguageName = "Filipino",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-tl-ph-generic-0.6.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "kz",
|
|
||||||
LanguageName = "Kazakh",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-kz-0.15.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "jp",
|
|
||||||
LanguageName = "Japanese",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-ja-0.22.zip",
|
|
||||||
},
|
|
||||||
new DownloadModel
|
|
||||||
{
|
|
||||||
TwoLetterLanguageCode = "ca",
|
|
||||||
LanguageName = "Catalan",
|
|
||||||
Url = "https://alphacephei.com/vosk/models/vosk-model-small-ca-0.4.zip",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
public AudioToTextModelDownload()
|
public AudioToTextModelDownload()
|
||||||
{
|
{
|
||||||
UiUtil.PreInitialize(this);
|
UiUtil.PreInitialize(this);
|
||||||
@ -150,7 +22,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
|
buttonCancel.Text = LanguageSettings.Current.General.Cancel;
|
||||||
UiUtil.FixLargeFonts(this, buttonDownload);
|
UiUtil.FixLargeFonts(this, buttonDownload);
|
||||||
|
|
||||||
foreach (var downloadModel in _voskModels)
|
foreach (var downloadModel in DownloadModel.VoskModels)
|
||||||
{
|
{
|
||||||
comboBoxModels.Items.Add(downloadModel);
|
comboBoxModels.Items.Add(downloadModel);
|
||||||
}
|
}
|
||||||
@ -181,7 +53,7 @@ namespace Nikse.SubtitleEdit.Forms
|
|||||||
buttonDownload.Enabled = false;
|
buttonDownload.Enabled = false;
|
||||||
Refresh();
|
Refresh();
|
||||||
Cursor = Cursors.WaitCursor;
|
Cursor = Cursors.WaitCursor;
|
||||||
string url = downloadModel.Url;
|
var url = downloadModel.Url;
|
||||||
var wc = new WebClient { Proxy = Utilities.GetProxy() };
|
var wc = new WebClient { Proxy = Utilities.GetProxy() };
|
||||||
|
|
||||||
wc.DownloadDataCompleted += wc_DownloadDataCompleted;
|
wc.DownloadDataCompleted += wc_DownloadDataCompleted;
|
||||||
|
Loading…
Reference in New Issue
Block a user