/// <summary> /// Initializes a new instance of the <see cref="TesseractEngine"/> class. /// </summary> /// <param name="language1">Language 1</param> /// <param name="language2">Language 2</param> /// <param name="engineMode">Engine mode.</param> /// <param name="defaultSegmentationMode">Default segmentation mode.</param> public TesseractEngine(RecognitionLanguage language1, RecognitionLanguage language2, TesseractEngineMode engineMode, TesseractPageSegmentationMode defaultSegmentationMode) { RecognitionLanguage1 = language1; RecognitionLanguage2 = language2; EngineMode = engineMode; DefaultSegmentationMode = defaultSegmentationMode; }
public string TranslateLanguage(RecognitionLanguage rl) { return rl switch { RecognitionLanguage.English or RecognitionLanguage.Default => "eng", RecognitionLanguage.French => "fra", RecognitionLanguage.Polish => "pol", _ => "eng", }; }
/// <summary> /// Gets the tesseract name of the language. /// </summary> /// <param name="language">Language</param> /// <returns></returns> private string GetLanguageName(RecognitionLanguage language) { switch (language) { case RecognitionLanguage.English: return("eng"); case RecognitionLanguage.Russian: return("rus"); default: throw new ArgumentOutOfRangeException(nameof(language), language, null); } }
public SearchOptions(string path, string keyword, RecognitionPrecision selectedPrecisionOCR, RecognitionLanguage selectedLanguageOCR, bool caseSensitive, bool useOCR, bool useSubfolders, bool usePDF, bool useDOCX, bool useODT) { Path = path; Keyword = keyword; SelectedPrecisionOCR = selectedPrecisionOCR; SelectedLanguageOCR = selectedLanguageOCR; CaseSensitive = caseSensitive; UseOCR = useOCR; UseSubfolders = useSubfolders; UsePDF = usePDF; UseDOCX = useDOCX; UseODT = useODT; }
public void Initialize(Enums.Language language) { switch (language) { case Enums.Language.English: this._language = RecognitionLanguage.English; break; case Enums.Language.Russian: this._language = RecognitionLanguage.Russian; break; default: throw new Exceptions.InvalidLanguageException(language.ToString()); } }
/// <summary> /// Gets the language names string. /// </summary> /// <param name="language1">Language1.</param> /// <param name="language2">Language2.</param> /// <returns></returns> private string GetLanguageNamesString(RecognitionLanguage language1, RecognitionLanguage language2) { if (language1 == RecognitionLanguage.None && language2 == RecognitionLanguage.None) { return("eng"); } if (language1 == RecognitionLanguage.None) { return(GetLanguageName(language2)); } if (language2 == RecognitionLanguage.None) { return(GetLanguageName(language1)); } return($"{GetLanguageName(language1)}+{GetLanguageName(language2)}"); }
string ImageToText(byte[] imageBytes, RecognitionLanguage rl, RecognitionPrecision rp) { try { using var engine = new TesseractEngine(@"./Files", _optionService.TranslateLanguage(rl), EngineMode.Default); using var img = _optionService.TranslatePrecision(rp).Item4 == System.Drawing.Imaging.ImageFormat.Tiff ? Pix.LoadTiffFromMemory(imageBytes) : Pix.LoadFromMemory(imageBytes); using var pager = engine.Process(img); return(pager.GetText().ToString()); //System.Diagnostics.Debug.WriteLine("Mean confidence: {0}", pager.GetMeanConfidence()); //System.Diagnostics.Debug.WriteLine("Text {0}", text); } catch (Exception ee) { System.Diagnostics.Debug.WriteLine("Unexpected Error: " + ee.Message); System.Diagnostics.Debug.WriteLine("Details: "); System.Diagnostics.Debug.WriteLine(ee.ToString()); } return(""); }
public async System.Threading.Tasks.Task <TextMessage> ProcessAsync(VoiceMessage message) { switch (message.Language) { case Core.Enums.Language.English: this._language = RecognitionLanguage.English; break; case Core.Enums.Language.Russian: this._language = RecognitionLanguage.Russian; break; default: throw new Exceptions.InvalidMessageException(message.Id, "Invalid Language: " + message.Language.ToString()); } var apiSetttings = new SpeechKitClientOptions($"{YandexCompmnentConfig.YandexSpeechApiKey}", "MashaWebApi", Guid.Empty, "server"); using (var client = new SpeechKitClient(apiSetttings)) { MemoryStream mediaStream = new MemoryStream(message.Vioce); var speechRecognitionOptions = new SpeechRecognitionOptions(SpeechModel.Queries, RecognitionAudioFormat.Wav, RecognitionLanguage.Russian); try { var result = await client.SpeechToTextAsync(speechRecognitionOptions, mediaStream, cancellationToken).ConfigureAwait(false); if (result.TransportStatus != TransportStatus.Ok || result.StatusCode != HttpStatusCode.OK) { //Handle network and request parameters error } if (!result.Result.Success) { //Unable to recognize speech } var utterances = result.Result.Variants; if (utterances.Count > 0) { var max = utterances[0]; foreach (var item in utterances) { if (item.Confidence > max.Confidence) { max = item; } } TextMessage res = new TextMessage() { Id = message.Id, Language = message.Language, Text = max.Text }; return(res); } throw new Exception("invdlid answer"); } catch (OperationCanceledException) { throw new Exception("invdlid answer"); } } }
/// <summary> /// Initializes a new instance of the <see cref="TesseractEngine"/> class. /// </summary> /// <param name="language1">Language 1</param> /// <param name="language2">Language 2</param> /// <param name="engineMode">Engine mode.</param> public TesseractEngine(RecognitionLanguage language1, RecognitionLanguage language2, TesseractEngineMode engineMode) : this(language1, language2, engineMode, TesseractPageSegmentationMode.Auto) { }
/// <summary> /// Initializes a new instance of the <see cref="TesseractEngine" /> class. /// </summary> /// <param name="language1">Language 1</param> /// <param name="language2">Language 2</param> public TesseractEngine(RecognitionLanguage language1, RecognitionLanguage language2) : this(language1, language2, TesseractEngineMode.Default) { }
/// <summary> /// Create new speech recognition options. /// </summary> /// <param name="speechModel">The language model to use for recognition.</param> /// <param name="audioFormat">The audio format.</param> /// <param name="language">The language for speech recognition.</param> public SpeechRecognitionOptions(SpeechModel speechModel, RecognitionAudioFormat audioFormat, RecognitionLanguage language) { SpeechModel = speechModel; AudioFormat = audioFormat; Language = language; }
public Task ProcessImage(byte[] data, RecognitionLanguage language) { var settings = new ProcessingSettings { Language = language, OutputFormat = OutputFormat.txt, TextTypes = TextType.Normal }; // set request Task task = _restServiceClient.ProcessImage(data, settings); return task; }