Video Translation Platform
The video translation system uses a next-generation AI engine to synchronize audio and text with video frames, addressing translation challenges by selecting optimal engines and adjusting speech pace, achieving high-quality translations with user feedback integration.
Patent Information
- Application Number
- JP2023062296
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2022-06-28
- Filing Date
- 2023-04-06
- Publication Date
- 2025-01-30
- Estimated Expiration
- 2043-04-06
AI Technical Summary
Existing video translation systems struggle to accurately translate video content across languages, particularly in terms of synchronizing audio and text with video frames, and maintaining consistency in speech pace and style.
A video translation system utilizing a next-generation AI engine that identifies the domain and language of input video, selects the optimal translation engine and character engine, extracts text using OCR, and generates synchronized audio and subtitles, adjusting speech pace and inserting frames as needed using GANs to ensure consistency.
The system provides high-quality, synchronized audio and text translation that adapts to different languages and domains, ensuring accurate and efficient video translation with user feedback integration for continuous improvement.
Smart Images

Figure 0007624470000001 
Figure 0007624470000002 
Figure 0007624470000003
Abstract
Description
[Technical field]
[0001] Technical Field SUMMARY The present disclosure relates generally to a video translation system that generates an output video that corresponds to a translated version of a received input video.
[0002] Priority This application claims priority to Indian Provisional Patent Application No. 202211021128, filed on April 8, 2022, and Indian Provisional Patent Application No. 202211023590, filed on April 21, 2022, the entire disclosures of which are incorporated herein by reference. [Background technology]
[0003] Computers have long been used to translate text from one language to another. Automatic or machine translation is one of the key capabilities enabled by artificial intelligence (AI) technologies. Typically, rule-based systems were used for this task. However, these systems were later replaced by systems using statistical methods. More recently, deep neural network (DNN) models have achieved state-of-the-art results in the field of neural machine translation. Summary of the Invention [Means for solving the problem]
[0004] Implementations of the present disclosure are generally directed to a video translation system. In some implementations, the video translation system may include at least one processor, a non-transitory processor-readable medium storing machine-readable instructions that cause the processor to: identify a domain associated with an input video including an input audio track in a source language; automatically select a translation engine from a plurality of translation engines and a transcription engine from a plurality of transcription engines based at least on the domain; create a transcription of the input audio track in the source language with the transcription engine; translate the transcription into a target language using the translation engine; generate translated subtitles in the target language using the translated transcription, the translated subtitles also including a translation of textual content displayed in the input video in the source language; generate an audio output corresponding to the translated transcription of the input audio track; use the audio output to create an output audio track in the target language corresponding to the input audio track; and generate an output video displaying video content of the input video synchronized with the output audio track and the translated subtitles.
[0005] In some implementations of the above video translation system, to identify the domain, the processor may extract keywords from the input audio track and create a probability scorecard for a number of predefined domains using a naive Bayes method.
[0006] In some implementations of the above video translation system, to identify the domain, the processor may output the domain with the highest probability among a predefined number of domains as the domain of the input video.
[0007] In some implementations of the above video translation system, to automatically select a translation engine and a transcription engine, a processor may use a trained machine learning (ML) model to generate multiple solution paths based on the domain, each of the multiple solution paths including a unique combination of an optical character recognition (OCR) engine, one of the multiple transcription engines, and one of the multiple translation engines.
[0008] In some implementations of the above video translation system, to automatically select the translation engine and the transcription engine, the processor may score each of a plurality of solution paths based on the accuracy rate of each of the OCR engine, the transcription engine, and the translation engine used in a unique combination for the source language, the target language, and the domain, and select the OCR engine, the transcription engine, and the translation engine from the solution path that has the highest score among the plurality of solution paths.
[0009] In some implementations of the above video translation system, to generate translated subtitles, the processor may extract text from the input video using optical character recognition (OCR) techniques, transcribe the input audio track, and translate the text extracted from the input video into the target language.
[0010] In some implementations of the above video translation system, to extract text from the input video, the processor may further detect frames in the input video having text content using contour detection techniques, identify a subset of frames having text content above a predetermined area as containing meaningful text, and perform de-duplication of the subset of frames containing meaningful text.
[0011] In some implementations of the above video translation system, to identify meaningful text from the input video, the processor may further: for each frame containing text content, generate an ordered sequence of features using a trained convolutional neural network (CNN), identify areas in the frame containing text content based on the ordered sequence of features, predict characters in the text content using a source language-based CNN trained to identify characters in the source language, extract word features using a bidirectional long short term memory (LSTM) based on an output of the source language-based CNN, calculate a percentage of text features relative to non-text features, and determine that the frame contains meaningful text based on a comparison of the percentage with a predefined threshold percentage.
[0012] In some implementations of the above video translation system, to perform frame de-duplication, the processor may extract individual feature vectors for two of the frames and measure the Euclidean distance between the individual feature vectors.
[0013] In some implementations of the above video translation system, to perform frame de-duplication, the processor may determine a similarity between two frames by applying a sigmoid function to the Euclidean distance, and perform de-duplication of the two frames by comparing the similarity with a predetermined similarity threshold.
[0014] In some implementations of the above video translation system, to create the output audio track, the processor may identify corresponding genders associated with various portions of the input audio track and generate a voice output based on the corresponding genders.
[0015] In some implementations of the above video translation system, to generate an output video, the processor may compare a duration of an audio output corresponding to the translated transcription with a duration of the input audio track, determine that the audio output is asynchronous with a corresponding portion of the input video, calculate a speed factor as the ratio of the duration of the input audio track divided by the duration of the audio output, and manipulate one or more of the audio output and video frames of the input video based on the value of the speed factor.
[0016] In some implementations of the above video translation system, to generate the output video, the processor may determine that the audio output has a shorter duration than the input audio track, determine an increase to be achieved in the value of the speed factor, and generate the output audio track by inserting pauses in the audio output before and after audio segments of the audio output, where the duration of the pauses is determined based on the increase in the value of the speed factor to be achieved.
[0017] In some implementations of the above video translation system, to generate the output video, the processor may determine that the speech output has a longer duration than the input audio track, determine a reduction to be achieved in the value of the speed factor, and add video frames to the video content of the input video based on the reduction in the value of the speed factor to be achieved.
[0018] In some implementations of the above video translation system, to add video frames to the input video, the processor may automatically generate new video frames using a Generative Adversarial Network (GAN) that includes a generator and a classifier, where the generator produces images of the video frames that are verified by the classifier.
[0019] In some implementations of the above video translation system, to automatically generate the new video frame, the processor may generate the new video frame based on a received ground truth pose of a speaker imaged in a video frame of the input video, where the new video frame includes a fake mouth shape along with the ground truth pose of the speaker.
[0020] Implementations of the present disclosure are also generally directed to methods of generating an output video that corresponds to a translated version of a received input video. In some implementations, the method may include identifying a domain associated with an input video having an input audio track in a source language, automatically selecting a translation engine and a transcription engine based on the domain, creating a transcription of the input audio track in the source language with the transcription engine, translating the transcription into a target language using the translation engine, generating an audio output corresponding to the translated transcription of the input audio track, creating translated subtitles using the translated transcription, where the translated subtitles also include a translation of textual content displayed in the source language in the input video, creating an output audio track in the target language from the audio output, and generating an output video displaying video content of the input video synchronized with the output audio track and the translated subtitles.
[0021] In some implementations of the above method, creating the output audio track may further include detecting the gender of speech segments of the input audio track using a custom convolutional neural network (CNN) with a long short-term memory (LSTM) network trained on a dataset having audio samples of people of different genders speaking in different languages, different accents, different tones, and different styles.
[0022] In some implementations of the above method, training the custom CNN with the LSTM network may further include training the custom CNN with the LSTM network to detect gender in the source language using language-specific features included in the dataset.
[0023] In some implementations of the above method, training the custom CNN with the LSTM network may further include converting the audio samples into mel spectrograms; shuffling, resizing, and normalizing the mel spectrograms; and splitting the dataset into a training dataset, a validation dataset, and a test dataset.
[0024] In some implementations of the above method, creating the translated subtitles may further include detecting source language stop words from the transcript and using the stop words to identify beginnings and ends of sentences in the transcript.
[0025] In some implementations of the above method, creating the translated subtitles may further include selecting a glossary based on the domain, the source language, and the target language, the glossary including domain-specific terms of one or more of the source language and the target language.
[0026] Implementations of the present disclosure are also generally directed to non-transitory processor-readable storage media. In some implementations, the non-transitory processor-readable storage medium may include machine-readable instructions that cause a processor to identify a domain associated with an input video having an input audio track in a source language, automatically select a translation engine and a transcription engine based at least on the domain, create a transcription of the input audio track in the source language with the transcription engine, translate the transcription into a target language using the translation engine, generate an audio output corresponding to the translated transcription of the input audio track, generate translated subtitles in the target language using the translated transcription, where the translated subtitles also include a translation of textual content displayed in the source language in the input video, create an output audio track in the target language corresponding to the input audio track using the audio output, and generate an output video displaying video content of the input video synchronized with the output audio track and the translated subtitles.
[0027] In some implementations of the above non-transitory processor-readable storage medium, the instructions for generating the output video may cause the processor to determine that the audio output is asynchronous with the video content of the input video based on a comparison of the duration of the audio output to the input audio track.
[0028] In some implementations of the above non-transitory processor-readable storage medium, the instructions for generating an output video may cause the processor to identify beginnings and ends of sentences in the audio output based on detection of stop words in the target language, and to generate an output audio track from the audio output by adding pauses to the beginnings and ends of sentences in the audio output.
[0029] In some implementations of the above non-transitory processor-readable storage medium, the instructions for generating an output video may cause the processor to: calculate edge descriptors for video frames before and after the frame corresponding to the current timestamp; determine corresponding Euclidean distances between the previous frame and the frame of the current timestamp and between the later video frame and the frame related to the current timestamp; identify two of the previous and later frames that are immediately before and immediately after the frame corresponding to the current timestamp and have corresponding Euclidean distances greater than a threshold value as individual frames; and generate a new video frame using a generator network of a generative adversarial network (GAN) by replacing features in the frame corresponding to the current timestamp with features from the immediately preceding and immediately following individual frames.
[0030] In some implementations of the above non-transitory processor-readable storage medium, the instructions for generating the output video may cause the processor to evaluate new video frames for motion consistency using a GAN classifier network.
[0031] Features of the present disclosure will become apparent from the examples illustrated in the following drawings, in which like numerals refer to like elements and in which: [Brief description of the drawings]
[0032] [Figure 1A] 1 illustrates a block diagram of a video translation system, according to examples disclosed herein. [Figure 1B] 1 shows a flowchart illustrating a method for translating an input video into a target language, according to examples disclosed herein. [Figure 2A] 1 illustrates a block diagram of a next-generation AI engine, according to examples disclosed herein. [Figure 2B] 1 illustrates some custom models used in a next-generation AI engine, according to examples disclosed herein. [Figure 2C] FIG. 1 illustrates a block diagram of a solution path generation by a next-generation AI engine, according to examples disclosed herein. [Figure 3A] 2 shows a block diagram of the various steps involved in extracting text from an input video, according to examples disclosed herein; [Figure 3B] 2 shows a block diagram of a step for identifying text from a given frame according to examples disclosed herein; [Figure 4A] 1 illustrates a video frame duplication according to examples disclosed herein. [Figure 4B] 1 illustrates a video frame duplication according to examples disclosed herein. [Diagram 5] 2 shows a block diagram of the steps involved in an audio dubbing process according to examples disclosed herein; [Figure 6] 1 illustrates an architecture for gender detection for audio dubbing, according to examples disclosed herein. [Figure 7] 2 shows a block diagram of the various steps involved in automatic video frame generation according to examples disclosed herein; [Figure 8] 1 shows a diagram of time shifting according to examples disclosed herein. [Figure 9] 1 illustrates a video generator architecture according to examples disclosed herein. [Figure 10] 1 illustrates a generator architecture for lip sync using generative adversarial networks (GANs), according to examples disclosed herein. [Figure 11] 1 illustrates a classifier architecture for lip sync using GAN, according to an example disclosed herein. [Figure 12] 1 illustrates the steps involved in generating translated subtitles, according to examples disclosed herein. [Figure 13]1 illustrates steps for automatic feedback incorporation using reinforcement learning, according to examples disclosed herein. [Figure 14] 1 illustrates the incorporation of reinforcement learning to retrain a next-generation Ai engine, according to examples disclosed herein. [Figure 15] 1 illustrates a computer system that may be used to implement a video translation system according to examples disclosed herein. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0033] For the purposes of brevity and illustration, the present disclosure will be described by reference to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be understood that the present disclosure may be practiced without being limited to these specific details. In addition, some methods and structures may not be described in detail so as not to unnecessarily obscure the present disclosure. Throughout this disclosure, the terms "a" and "an" are intended to indicate at least one particular component. As used herein, the term "includes" means including but not limited to, and the term "including" means including but not limited to. The term "based on" means based at least in part on.
[0034] A video translation system is disclosed that generates an output video that corresponds to a translated version of a received input video. The input video may be received along with a selection of a target language into which it is translated. In an example, the input video may include an audio track in the input / source language, and an output video may be generated in the output / target language. Once the input video is received, a next-generation AI engine identifies a domain for the input video. Based on at least the domain, the source language, and the target language, the next-generation AI engine may recommend a solution path that may include the best translation engine, transcription engine, and optical character recognition (OCR) engine that can provide the highest translation accuracy rate for the identified domain and source / target language pair. The translation engine and transcription engine may be selected from among the available options to provide the highest accuracy rate for the translation / transcription task.
[0035] An input audio track is extracted from the input video and used for gender detection, and the gender of each voice speaking in the input audio track is identified by the gender detection model. In an example, if the input audio track contains different voices of the same gender, such distinctions may also be identified by the gender detection model. Furthermore, pauses and stop words occurring in the extracted input audio track are also identified. Meaningful text that may be present in various frames of the input video may also be extracted. Furthermore, the selected transcription engine transcribes the input audio track to create a transcribed text of the audio input. The transcribed text and the text extracted from the frames of the input video may be provided to a translation engine to obtain a text output translated into a target language. The text output may be converted to speech to create a voice output in the target language. In an example, the audio signal of the voice output may be divided into homogeneous zones of speech that constitute voice segments that can be further processed to generate an output audio track.
[0036] A speed factor is calculated for the audio output, one or more of which may be manipulated or transformed as necessary using various methods described herein so that the audio output and the input video are synchronized. In some examples, pauses may be inserted into the audio output to generate the output audio track. In some examples, the audio output may be used as the output audio track without adjustment. In some examples, the video content of the input video may be adjusted by inserting new video frames that are automatically generated using a generative adversarial network (GAN). The image of the speaker in the input video may also be adjusted so that the lip movements of the speaker in the image are synchronized with the output video track. The output video is generated by merging the output audio track with the adjusted video content. User feedback may be collected and automatically incorporated by reinforcement learning to improve the machine learning (ML) models used for domain identification, translation, and transcription engine selection.
[0037] The serverless, real-time, online video translation solution disclosed herein includes an interactive user interface for translating video content at the click of a button. The video translation system uses automation and artificial intelligence (AI) to transcribe the video and then translate the source language input audio track into the target language to make it suitable for a multilingual audience. The translation script generated from the transcribed input audio track can then be converted back into translated audio and embedded into the video content to generate the output video. Video translation is enabled by features such as, but not limited to, custom / domain-specific glossaries, expert review, extraction of content within the video, smart next-generation AI, automated learning based on expert feedback, and security layers for content protection and distribution. In certain examples, the video translation system can be made available as a Software as a Service (SaaS) solution to gain the benefits of pay-per-use at scale. The video translation system described herein is available 24 / 7 for translation, providing fast and very low-cost translation since most of the translation / transcription work is automated.
[0038] FIG. 1 shows a diagram of a video translation system 100 according to examples disclosed herein. An input video 110 is received by the video translation system 100, which translates the audio and textual content in the input video 110 into an output / target language and generates an output video 190. In some examples, the input video 110 may include input audio tracks and / or textual content in one or more input / source languages. As a result, the output video 190 will include one or more of an output audio track in the target language and textual content translated from the source language to the target language. In some examples, the translated textual content may be provided as subtitles in the output video 190. The output video 190 will also include video content that has been manipulated or modified to suit the target language. In some examples, a selection for a target language may be provided with the input video 110 via a user interface. The input video 110 may relate to a domain selected from a number of domains, such as, but not limited to, medical, financial, educational, management, scientific topics, entertainment content, and the like.
[0039] When the input video 110 is received, the next-generation AI engine 102 activates a language and domain detector 132 to detect a source language and a domain associated with the input video 110. Based at least on the source language / target language combination and the domain associated with the input video 110, the best solution path selector 134 of the next-generation AI engine 102 can provide a best solution path recommendation including a unique combination of a translation engine selected from the multiple translation engines 160 and a transcription engine selected from the multiple transcription engines 170 to perform the automated translation and transcription tasks. The selection of the translation engine can be based on the accuracy rate of the translation engine for translating a particular source language / target language pair and a domain associated with the input video 110. Similarly, a transcription service can be selected based on the accuracy rate of the multiple transcription engines 170 for a particular source language and a domain associated with the input video 110. In some examples, the next-generation AI engine 102 may provide an option for a user to override the automatic selection of the translation engine and transcription engine to manually select a transcription engine / translation engine.
[0040] Upon identifying the optimal translation and transcription engines to be used to generate the output video 190, the input audio track is extracted by the audio extractor 104. The input audio track may be stored as an audio file, for example, .mp3, .wav, etc. The audio extractor 104 may further include or be coupled to a gender detector 142, a pause detector 144, and a stop word identifier 146. The gender detector 142 identifies respective portions of the input audio track in the input video 110 that are spoken by different speakers. The gender detector 142 enables the translated audio output to be created in an appropriate machine-generated voice. The pause detector 144 identifies pauses in the input audio track. Identifying pauses in the input video 110 allows for accurate synchronization of the appearance of the translated subtitles in the output video 190 with the corresponding audio. Additionally, the stop word identifier 146 identifies various stop words occurring in the audio input of the input video 110. Different languages may have different stop words, and identification of such stop words allows the subtitles to be interrupted in synchronization with the audio component of the output video 190, resulting in meaningful subtitles being displayed.
[0041] The input video 110 is then processed for text extraction by the text extractor 106. In some instances, the input video 110 may contain certain portions with source language text content, which may be important for a viewer to understand in order to follow the progression of the input video 110. The text extractor 106 from the input video 110 may require analyzing frames of the input video 110 to identify those frames with meaningful text content. Optical character recognition (OCR) may then be applied to these frames for text extraction. Automatic identification of frames with meaningful text content may require a certain threshold, such as the extent of text content in a given frame, so that processing resources are not wasted on translating or transcribing unrelated content. The selected transcription service is used by the speech-to-text converter 108 to generate a text form or transcription of the input audio track extracted from the input video 110. The transcription from the speech-to-text converter 108 may be provided in the source language to the text translator 112, which translates the transcription into the target language using a translation service selected by the next-generation AI engine 102. In some examples, the text input to the text translator 112 may also include the text output / meaningful text in the source language obtained from the frames selected by the text extractor 106. Thus, the text translator 112 creates a translated text content in the target language not only for the input audio track but also for the meaningful text content identified and extracted from the input video frames. The text-to-speech converter 114 creates an audio output in the target language corresponding to the translated text content obtained from the text translator 112. The audio output may include multiple audio segments or portions related to different parts and related to separate speakers, which may or may not be of different genders. Thus, the audio output can be automatically created by the audio dubbing 116 in the corresponding gender using a speech-to-text synthesizer executed by the output file processor 136.In some examples, the text to speech converter 114 uses the output from the gender detector 142 so that the audio dubbing 116 can generate gender-specific output audio tracks in the target language. In some examples, separate voices / tones may be used for each speaker's audio segments even if different speakers are identified as being of the same gender. The output file processor 136 modifies or manipulates the video content of the input video 110 to synchronize with the output audio track. One or more segments of the audio track are embedded 118 into the modified video content to generate the output video 190.
[0042] The video translation system 100 includes an automatic feedback facilitator 120 to improve the various AI models used throughout the translation pipeline. Feedback provided by users and language experts can be automatically incorporated using reinforcement learning 122. In some examples, feedback may be automatically incorporated by model retraining 124 and glossary updates. Based at least on certain model efficiency thresholds, a model publisher 126 may determine whether the retrained model should be published to the translation pipeline. In some examples, the obtained feedback may be used to update the solution paths of the next generation AI engine 102 for transcription / translation service selection and domain specificity of the input video.
[0043] FIG. 1B illustrates a flowchart 1050 showing a method for translating an input video 110 into a target language according to examples disclosed herein. The method begins at 1052, where the video translation system 100 receives the input video 110 along with its metadata. In one example, the metadata can include at least a source language of an input audio track associated with the input video 110 and a target language to which the input video is to be translated, and can optionally include any keywords associated with the input video 110. At 1054, a domain associated with the input video 110 is identified by the next-generation AI engine 102. Keywords associated with the input video 110 in the metadata associated with the input video 110, or keywords extracted from the input audio track if there are no associated keywords, can be used to generate a probability scorecard for a predefined set of domains. In one example, a naive Bayesian approach can be used to generate the probability scorecard. The domain with the highest probability of the predefined set of domains can be output as the domain of the input video at 1054.
[0044] The identified domain along with the source and target language pair may be used to automatically select 1056 a translation engine from the plurality of translation engines 160 and a transcription engine from the plurality of transcription engines 170. Additionally, an optical character recognition (OCR) engine may also be used to extract textual content displayed in the input video 110. Thus, a plurality of solution paths are generated involving various combinations of an OCR engine, a plurality of translation engines 160, and a plurality of transcription engines 170 that can extract source language textual content from the input video 110. Each solution path may be scored based on the accuracy rate provided by the particular combination of the OCR engine, the translation engine, and the transcription engine. The solution path with the highest score, indicating the highest accuracy rate, is output 1056 as the automatic selection.
[0045] At 1058, the input audio track is extracted. Furthermore, various techniques are used for gender detection, pause detection, and stop word identification. In one example, a dataset can be prepared for several languages, and for each language, the dataset includes sample audio clips of different people speaking with different accents, tones, and styles. The audio samples can be converted into mel-spectrograms that are used to train a gender detection model that includes a deep learning based convolutional neural network (CNN) with long short-term memory (LSTM). The dataset can be split into a training set, a test set, and a validation set to test and validate the gender detection model. In one example, a CNN-based audio segmentation can be implemented to detect gender in the input audio track. The CNN can be trained to separate the audio signal into homogeneous zones of speech, i.e., audio segments that are then classified based on gender.
[0046] Different languages may include different stop words. Thus, the dataset may further include samples for training various machine learning (ML) models, such as classifiers for identifying stop words of various languages. Once the source language is identified, a classifier for identifying stop words of the source language may be used. Identifying the stop words may further enable detecting pauses in the input audio track. The pauses may also be indicated based on the timing of the start and end of subtitles (if any) in the input video 110. At 1060, a transcription of the input audio track is obtained in the source language using the selected transcription engine. At 1062, the transcription is translated into the target language using the selected translation engine, and at 1064, an audio output may be created from the translated transcription.
[0047] Additionally, meaningful textual content appearing in the source language in the input video 110 is also extracted 1066. Frames with textual content can be first identified from the input video 110 by using feature extraction and contour detection techniques as detailed herein. Frames with salient textual content are identified based on the textual content of predefined areas within the frames. Multiple frames with the same textual content are de-duplicated to extract meaningful text.
[0048] At 1068, translated subtitles are generated by translating the transcription of the input audio track and the meaningful text extracted from the input video 110 into the target language using the selected translation engine. At 1070, an output audio track in the target language is created from the speech output. At 1072, an output video 190 is generated that displays the video content of the input video 110 synchronized with the translated subtitles and the output audio track.
[0049] FIG. 2A illustrates a block diagram of a next-generation AI engine 102 according to examples disclosed herein. When an input video 110 is received, various deep learning models included in the next-generation AI engine 102 can be used to automatically detect the language, domain of the input video 110, and gender of the speaker in various frames of the input video 110. Translation and transcription services can be selected by the engine selector 202 based on their accuracy rates for a particular source / target language pair. The glossary selector 204 can select one or more glossaries based on the source / target language and the particular domain associated with the input video 110. In some examples, the selected glossary may include domain-specific terms in the source / target language. In some examples, trained classifiers can be used for various selections. In some examples, the engine selector 202 can implement deep learning models that can be trained on explicitly labeled data for engine selection for a particular source-target language pair and domain combination. The glossary selector 204 can be programmed to select a particular glossary based on the identified domain and source-target language combination. Optional customization 206 can be included, such as overriding the automatic selection made by the engine selector 202 and / or glossary selector 204. Other optional customizations may include redacting sensitive data from the input video 110, categorizing and summarizing the input video 110, etc. The solution path 208 provided by the next-generation AI engine 102 can include selecting a transcription engine 212 from the multiple transcription engines 170, selecting a translation engine 214 from the multiple translation engines 160, and an OCR engine 216 for text extraction from frames of the input video 110. Feedback 218 regarding the selected engine can be obtained after providing the output video 190 and may be incorporated into the next-generation AI engine 102 by reinforcement learning.
[0050] The next-generation AI engine 102 contains multiple AI algorithms and cognitive services to intelligently recommend a solution path for any input video based on the domain and language pair. This intelligence is constantly updated based on the latest learnings and user feedback. Below are the high-level steps performed by the next-generation AI engine 102 when a new video translation request is received:
[0051] 1) Identify the language, domain, and gender in the video: Language detection can be done using built-in cognitive services functionality, while for gender detection, customized speech models such as custom CNNs are developed for different languages.
[0052] 2) A classification model using domain-specific word-based embeddings is used to identify the domain.
[0053] 3) A metadata mapping of this information that corresponds to various parts of a particular video is constructed.
[0054] 4) The video is split into multiple parts based on the metadata captured above.
[0055] 5) For a corresponding language and domain pair, the best OCR engines, transcription engines, and translation engines are identified that yield the highest accuracy rate and the least data leakage for various parts of a particular video.
[0056] 6) The most appropriate glossary for domain-specific translation needs is selected by a smart recommendation system in the glossary selector 204, which chooses the best glossary for the selected language based on the best possible matches for domain-specific words.
[0057] 7) A solution pass is executed and the outputs of the steps are merged to produce the final video output.
[0058] 8) The next generation AI engine 102 recommends the solution path that is likely to provide the most accurate results. This intelligence is constantly updated based on an automatic feedback intake mechanism.
[0059] FIG. 2B shows a portion of the custom model used in the next-generation AI engine 102. Input video keywords 254 are identified along with glossary words 256, and then a probability scorecard for a predefined domain is generated. In an example, the keywords 254 and glossary words 256 can be provided as metadata along with the input video 110. A Naive Bayes algorithm represented by equation 252 can be used to generate a probability scorecard 260 for a predefined domain, and the domain with the highest score is recommended. Glossary recommendation is performed based on a semantic web of keywords 254 generated from the input video 110, and an elastic search 258 is performed from the predefined glossary embeddings. The most suitable glossary is selected based on semantic text similarity 260.
[0060] FIG. 2C illustrates a block diagram of the generation of a solution path by the next-generation AI engine 102 according to an example disclosed herein. The engine selector 202 of the next-generation engine 102 executes various solution paths with different combinations of multiple OCR engines 270, multiple translation engines 160, and multiple transcription engines 170. A graded score is generated for each step of a given solution path. As an example, each of steps 272, 274, and 276 of the solution path A1B2C10 can be scored and an aggregate score can be generated from the individual graded scores. Similarly, other combinations can be generated and scored. The solution path with the highest score, e.g., A1B2C10, is recommended as the final path 282. At every step, the solution with the highest accuracy rate is selected and the solution path that guarantees the highest accuracy rate among the available solution paths is recommended.
[0061] 3A illustrates a block diagram 300 of various steps involved in extracting text from frames of an input video 110 by the text extractor 106, according to some examples. The input video 110 is first analyzed 302 in frames, for example at 70 frames per second (fps), or 120 fps. Detection of frames in the video with text is based on deep neural networks (DNN) and bidirectional long short-term memory (LSTM). Each frame may be considered as an image, and AI-based image analysis models can be applied to detect 304 frames with text content, as further detailed herein.
[0062] Meaningful text typically spans multiple frames, and text may be displayed for a significant amount of time. In one example, text content that is displayed for a certain threshold time, defined as a percentage of the total running time of the input video 110, may be identified as meaningful text to be extracted. Accordingly, multiple frames with the same text content may be de-duplicated 306, and one frame that results in an image with a clear rendering of the text content may be selected during de-duplicating 306. Text is extracted 308 from the frames / images using OCR by using one of the multiple OCR engines 270 that are automatically selected in the final pass 282. The extracted text may be translated 310 to map metadata such as duration of the appearance of the text and temporal placement of the text appearance in the input video 110. After extraction and de-duplicating of the video frames, the input video 110 may be published 314 for the next step of the translation process.
[0063] FIG. 3B shows a block diagram 350 illustrating further details of identifying text from a given frame implemented by a text extractor according to examples disclosed herein. A video frame may be first analyzed via contour detection 352 to identify features indicative of the likelihood of text content being present in the frame. A source language-based CNN trained to identify source language text content can then be used to generate an ordered sequence of features indicative of text content in the contour image 354. The source language-based CNN can be trained to predict source language characters, correcting for errors that may be introduced by the process of contour detection that may misidentify other content, such as identifying geometric shapes as text content. Text area identification 356 is performed to find relevant parts or identify areas in the frame that contain text content. A CNN-based architecture that aids in character prediction can be used to locate text regions in the frame and create bounding boxes around each character. Detecting text areas in a frame can simplify and speed up the text identification process. The output from text area identification 356 is passed through a bidirectional LSTM to extract word features 358. The recognition or classification 362 of the textual content may be performed by a recurrent neural network (RNN) trained to classify text based on context. Finally, the extent of the area containing the textual content may be used as an attribute in selecting such frames with meaningful textual content. In one example, the percentage of textual features relative to non-textual features may be calculated. Thus, it is determined 364 whether the input image 320 has more than a predefined threshold percentage of text. The video translation system 100 may be configured to identify frames with textual content that occupy an area larger than a predefined threshold for the frame to be classified as a video frame with textual content.OCR can then be run on frames with text above a predefined threshold to recognize 366 the text content.
[0064] A mechanism for detecting changes in frames of the input video 110 may be implemented by the video translation system 100 to identify changes in the textual content of the video frames. It is based on a fully convolutional network in addition to a Siamese network. Rather than implementing a simple classification, a concept is proposed to compare images by customizing discriminative implicit metrics. It can be divided into two parts. First, a fully convolutional Siamese network is implemented, and the already defined distance metrics can be used to distinguish between the textual content between frames. This process can be treated as learning a dissimilarity function directly on the raw images. In summary, two images can be provided as inputs with different timestamps to a Siamese neural network. Feature vectors of both images are extracted. Note that each image must be treated by the same network for feature extraction. The extracted feature vectors are passed through a convolutional layer, and finally, a Euclidean distance can be calculated, which measures the change in the two feature vectors. If there is no substantial change in the images, the images will have approximately the same feature vectors, and if the change is significant, the images will have different feature vectors.
[0065] Of course, the video translation system 100 can be configured for translation and transcription of any given language pair. By way of example and not limitation, the video translation system 100 can be configured to translate / transcribe various combinations of languages, such as Japanese to English and vice versa. Thus, the video translation system 100 can include multiple neural networks trained to identify textual content in a particular language. Thus, for transcription / translation from Japanese to English, a neural network trained to identify a Japanese script may be used. Similarly, for translation of any combination of Spanish, English, or Arabic, another neural network trained to identify an Arabic or Spanish script may be used. Any number of such neural networks trained for various languages can be used by the video translation system 100 to translate / transcribe between various language combinations.
[0066] Conventional techniques such as OCR used to recognize text from documents may maintain a good accuracy rate for scanned documents. However, the same techniques cannot be applied to text detection from images such as video frames due to a decrease in accuracy rate. Recognizing text from video scenes requires special capabilities because each character present in the scene may differ in size, shape, color, format, orientation, aspect ratio, and image quality based on various lighting conditions, blurred backgrounds, and complex backgrounds. Therefore, changes that are important for text identification need to be detected and other changes need to be ignored. The techniques implemented for deduplication of video frames need to be robust enough to consider slightly different orientation / lighting conditions such as those that may occur in images captured using satellites, which may be subject to changes in cloud coverage, sunlight reflections, and changes in the azimuth and elevation angles of the satellite itself.
[0067] 4A and 4B illustrate video frame deduplication implemented by the text extractor 106 according to some examples disclosed herein. In FIG. 4A, two images, image 1 and image 2, corresponding to two video frames, can be received by a fully convolutional neural network 402 for feature extraction. Feature map 1 can include features extracted from image 1, and feature map 2 can include features extracted from image 2. A pixel-wise Euclidean distance 404 is estimated for feature map 1 and feature map 2. A sigmoid function 406 is applied to the result to obtain a similarity 408. In one example, the similarity is determined to be 0.15. Based on a comparison of the similarity with a predefined similarity threshold (e.g., 0.5), it is concluded that image 1 and image 2 are not similar.
[0068] Similarly, in FIG. 4B, image 1 can also be compared with image 3 corresponding to another video frame. A fully convolutional neural network 402 extracts features and generates feature map 1 and feature map 3. A pixel-wise Euclidean distance 442 between the feature maps is obtained and a sigmoid function 416 is applied to determine the similarity. Based on a comparison of the similarity value 0.9 with a predefined similarity threshold (e.g., 0.5), it can be determined that the video frames corresponding to image 1 and image 3 are similar, and one of the images can be further analyzed and the other image can be ignored.
[0069] FIG. 5 shows a block diagram 500 of steps involved in generating an output video 190 implemented by the output file processor 136 according to examples disclosed herein. First, an input audio track is extracted 502 from the input video 110 by the audio extractor 104, and the gender of the speaker(s) in the input audio track is detected 504. The input audio track is transcribed and translated 506 to generate a translation text in a target language corresponding to the input audio track. In some examples, the text generated at 506 may also include a translation of the text extracted from the input audio track and the video frames of the input video 110. A speed factor is calculated 508 to determine the speed of the translated speech or audio output relative to the video content of the input video 110. Based on the relative speed of the audio output versus the video content, it is determined 510 whether to either speed up or slow down 512 the audio output or video to synchronize with the video. If the audio or speech output is too fast while the video is slower, one or more pauses may be inserted 512 in the speech output to generate an output audio track, as described in further detail below. On the other hand, if the video is faster than the audio, additional video frames automatically generated using a generative adversarial network (GAN) may be added to slow down the video content of the input video 110. The lips of the person speaking in the video are manipulated 514 and synchronized with the translated audio. The output audio track is merged 516 with the video content (which may be modified using the additional automatically generated video frames) to generate the output video 190 in the target language.
[0070] FIG. 6 illustrates an architecture 600 of gender detection implemented by the gender detector 142 according to examples disclosed herein. The gender detector 142 may include a gender model 610 based on a CNN / CNN-LSTM approach for gender detection in an input audio track extracted from an input video 110. Gender may be detected not only from a comparison of voice qualities such as tone, but also based on language, accent, style, etc. A dataset 602 may be prepared with audio samples of different voices with different tones, accents, and styles speaking a particular language to train the gender model 610 for gender detection in one language. As an example, in addition to tone, certain words such as "he" and "she" indicate gender. Some languages include gender-specific verb forms. Thus, the gender model 610 may be trained to use such semantic information in addition to tone for gender detection. The audio samples in the dataset 602 are first converted to mel spectrograms. The mel spectrograms are preprocessed by shuffling, resizing, and normalizing to obtain a preprocessed dataset 604. The pre-processed dataset 604 is further split to form a training set 612, a validation set 614, and a test set 616 that are used to generate a gender model 610. Similarly, different gender models implementing the CNN / CNN-LSTM approach can be trained for gender detection in different languages. As mentioned above, a gender model specific to a language may use a specific type of linguistic data (e.g., specific words, e.g., “he”, “she”, etc.) in addition to voice quality for gender detection, and a different gender model used for a different language may use a different type of semantic information (e.g., gender-specific verb forms). Once trained for a particular language, the gender model 610 can be evaluated 606 for accuracy, precision / recall using a confusion matrix. The convolutional network layer 650 processes the audio received as the input spectrogram 620 and identifies gender at the output layer 630.
[0071] The speed at which video frames are actuated in the input video 110 may not necessarily match the speed at which the target language is spoken, which may result in duration mismatches between the audio generated from the translation and the original video. This is because the input video 110 was originally created for the source language, and converting it to the target language may change the speech rate, pauses, and style. These differences that occur during audio dubbing can be minimized using a speed coefficient. The formula for obtaining the speed coefficient (SC) is shown below:
[0072] Speed factor (SC) = duration of audio segment / duration of audio segment from subtitle file Equation (1)
[0073] The value of SC determines the speed of the audio. A larger value of SC will increase the duration (and slow down) of the translated audio / speech output, while a smaller value of the speed factor will decrease the duration (and speed up) of the translated audio. Some possible scenarios are considered below.
[0074] a) The translated audio is longer than the original audio: In this case, the SC of the translated audio is reduced by a small value and the video frames of the original video can be extended such that a balanced output in terms of speed is obtained with very little observable changes.
[0075] b) The translated audio is shorter than the original audio: In this case, the speed factor of the translated audio is increased by a small value and then pauses are intelligently inserted in the translated audio so that a balanced output in terms of speed is obtained with very little observable change. A pause file can be generated accordingly and divided into two equal segments. Based on the duration and the segment, pauses can be added before and after the generated / translated audio file. Experiments have been performed and it has been determined that typical speed factor values that provide good synchronization between the audio file and the video frames appear to be between 0.8 and 1.3. A bilingual text aligner can be used to align the text in the source language with that in the target language. This is used to create a parallel corpus for the video translation system 100. The two languages can also be mapped to separate vector spaces. Sentence embeddings may be required to perform the bilingual text alignment. A forced alignment technique of automatic speech recognition can be used to align the audio and text.
[0076] FIG. 7 shows a block diagram 700 including various steps involved in automatic video frame generation according to examples disclosed herein. In certain cases where the audio segment is too fast, it can be slowed down until the speed factor reaches a value of 1.3. This conversion may result in an increase in the duration of the audio. However, if the audio duration is increased in a suboptimal manner, each part of the audio is still out of sync with the corresponding part of the video, and the video may have a duration less than the audio duration. To overcome this asynchrony, duplicated video frames can be generated 702. In one example, a generative adversarial network (GAN) can be used to generate high-resolution images. This increases the complexity of the video translation system 100, since the video frames generated using GAN may need to maintain spatial and temporal consistency with the original video, i.e., existing frames of the input video 110. A video can be viewed as a uniform sequence of points in a latent space, where each point corresponds to an individual video frame. Thus, a video generator can be designed to generate a sequence of points in a latent space, and an image generator can be designed to map the generated points to an image space. For the image generator, a temporal shift generator can be designed that introduces a temporal shift to the individual frames of the generator. This shift mechanism ensures the exchange of information between adjacent individual frames of the video.
[0077] Based on the extended audio duration, the GAN-generated frames can be added 704 to the input video 110. A new audio file, i.e., output audio track, can be generated by inserting 706 pauses to the translated audio input, i.e., speech output. The output video 190 can be generated by merging 708 the generated audio file with the modified video that includes the GAN-generated frames.
[0078] FIG. 8 shows a diagram of a temporal shift 800 inserted into the input video 110 according to an example disclosed herein. The temporal shift generator allows adding video frames to the input video 110 for long speech segments, i.e., for segments where at least a portion of the translated audio file has a greater temporal length than the corresponding portion of the input video 110. The shifting operation can be performed by the temporal shift generator replacing the features of the frame corresponding to the current timestamp (T0) with features from individual frames before and after T0. That is, features from individual frames immediately before and after T0 replace the features of the frame corresponding to T0. To determine the individual frames, edge descriptors of the frames are calculated. Then, the Euclidean distance of the neighboring frames from the current frame is calculated. In general, from various experiments, it has been determined that the value of the Euclidean distance threshold for identifying individual video frames in any given video is 0.3. If the identified individual frames are within T0, the edge descriptors of the frames are calculated. d-1 and T d+1 , then a temporal shift 800 can be implemented that allows for generation of a video frame that fits between the individual frames.
[0079] FIG. 9 shows an architecture of a video generator 900 according to an example disclosed herein. The video generation architecture of the GAN includes a sequence generator 902, an image generator 904, and a video identifier 910. After the temporal shift generator 950, an image generator (IG) 904 including 2D convolution can be added. The image generator 904 receives information of adjacent individual frames, such as frame 0, frame 1, etc. The video identifier 910 may determine whether the frames generated by the image generator 904 can be used to create the output video 190. The video identifier 910 is designed to include a 2D image identifier 912 that evaluates a subset of video frames and a 3D identifier 914 that evaluates all frames for video motion consistency. Thus, the video identifier 910 can provide real-time feedback to the image generator 904 in an iterative process. The video generator 900, including the image generator 904 and the video classifier 910, may be explicitly trained using training images for image generation and image quality judgment.
[0080] FIG. 10 shows a GAN-based generator 1000 according to examples disclosed herein. The generator architecture for lip sync using GAN includes two networks: a generator 1000 that generates a face in sync with the provided audio, and a classifier (described later) that validates the generated face so that the generated face is synchronized with the output audio track. The generator 1000 can be trained in an adversarial manner so that the generator 1000 learns to create realistic images in sync with the output audio track. The generator network includes an audio encoder 1002, a face encoder 1004, and a face decoder 1006. In addition, face posture detection can also be implemented so that posture can be provided as an input to the face encoder 1004. It should be understood that details regarding the number of blocks in various networks, such as the audio encoder 1002, the face encoder 1004, and the face decoder 1006, are shown for illustrative purposes only, and a greater or lesser number of blocks may be used in the generator 1000 according to examples disclosed herein.
[0081] Refer to the face encoder 1004. An input ground truth face image 1014 with a target pose can be provided. The bottom half of the input ground truth face image 1014 may be masked to provide information only about the face pose and not about the lip shape. The face encoder 1004 includes a series of residual blocks with a downsampling layer in between to embed the input ground truth face image 1014 into a face embedding. A CNN network can be used as the audio encoder 1002, taking Mel-frequency cepstral coefficient (MFCC) heatmaps as input to create an audio embedding 1008, which can be further concatenated with the face embedding 1012 to create an audio-visual joint embedding. The face decoder 1006 creates a lip-synced face 1018 from the audio-visual joint embedding by overlaying the masked regions of the input ground truth face image 1014 with the appropriate mouth shape. The face decoder 1006 includes a series of residual blocks with a deconvolution layer to upsample the feature maps. The output layer 1020 of the face decoder 1006 includes a 1×1 convolutional layer with three filters activated by a sigmoid function. After any upsampling operation in the face encoder 1004, a skip connection can be provided between the face encoder 1004 and the face decoder 1006, which ensures that fine-grained facial features are preserved by the face decoder 1006 while generating the face. The face decoder 1006 generates fake mouth shapes that match the given poses returned as input to the face encoder 1004.
[0082] 11 shows a classifier 1100 for lip sync using GAN according to an example disclosed herein. In an example, the classifier 1100 may be used to encode the input face and audio into a fixed representation and calculate the L2 distance d between them. The face encoder 1104 and audio encoder 1102 used in the classifier network 1100 may be the same as those used in the generator 1000.
[0083] FIG. 12 illustrates the steps involved in generating translated subtitles in a target language synchronized with an input video 110 according to examples disclosed herein. An audio output is generated from a translated transcription of the input audio track and converted to a mel spectrogram 1202. The steps of automatically generating subtitles in various languages that are displayed synchronously with a given video can be implemented without human intervention. The generation of subtitles is based on language-specific stop words, pause word detection, and gender changes. Pauses are detected 1208 in sentences using a customized CNN. The duration of the pauses is calculated 1210 based on the start and end timings given in the subtitles of the input video 110. Pauses can be added 1212 at appropriate times in the translated audio track or speech output. In an example, pauses can be added at the beginning and end of sentences based on stop words.
[0084] In some instances, stop words can be used to determine if the subtitles need to be split or segmented into separate sentences. Each language may have a unique set of stop words that may differ when looking at how the language is spoken versus how it is written. As an example, in English, stop words or stop characters may include ".", "!", and "?", while in Japanese, stop words or stop characters may include ".", ",". Stop words can also be used to identify the end of a sentence. CNN-based audio segmentation can be implemented to detect gender in a video. It separates the audio signal or voice output into homogeneous zones of speech, which is useful for gender classification.
[0085] FIG. 13 illustrates steps for automatic feedback incorporation using reinforcement learning according to examples disclosed herein. This helps to periodically update the model based on the feedback without any human intervention. Upon providing the output video 190 to the user, explicit or implicit feedback 1302 may be received from the user regarding the translation and transcription output of the video translation system 100. In an example, such user feedback can be provided 1304 to the next-generation AI engine 102 that made the initial selection of the transcription engine and translation engine. When the number of user comments providing feedback reaches a certain threshold, e.g., 1000 user comments, model retraining for that language pair and domain is automatically triggered 1306. In an example, the reinforcement learning can output positive or negative rewards based on the desired or undesired behavior of the machine learning (ML) component. The reinforcement agent initiates various experiments 1308 to confirm the improvement of the accuracy rate using the newer model (i.e., for the next-generation AI engine 102). The agent collects 1310 positive rewards whenever accuracy improves and negative verdicts whenever accuracy drops. The agent continues to collect rewards based on a long-term policy and takes steps to improve overall results. Once a predefined threshold of positive rewards is achieved by the agent, the model in the next generation AI engine 102 may be updated.
[0086] FIG. 14 illustrates the incorporation of reinforcement learning to retrain the next-generation AI engine 102 and the selection of transcription and translation services. The reinforcement agent can interact with various environments (or models) associated with different transcription and translation services. Based on the desired or undesired behavior of the environment, the agent may collect positive or negative rewards, such that the model is updated and feedback 1402 is discarded if the positive reward exceeds a minimum threshold.
[0087] 15 illustrates a computer system 1500 that may be used to implement the video translation system 100. More specifically, computing machines such as desktops, laptops, smartphones, tablets, and wearables that may be used to generate data from or access data of the video translation system 100 may have the structure of the computer system 1500. The computer system 1500 may include additional components not shown, and some of the process components described may be removed and / or modified. In another example, the computer system 1500 may reside on an external cloud platform such as Amazon Web Services, the AZURE® cloud, or an in-house corporate cloud computing cluster, or an organization's computing resources, and the like.
[0088] The computer system 1500 includes a processor(s) 1502, such as a central processing unit, an ASIC, or another type of processing circuit, input / output devices 1508, such as a display, a mouse keyboard, a network interface 1504, such as a local area network (LAN), a wireless 802.11x LAN, a 3G, 4G, or 5G mobile WAN, or a WiMax WAN, and a processor-readable medium 1506. Each of these components may be operatively coupled to a bus 1508. The computer-readable medium 1506 may be any suitable medium that participates in providing instructions to the processor(s) 1502 for execution. By way of example, the processor-readable medium 1506 may be a non-transitory or non-volatile medium, such as a magnetic disk or solid-state non-volatile memory, or a volatile medium, such as a RAM. The instructions or modules stored on the processor-readable medium 1506 may include machine-readable instructions 1564 that, when executed by the processor(s) 1502 , cause the processor(s) 1502 to perform the methods and functions of the video translation system 100 .
[0089] The video translation system 100 may be implemented as software stored on a non-transitory processor-readable medium and executed by one or more processors 1502. By way of example, the processor-readable medium 1506 may store an operating system 1562, such as MAC OS, MS WINDOWS, UNIX, or LINUX, and code 1564 of the video translation system 100. The operating system 1562 may be multi-user, multi-processing, multi-tasking, multi-threading, real-time, and the like. By way of example, during run-time, the operating system 1562 runs and the code of the video translation system 100 is executed by the processor(s) 1502.
[0090] The computer system 1500 may include data storage 1510, which may include non-volatile data storage. The data storage 1510 stores any data used by the video translation system 100. The data storage 1510 may be used to store input videos, input and output audio tracks, transcriptions, subtitles, output videos, and other data used or generated by the video translation system 100 during operation.
[0091] The network interface 1504 connects the computer system 1500 to internal systems, for example, via a LAN. The network interface 1504 may also connect the computer system 1500 to the Internet. For example, the computer system 1500 may connect to a web browser and other external applications and systems via the network interface 1504.
[0092] Some of the variations, together with examples, have been described and illustrated herein. The terms, descriptions, and figures used herein are set forth by way of illustration only and are not intended as limitations. Numerous variations are possible within the spirit and scope of the subject matter as intended to be defined by the appended claims and equivalents thereof.
Claims
1. At least one processor; a non-transitory processor-readable medium storing machine-readable instructions; wherein the machine readable instructions are configured to cause the at least one processor to: identifying a domain associated with an input video including an input audio track in a source language; automatically selecting a translation engine from a plurality of translation engines and a transcription engine from a plurality of transcription engines based at least on the domain; creating a transcription of the input audio track in the source language with the transcription engine; translating the transcription into a target language using the translation engine; Extracting text from the input video, Detecting frames in the input video that have text content using contour detection techniques; identifying a subset of said frames having text content above a predetermined area as containing meaningful text; deduplication of the subset of frames containing the meaningful text; extracting the text from the input video by generating translated subtitles in the target language using the translated transcription, the translated subtitles also include a translation of the meaningful text displayed in the source language in the input video. generating the translated subtitles; generating an audio output corresponding to the translated transcription of the input audio track; using the speech output to create an output audio track in the target language that corresponds to the input audio track; generating an output video that displays video content of the input video synchronized with the output audio track and the translated subtitles; A video translation system that allows
2. To identify the domain, the at least one processor: extracting keywords from the input audio track; Producing probability scorecards for multiple predefined domains using the Naive Bayes method The video translation system of claim 1 .
3. To identify the domain, the at least one processor: The video translation system of claim 2 , further comprising: outputting a domain with a highest probability of the predetermined plurality of domains as the domain of the input video.
4. To automatically select the translation engine and the transcription engine, the processor:
2. The video translation system of claim 1, further comprising: a trained machine learning (ML) model is used to generate multiple solution paths based on the domain, each of the multiple solution paths including a unique combination of an optical character recognition (OCR) engine, one of the multiple transcription engines, and one of the multiple translation engines.
5. To automatically select the translation engine and the transcription engine, the at least one processor: scoring each of the plurality of solution paths based on accuracy rates of the OCR engine, the transcription engine, and the translation engine used in the unique combination for the source language, the target language, and the domain; selecting the OCR engine, the transcription engine, and the translation engine from a solution path having a highest score among the plurality of solution paths; The video translation system according to claim 4 .
6. To generate the translated subtitles, the at least one processor: Extracting the text from the input video using optical character recognition (OCR) techniques. The video translation system of claim 1 .
7. To identify the meaningful text from the input video, the at least one processor further comprises: For each of the frames containing the text content, generating an ordered sequence of features using a trained convolutional neural network (CNN); identifying an area within the frame that includes the text content based on the ordered sequence of features; predicting characters of the text content using a source language based CNN trained to identify characters of the source language; Extracting word features based on the output of the source language-based CNN using a bidirectional long short-term memory (LSTM); Calculating a percentage of text features to non-text features; determining that the frame contains the meaningful text based on a comparison of the percentage to a predefined threshold percentage; The video translation system of claim 1 .
8. To perform deduplication of the frames, the at least one processor extracting individual feature vectors for two of the frames; measuring the Euclidean distance between the individual feature vectors; The video translation system of claim 7 .
9. To perform deduplication of the frames, the at least one processor determining a similarity between the two frames by applying a sigmoid function to the Euclidean distance; De-duplication of the two frames is performed by comparing the similarity with a predetermined similarity threshold. The video translation system of claim 8 .
10. To create the output audio track, the at least one processor identifying corresponding genders associated with various portions of the input audio track; generating said audio output based on said corresponding gender; The video translation system of claim 1 .
11. To generate the output video, the at least one processor: comparing a duration of the speech output corresponding to the translated transcription with a duration of the input audio track; determining that the audio output is asynchronous with a corresponding portion of the input video; calculating a speed factor as a ratio of the duration of the input audio track divided by the duration of the audio output; manipulating one or more of the audio output and the video frames of the input video based on the value of the speed factor; The video translation system of claim 1 .
12. To generate the output video, the at least one processor: determining that the audio output has a shorter duration than the input audio track; determining an increase to be achieved in the value of said velocity factor; generating the output audio track by inserting pauses in the audio output before and after audio segments of the audio output, the duration of the pauses being determined based on the increase in the value of the speed factor to be achieved; The video translation system of claim 11 .
13. To generate the output video, the at least one processor: determining that the audio output has a longer duration than the input audio track; determining the reduction to be achieved in the value of the rate factor; adding video frames to the video content of the input video based on the reduction in the value of the speed factor to be achieved; and The video translation system of claim 11 .
14. To add the video frames to the input video, the at least one processor:
14. The video translation system of claim 13, further comprising: a generative adversarial network (GAN) including a generator and a classifier that automatically generates new video frames, the generator producing images of the video frames that are verified by the classifier.
15. To automatically generate the new video frame, the at least one processor comprises:
15. The video translation system of claim 14, further comprising: generating the new video frames based on a received ground truth pose of a speaker imaged in the video frames of the input video, the new video frames including a fake mouth shape along with the ground truth pose of the speaker.
16. identifying a domain associated with an input video having an input audio track in a source language; automatically selecting a translation engine and a transcription engine based on the domain; creating a transcription of the input audio track in the source language by the transcription engine; translating the transcription into a target language using the translation engine; generating an audio output corresponding to the translated transcription of the input audio track; Extracting text from the input video, comprising: detecting frames in the input video that have text content using contour detection techniques; identifying a subset of said frames having text content above a predetermined area as containing meaningful text; deduplicating the subset of frames that contain the meaningful text; extracting the text from the input video by creating a translated subtitle using the translated transcript, the translated subtitles also include a translation of the meaningful text displayed in the source language in the input video. creating the translated subtitles; creating an output audio track in the target language from the speech output; generating an output video that displays video content of the input video synchronized with the output audio track and the translated subtitles; The method includes:
17. The step of generating an output audio track further comprises: Detecting the gender of speech segments of the input audio track using a custom convolutional neural network (CNN) with a long short-term memory (LSTM) network trained on a dataset having audio samples of people of different genders speaking in different languages, different accents, different tones, and different styles.
17. The method of claim 16, comprising:
18. Training the custom CNN with the LSTM network further comprises: training the custom CNN with the LSTM network to detect the gender in the source language using language-specific features contained in the dataset; 20. The method of claim 17, comprising:
19. Training the custom CNN with the LSTM network further comprises: converting the audio samples into a mel spectrogram; shuffling, resizing and normalizing the mel spectrogram; splitting the dataset into a training dataset, a validation dataset, and a test dataset; 20. The method of claim 18, comprising:
20. The step of generating the translated subtitles further comprises: detecting stop words in the source language from the transcription; using the stop words to identify beginnings and ends of sentences in the transcript; 17. The method of claim 16, comprising:
21. The step of generating the translated subtitles further comprises: selecting a glossary based on the domain, the source language, and the target language, the glossary including domain-specific terms for one or more of the source language and the target language; 20. The method of claim 18, comprising:
22. A non-transitory processor-readable storage medium containing machine-readable instructions, the machine-readable instructions configured to cause a processor to: identifying a domain associated with an input video having an input audio track in a source language; automatically selecting a translation engine and a transcription engine based at least on the domain; creating a transcription of the input audio track in the source language with the transcription engine; translating the transcription into a target language using the translation engine; generating an audio output corresponding to the translated transcription of the input audio track; Extracting text from the input video, Detecting frames in the input video that have text content using contour detection techniques; identifying a subset of said frames having text content above a predetermined area as containing meaningful text; deduplication of the subset of frames containing the meaningful text; extracting the text from the input video by generating translated subtitles in the target language using the translated transcription, the translated subtitles also include a translation of the meaningful text displayed in the source language in the input video. generating the translated subtitles; using the speech output to create an output audio track in the target language that corresponds to the input audio track; generating an output video that displays video content of the input video synchronized with the output audio track and the translated subtitles; A non-transitory processor-readable storage medium.
23. The instructions for generating the output video include instructions for the processor to:
23. The non-transitory processor-readable storage medium of claim 22, further comprising determining that the audio output is asynchronous with the video content of the input video based on a comparison of a duration of the audio output and the input audio track.
24. The instructions for generating the output video include instructions for the processor to: identifying sentence beginnings and endings in the speech output based on detection of stop words in the target language; generating the output audio track from the speech output by adding pauses to the beginnings and ends of the sentences in the speech output; 24. The non-transitory processor-readable storage medium of claim 23,
25. The instructions for generating the output video include instructions for the processor to: The following: Calculating edge descriptors for video frames before and after the frame corresponding to the current timestamp; determining corresponding Euclidean distances between the previous frame and the frame of the current timestamp and between the subsequent video frame and the frame related to the current timestamp; identifying two of the previous and subsequent frames as distinct frames that immediately precede and follow the frame corresponding to the current timestamp and have the corresponding Euclidean distances greater than a threshold value; and replacing features in the frame corresponding to the current timestamp with features from the immediately preceding and immediately succeeding distinct frames; 24. The non-transitory processor-readable storage medium of claim 23, further comprising:
26. The instructions for generating the output video include instructions for the processor to:
26. The non-transitory processor-readable storage medium of claim 25, wherein the GAN classifier network is used to evaluate the new video frames for motion consistency.
Citation Information
Patent Citations
Television device
JP2000322077A
Video translation device
JP2008065653A
Speech recognition system and speech recognition system program
JP2008158510A
Voice recognition device, voice recognition program and voice recognition method
JP2020034683A
Speech translation method and system using a multilingual text-to-speech synthesis model
JP2021511534A