KR102598824B1 - 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙 - Google Patents

미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙 Download PDF

Info

Publication number
KR102598824B1
KR102598824B1 KR1020227045220A KR20227045220A KR102598824B1 KR 102598824 B1 KR102598824 B1 KR 102598824B1 KR 1020227045220 A KR1020227045220 A KR 1020227045220A KR 20227045220 A KR20227045220 A KR 20227045220A KR 102598824 B1 KR102598824 B1 KR 102598824B1
Authority
KR
South Korea
Prior art keywords
strings
caption
translated
video
generated
Prior art date
Application number
KR1020227045220A
Other languages
English (en)
Other versions
KR20230005430A (ko
Inventor
테렌스 폴 매카트니 주니어
브라이언 콜론나
마이클 네치바
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20230005430A publication Critical patent/KR20230005430A/ko
Application granted granted Critical
Publication of KR102598824B1 publication Critical patent/KR102598824B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/233Processing of audio elementary streams
    • H04N21/2335Processing of audio elementary streams involving reformatting operations of audio signals, e.g. by converting from one coding standard to another
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234336Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by media transcoding, e.g. video is transformed into a slideshow of still pictures or audio is converted into text
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43074Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of additional data with content streams on the same device, e.g. of EPG data or interactive icon with a TV program
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/488Data services, e.g. news ticker
    • H04N21/4884Data services, e.g. news ticker for displaying subtitles

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Machine Translation (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

오리지널 캡션 데이터의 번역물을 비디오의 오디오 부분과 정렬시키기 위한 방법이 제공된다. 이 방법은, 프로세싱 디바이스에 의해, 복수의 캡션 문자열들을 포함하는 비디오에 대한 오리지널 캡션 데이터를 식별하는 단계를 포함한다. 프로세싱 디바이스는 복수의 생성된 문자열들 및 각각의 생성된 문자열에 대한 연관된 타이밍 정보를 포함하는 음성 인식 데이터를 식별한다. 프로세싱 디바이스는 문자열들 사이의 의미론적 유사성들을 표시하는 할당된 값들을 사용하여 복수의 캡션 문자열들을 복수의 생성된 문자열들에 매핑시킨다. 프로세싱 디바이스는 매핑된 개별 생성된 문자열들의 타이밍 정보에 기초하여 개별 캡션 문자열들에 타이밍 정보를 할당한다. 프로세싱 디바이스는 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여 오리지널 캡션 데이터의 번역물을 비디오의 오디오 부분과 정렬시킨다.

Description

미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙{AUTOMATED VOICE TRANSLATION DUBBING FOR PRERECORDED VIDEOS}
비디오에서의 음성을 오리지널 레코딩 언어로부터 다른 언어로 번역하려면 번역된 오디오 부분들을 오리지널 비디오 상으로 보이스 더빙하는 노동 집약적인 노력들이 수반될 수도 있다. 일반적으로, 보이스 더빙은 부가 또는 보충 레코딩들(더빙된 음성)을 오리지널 레코딩 음성과 조합하여 비디오에 대한 완성된 사운드트랙을 생성하는 것을 지칭한다. 그러나, 더빙된 음성은 오리지널 레코딩 음성과 상이할 수도 있고 오리지널 레코딩 음성의 시작 및 종료 시간들과 정렬되지 않을 수도 있다. 그 결과, 번역된 오디오가 싱크(sync)가 맞지 않는 것으로 여겨질 수도 있고 시청자(viewer)들의 관심을 끌지 못할 수도 있다.
다음은 본 개시내용의 일부 양태들의 기본적인 이해를 제공하기 위한 본 개시내용의 단순화된 요약이다. 이 요약은 본 개시내용의 광범위한 개요가 아니다. 본 개시내용의 핵심적인 요소들 또는 중요한 요소들을 식별하지도 않으며, 본 개시내용의 특정 구현들의 임의의 범주 또는 청구범위의 임의의 범주를 기술하지도 않도록 의도된다. 그 단 하나의 목적은 추후에 제시되는 더 상세한 설명에 대한 서두로서 본 개시내용의 일부 개념들을 단순화된 형태로 제시하는 것이다.
본 개시내용의 구현은, 프로세싱 디바이스에 의해, 비디오에 대한 오리지널 캡션 데이터를 식별하기 위한 방법을 포함할 수도 있고, 여기서 오리지널 캡션 데이터는, 비디오의 오디오 부분과 연관된 복수의 캡션 문자열(caption character string)들을 포함한다. 프로세싱 디바이스는, 비디오의 오디오 부분에 대해 생성되는 음성 인식 데이터를 식별할 수도 있고, 여기서 음성 인식 데이터는, 복수의 생성된 문자열들 및 각각의 생성된 문자열에 대한 연관된 타이밍 정보를 포함한다. 프로세싱 디바이스는 복수의 캡션 문자열들의 개별 캡션 문자열들과 복수의 생성된 문자열들의 개별 생성된 문자열들 사이의 의미론적 유사성들(semantic similarities)을 표시하는 할당된 값들을 사용하여 복수의 생성된 문자열들을 매핑시킬 수도 있다. 이 방법은 매핑된 개별 생성된 문자열들의 타이밍 정보에 기초하여 개별 캡션 문자열들에 타이밍 정보를 추가로 할당할 수도 있다. 프로세싱 디바이스는 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여 오리지널 캡션 데이터의 번역물을 비디오의 오디오 부분과 정렬시킬 수도 있다.
본 개시내용의 구현은 오리지널 캡션 데이터의 번역물에 대한 번역된 오디오 음성을 생성하기 위한 방법을 포함할 수도 있다. 번역된 오디오 음성은, 번역된 오디오 음성 세그먼트들의 세트를 포함하는 머신 생성된 오디오 음성일 수도 있다. 이 방법은, 오디오 음성 세그먼트들의 세트 중 번역된 오디오 음성 세그먼트들을, 번역된 오디오 음성 세그먼트들 각각에 대한 시간 간격들에 대응하는 비디오의 비디오 세그먼트들 상으로 오버레이하는 단계를 더 포함할 수도 있다. 이 방법은, 오버레이된 번역된 오디오 음성 세그먼트들을 포함하는 번역된 오디오 부분 및 비디오의 비디오 부분을 포함하는 제2 비디오를 생성하는 단계를 더 포함할 수도 있다.
본 개시내용의 양태들 및 구현들은 아래에 제공되는 상세한 설명으로부터 그리고 본 개시내용의 다양한 양태들 및 구현들의 첨부 도면들로부터 더 완전히 이해될 것이지만, 이 첨부 도면들은 본 개시내용을 특정 양태들 또는 구현들로 제한하는 것으로 취급되어서는 안 되고, 단지 설명과 이해만을 위한 것이다.
도 1은 본 개시내용의 일부 양태들에 따른, 예시적인 시스템 아키텍처를 예시한다.
도 2는 본 개시내용의 일부 양태들에 따른, 타이밍 정보를 오리지널 캡션 데이터에 할당하고 할당된 타이밍 정보를 사용하여 오리지널 캡션 데이터의 번역물을 비디오 콘텐츠 아이템의 오디오 부분과 정렬시키기 위한 방법의 흐름도를 도시한다.
도 3a는 본 개시내용의 일부 양태들에 따른, 각각의 고유 캡션 문자열 및 고유 생성된 문자열에 값들을 할당하는 예시적인 방법을 예시한다.
도 3b는 본 개시내용의 일부 양태들에 따른, 할당된 값들을 사용하여 캡션 문자열들 및 생성된 문자열들의 매칭 시퀀스들을 결정하기 위한 예시적인 방법을 예시한다.
도 4a는 본 개시내용의 일부 양태들에 따른, 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여 번역된 언어 캡션 데이터를 비디오 콘텐츠 아이템의 오디오 부분과 정렬시키기 위한 예시적인 방법을 예시한다.
도 4b는 본 개시내용의 일부 양태들에 따른, 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여 머신 생성된 번역 캡션 데이터를 비디오의 오디오 부분과 정렬시키기 위한 예시적인 방법을 예시한다.
도 5a는 본 개시내용의 일부 양태들에 따른, 복수의 캡션 문자열들 및 복수의 생성된 문자열들에 대한 할당된 값들의 예시적인 예이다.
도 5b는 본 개시내용의 일부 양태들에 따른, 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스로부터 생성되는 순차 매칭 쌍들의 예시적인 예이다.
도 5c는 본 개시내용의 일부 양태들에 따른, 할당된 타이밍 정보를 갖는 개별 캡션 문자열들의 예시적인 테이블을 예시한다.
도 6a는 본 개시내용의 일부 양태들에 따른, 번역된 오디오 음성을 비디오 상으로 오버레이하고 음성의 번역된 오디오 부분들을 포함하는 제2 비디오를 생성하기 위한 예시적인 방법을 예시한다.
도 6b는 본 개시내용의 일부 양태들에 따른, 비디오 콘텐츠 아이템에서의 오디오 및 비디오 지속기간(duration)들을 번역된 음성과 매칭시키기 위해 오버레이 파라미터들을 조정하기 위한 예시적인 방법을 예시한다.
도 7은 본 개시내용의 하나 이상의 양태들에 따라 동작하는 예시적인 컴퓨팅 시스템의 블록도를 도시한다.
본 개시내용의 양태들은 오리지널 캡션 데이터로부터의 개별 캡션 문자열들의 타이밍 정보를 사용하여 번역된 캡션 데이터를 비디오의 오디오 부분에 정렬시키는 것에 관한 것이다. 번역된 캡션 데이터는 음성의 더빙된 번역물들을 비디오 상으로 오버레이하는 데 사용되어 비디오의 번역된 버전을 생성할 수도 있다. 오리지널 비디오 및 그 비디오의 번역된 버전은 미디어 콘텐츠 아이템들에 대한 콘텐츠 공유 플랫폼 내에 저장될 수도 있다. 클라이언트 디바이스들의 사용자들은 이들의 각각의 클라이언트 디바이스들 상의 재생을 위해 비디오의 번역된 버전을 쿼리(query)하고 검색할 수도 있다. 클라이언트 디바이스들은 퍼스널 컴퓨터, 태블릿, 스마트폰, 또는 임의의 다른 컴퓨팅 디바이스를 포함할 수도 있지만, 이에 제한되지 않는다.
콘텐츠 공유 플랫폼 상에 저장되는 비디오들은, 비디오를 시청하는 사용자의 원하는 언어와는 상이한 오리지널 언어로 레코딩된 음성을 포함하는 오디오를 가질 수도 있다. 예를 들어, 콘텐츠 공유 플랫폼 상의 비디오는, 영어로 레코딩된 음성을 포함할 수도 있다; 그러나, 사용자는 단지 일본어만 이해할 수도 있고 그에 따라 비디오를 일본어로 시청하고 싶어할 것이다. 전문적으로 제작된 많은 비디오들은, 다양한 언어들로 음성을 특정하는 상이한 오디오 사운드트랙들을 포함할 수도 있다. 이들 전문적으로 제작된 비디오들의 제작자들은 외국어들을 말하는 시청자들을 위해 성우들을 사용하여 외국어 트랙들을 생성할 수도 있다. 그러나, 대체 언어 트랙들을 제작하기 위한 성우들의 사용은 시간 소모적이고 표현력이 풍부한 프로세스이다. 비용은 특정 비디오에 대해 원하는 상이한 외국어 버전들의 수에 따라 추가로 증가할 수도 있다.
비디오들의 외국어 버전들을 생성하기 위해 성우들을 사용하는 것에 대한 대안은 비디오에 외국어 자막들을 제공하는 것이다. 그 후에, 외국어 자막들이 비디오 상으로 오버레이되어 비디오 내의 발화된 단어(spoken word)들의 외국어 번역물을 디스플레이할 수도 있다. 그러나, 단순히 외국어 자막들을 제공하는 것에 대한 주요 단점은 비디오가 플레이되고 있는 동안 시청자가 자막들을 판독하도록 요구된다는 점이다. 시청자의 그 부분에 대한 이 추가적 노력은 비디오 내에 디스플레이되는 콘텐츠로부터 사용자의 초점이 멀어지게 할 수도 있다. 예를 들어, 시청자가 자동차 수리에 대한 "입문서(how-to)" 비디오를 시청하고 있는 경우, 그러면 시청자는 제공되는 외국어 자막들에 초점을 맞추기보다는 오히려 비디오 내에서 보여주는 단계들에 주의를 기울이는 것이 이로울 것이다.
외국어 자막들을 입력으로서 취하고 오리지널 비디오 상으로 오버레이될 음성을 생성하는 컴퓨터 생성 음성을 사용하는 기술들이 이용가능할 수도 있다. 그러나, 자동적으로 생성된 외국어 음성의 지속기간들을 오리지널 음성과 동기화시키는 것은 문제가 될 수도 있고, 너무 일찍 또는 너무 늦게 시작 또는 종료되는 외국어 음성을 발생시킬 수도 있다. 자막들로부터의 타이밍 정보가 사용되어 오버레이된 외국어 음성의 타이밍 간격들을 결정할 때 자동적으로 생성된 외국어 음성의 동기화 이슈들이 발생할 수도 있다. 예를 들어, 자막들과 연관된 타이밍 정보(캡션 타이밍)는 자막들이 비디오 상으로 디스플레이되어야 할 때와 관련될 수도 있다. 전형적으로, 자막들은 비디오에서의 화자(speaker)가 발화하기 전에 디스플레이되고, 화자가 발화를 마친 후에 디스플레이된 채로 유지된다. 이에 대한 이유는 시청자가 디스플레이된 자막들 내의 텍스트를 판독하기에 충분한 시간을 갖는다는 것을 보장하기 위한 것이다. 외국어 더빙을 위해 자막들이 음성으로 컨버팅될 때, 컨버팅된 음성의 지속기간이 비디오에서의 오리지널 음성의 지속기간과 매칭되지 않을 수도 있다. 그 결과, (전통적으로 행해지는 바와 같이) 캡션 타이밍에 기초하여 외국어 음성을 동기화시키면, 부정확한 음성 타이밍들을 갖는 원하지 않는 비디오들을 발생시킬 수도 있는 부정확한 음성 오버레이들을 야기시킬 수도 있다.
본 개시내용의 양태들은 번역된 음성을 비디오의 오디오 부분에 매칭시키는 방법을 결정하는 것을 보조하기 위해 오리지널 언어와 연관된 캡션 데이터와 함께 오리지널 언어와 연관된 음성 인식 데이터를 사용함으로써 상기 그리고 다른 결함들을 해결한다. 음성 인식 데이터는, 각각의 생성된 문자열에 대한 타이밍 정보를 포함하는 생성된 문자열들의 형태의 자동적으로 생성된 음성 데이터를 포함할 수도 있다. 생성된 문자열들은 비디오 콘텐츠 아이템에서 오리지널 발화 대화로부터의 단어들 및/또는 어구들을 표현할 수도 있다. 예를 들어, 자동적으로 생성된 음성 데이터는, 각각의 단어가 단어의 시작 및 종료 시간들을 설명하는 연관된 타이밍 정보를 갖는 비디오로부터의 오리지널 발화 대화의 트랜스크립트(transcript)일 수도 있다. 생성된 음성 데이터는, 음성 내의 잘못 식별된 단어들과 같은 에러들을 포함할 수도 있다. 그러한 에러들을 개선시키기 위해, 비디오에서 오리지널 발화 단어들을 표현하는 캡션 문자열들을 포함하는 오리지널 캡션 데이터가 생성된 음성 데이터와 함께 사용될 수도 있다. 오리지널 캡션 데이터는, 비디오 콘텐츠 아이템에 캡션을 넣기 위해 사용되는 캡션 텍스트로부터 제공되는 오리지널 발화 대화의 트랜스크립트를 포함할 수도 있다.
오리지널 캡션 데이터 내의 캡션 문자열들은 생성된 문자열들로부터의 타이밍 정보를 오리지널 캡션 데이터의 캡션 문자열들에 할당하기 위해 음성 인식 데이터에서 생성된 문자열들에 매핑될 수도 있다. 캡션 문자열들을 생성된 문자열들에 매핑시키는 것은, 개별 캡션 문자열들과 개별 생성된 문자열들 사이의 의미론적 유사성들을 표시하는, 개별 캡션 문자열들 및 개별 생성된 문자열들에 할당되는 값들을 사용하여 수행될 수도 있다. 그렇게 함으로써, 오리지널 캡션 데이터를 비디오의 오디오 부분에 정렬시키기 위해 오리지널 캡션 데이터로부터의 음성의 정확도가 음성 인식 데이터로부터의 타이밍 정보의 정확도와 조합될 수도 있다.
일단 오리지널 캡션 데이터 내의 캡션 문자열들이 음성 인식 데이터에서 생성된 문자열들에 매핑되고 생성된 문자열들로부터의 타이밍 정보가 오리지널 캡션 데이터의 캡션 문자열들에 할당되면, 오리지널 캡션 데이터 및 할당된 타이밍 정보가 사용되어, (오리지널 캡션 데이터 이외의 언어에 대한) 번역된 캡션 데이터를 비디오의 오디오 부분과 정렬시킬 수 있다. 번역된 캡션 데이터는, 비디오의 오디오 부분과 연관된 번역된 문자열들을 포함할 수도 있다.
정렬 프로세스의 일부로서, 캡션 문자열들에서의 구두점에 기초하여 오리지널 캡션 데이터의 캡션 문자열들로부터 캡션 문장 프래그먼트(caption sentence fragment)들이 생성될 수도 있다. 부가적으로, 번역된 문자열들에서의 구두점에 기초하여 번역된 캡션 데이터의 번역된 문자열들로부터 번역된 문장 프래그먼트들이 생성될 수도 있다. 캡션 문장 프래그먼트들은 번역된 캡션 데이터 및 오리지널 캡션 데이터와 연관된 타이밍에 기초하여 대응하는 번역된 문장 프래그먼트들에 매핑될 수도 있다. 오리지널 캡션 데이터로부터의 개별 문자열들을 번역된 캡션 데이터의 대응하는 개별 문자열들에 매핑시키기보다는 오히려, 오리지널 캡션 데이터의 문장 프래그먼트들을 번역된 데이터의 대응하는 문장 프래그먼트들에 매핑시키면 프로세싱 리소스들을 절약하는데, 이는 개별 문자열들 사이의 매핑이 오리지널 문자열들과 번역된 문자열들 사이의 일대일 대응을 결정하기 위해 오리지널 캡션 데이터와 번역된 캡션 데이터 양측 모두에서의 문자열들의 의미의 깊은 이해를 수반할 것이기 때문이다. 문자열 레벨에서 오리지널 캡션 데이터 대 번역된 캡션 데이터 대응을 결정하는 것은 문자열 레벨에서 캡션 데이터의 적절한 정렬을 보장하기 위해 상당한 동작들을 소비할 것이다.
각각의 결과적인 캡션 문장 프래그먼트에 대해, 캡션 문장 프래그먼트에서의 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여, 캡션 문장 프래그먼트를 커버하는 시간 간격이 추정될 수 있다. 시간 간격들은 매핑된 개별 캡션 문장 프래그먼트들의 추정된 시간 간격들에 기초하여 개별 번역된 문장 프래그먼트들에 할당될 수도 있다. 번역된 문장들은 구두점에 기초하여 연속적인 번역된 문장 프래그먼트들로부터 생성될 수도 있다. 각각의 번역된 문장은, 각각의 번역된 문장에 포함되는 번역된 문장 프래그먼트들의 할당된 시간 간격들에 의해 규정되는 타이밍 정보를 가질 수도 있다. 번역된 문장들은 각각의 번역된 문장의 타이밍 정보를 사용하여 비디오의 오디오 부분과 정렬될 수도 있다.
일부 구현들에서, 외국어 더빙은 오리지널 캡션 데이터의 번역을 위해 머신 생성된 음성인 번역된 오디오 음성을 사용한다. 번역된 오디오 음성은, 번역된 오디오 음성 세그먼트들 각각에 대한 시간 간격들에 대응하는 비디오의 비디오 세그먼트들 상으로 오버레이될 수 있는 번역된 오디오 음성 세그먼트들을 포함한다. 결과적인 비디오는, 오버레이된 번역된 오디오 음성 세그먼트들을 포함하는 번역된 오디오 부분 및 오리지널 비디오 부분을 포함할 수도 있다.
본 개시내용의 양태들은 번역된 캡션 음성으로부터 생성되는 번역된 오디오 부분들을 비디오에서의 오리지널 오디오 음성의 지속기간들 및 타이밍들과 정확하게 정렬시키는 것을 제공한다. 그 결과, 더빙된 오디오가 비디오 상으로 원활히 통합되어, 그에 의해 사용자 시청 경험을 개선시키고 외국어로 더빙된 비디오들에 대한 사용자의 관심을 증가시킨다.
도 1은 본 개시내용의 하나의 구현에 따른, 예시적인 시스템 아키텍처(100)를 예시한다. 시스템 아키텍처(100)는 클라이언트 디바이스들(110A 내지 110Z), 네트워크(105), 데이터 스토어(data store)(106), 콘텐츠 공유 플랫폼(120), 서버(130), 및 음성 인식 및 생성 서비스(150)를 포함한다. 하나의 구현에서, 네트워크(105)는 공용 네트워크(예를 들어, 인터넷), 사설 네트워크(예를 들어, 근거리 네트워크(local area network)(LAN) 또는 광역 네트워크(wide area network)(WAN)), 유선 네트워크(예를 들어, 이더넷 네트워크), 무선 네트워크(예를 들어, 802.11 네트워크 또는 Wi-Fi 네트워크), 셀룰러 네트워크(예를 들어, 롱 텀 에볼루션(Long Term Evolution)(LTE) 네트워크), 라우터들, 허브들, 스위치들, 서버 컴퓨터들, 및/또는 이들의 조합을 포함할 수도 있다. 하나의 구현에서, 데이터 스토어(106)는 메모리(예를 들어, 랜덤 액세스 메모리), 캐시, 드라이브(예를 들어, 하드 드라이브), 플래시 드라이브, 데이터베이스 시스템, 또는 데이터를 저장하는 것이 가능한 다른 타입의 컴포넌트 또는 디바이스일 수도 있다. 데이터 스토어(106)는, 다수의 컴퓨팅 디바이스들(예를 들어, 다수의 서버 컴퓨터들)에 또한 걸쳐 있을 수도 있는 다수의 저장 컴포넌트들(예를 들어, 다수의 드라이브들 또는 다수의 데이터베이스들)을 또한 포함할 수도 있다.
클라이언트 디바이스들(110A 내지 110Z)은 각각 퍼스널 컴퓨터(PC)들, 랩톱들, 모바일 폰들, 스마트 폰들, 태블릿 컴퓨터들, 네트워크 연결된 텔레비전들, 넷북 컴퓨터들 등과 같은 컴퓨팅 디바이스들을 포함할 수도 있다. 일부 구현들에서, 클라이언트 디바이스(110A 내지 110Z)는 또한 "사용자 디바이스들"이라고 지칭될 수도 있다. 각각의 클라이언트 디바이스는 미디어 뷰어(111)를 포함한다. 하나의 구현에서, 미디어 뷰어(111)는, 사용자들이 비디오들과 같은 콘텐츠를 시청하게 하는 애플리케이션들일 수도 있다. 예를 들어, 미디어 뷰어(111)는, 웹 서버에 의해 서빙되는 콘텐츠(예를 들어, 웹 페이지들 예컨대 하이퍼 텍스트 마크업 언어(Hyper Text Markup Language)(HTML) 페이지들, 디지털 미디어 아이템들 또는 콘텐츠 아이템들 등)를 액세스, 검색, 제시, 및/또는 내비게이팅할 수 있는 웹 브라우저일 수도 있다. 미디어 뷰어(111)는 콘텐츠(예를 들어, 웹 페이지, 미디어 뷰어)를 사용자에게 렌더링, 디스플레이, 및/또는 제시할 수도 있다. 미디어 뷰어(111)는 웹 페이지(예를 들어, 온라인 머천트(online merchant)에 의해 판매되는 제품에 관한 정보를 제공할 수도 있는 웹 페이지)에 임베딩되는 임베딩된 미디어 플레이어(예를 들어, 플래시® 플레이어 또는 HTML5 플레이어)를 또한 디스플레이할 수도 있다. 다른 예에서, 미디어 뷰어(111)는, 사용자들이 디지털 비디오들과 같은 디지털 미디어 콘텐츠 아이템들을 시청하게 하는 독립형 애플리케이션일 수도 있다.
미디어 뷰어들(111)은 서버(130) 및/또는 콘텐츠 공유 플랫폼(120)에 의해 클라이언트 디바이스들(110A 내지 110Z)에 제공될 수도 있다. 예를 들어, 미디어 뷰어들(111)은, 콘텐츠 공유 플랫폼(120)에 의해 제공되는 웹 페이지들에 임베딩되는 임베딩된 미디어 플레이어들일 수도 있다. 다른 예에서, 미디어 뷰어들(111)은, 서버(130)와 통신하는 애플리케이션들일 수도 있다.
콘텐츠 공유 플랫폼(120)에 의해 수행되는 것으로서 하나의 구현에서 설명되는 기능들은, 적절한 경우, 다른 구현들에서 클라이언트 디바이스들(110A 내지 110Z) 상에서 또한 수행될 수 있다. 부가적으로, 특정 컴포넌트에 기인하는 기능성은, 함께 동작하는 상이한 또는 다수의 컴포넌트들에 의해 수행될 수 있다. 콘텐츠 공유 플랫폼(120)은 또한, 적절한 애플리케이션 프로그래밍 인터페이스들을 통해 다른 시스템들 또는 디바이스들에 제공되는 서비스로서 액세스될 수 있고, 따라서 웹사이트들에서의 사용으로 제한되지 않는다.
하나의 구현에서, 콘텐츠 공유 플랫폼(120)은 사용자에게 미디어 아이템들(콘텐츠 아이템들이라고도 또한 지칭됨)에의 액세스를 제공하거나 그리고/또는 미디어 아이템들을 사용자에게 제공하기 위해 사용될 수도 있는 (랙마운트 서버, 라우터 컴퓨터, 서버 컴퓨터, 퍼스널 컴퓨터, 메인프레임 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 네트워크 연결된 텔레비전, 데스크톱 컴퓨터 등과 같은) 하나 이상의 컴퓨팅 디바이스들, 데이터 스토어들(예를 들어, 하드 디스크들, 메모리들, 데이터베이스들), 네트워크들, 소프트웨어 컴포넌트들, 및/또는 하드웨어 컴포넌트들일 수도 있다. 예를 들어, 콘텐츠 공유 플랫폼(120)은 사용자가 미디어 아이템들에 대해 소비, 업로드, 탐색, ("좋아요"), 싫어요의 승인, 및/또는 코멘트하게 할 수도 있다. 콘텐츠 공유 플랫폼(120)은, 사용자에게 미디어 아이템들에의 액세스를 제공하기 위해 사용될 수도 있는 웹사이트(예를 들어, 웹페이지)를 또한 포함할 수도 있다.
본 개시내용의 구현들에서, "사용자"는 단일 개체로서 표현될 수도 있다. 그러나, 본 개시내용의 다른 구현들은, "사용자"가 자동화된 소스 및/또는 사용자들의 세트에 의해 제어되는 엔티티(entity)라는 것을 포괄한다. 예를 들어, 소셜 네트워크에서 커뮤니티로서 연합된 개별 사용자들의 세트는 "사용자"로 간주될 수도 있다. 다른 예에서, 자동화된 소비자는, 콘텐츠 공유 플랫폼(120)의, 토픽 채널과 같은, 자동화된 인제스천 파이프라인(automated ingestion pipeline)일 수도 있다.
콘텐츠 공유 플랫폼(120)은 다수의 채널들(예를 들어, 채널들 A 내지 Z)을 포함할 수도 있다. 채널은 공통 소스로부터 이용가능한 데이터 콘텐츠이거나 또는 공통 토픽, 테마, 또는 내용을 갖는 데이터 콘텐츠일 수 있다. 데이터 콘텐츠는, 사용자에 의해 선정된 디지털 콘텐츠, 사용자에 의해 이용가능해진 디지털 콘텐츠, 사용자에 의해 업로드된 디지털 콘텐츠, 콘텐츠 제공자에 의해 선정된 디지털 콘텐츠, 브로드캐스터에 의해 선정된 디지털 콘텐츠 등일 수 있다. 예를 들어, 채널 X는 비디오들 Y 및 Z를 포함할 수 있다. 채널은, 채널 상에서 액션들을 수행할 수 있는 사용자인 소유자와 연관될 수 있다. 소유자가 채널 상에서 디지털 콘텐츠를 이용가능하게 하는 것, 소유자가 다른 채널과 연관된 디지털 콘텐츠를 선택하는 것(예를 들어, 좋아요 표시(liking)), 소유자가 다른 채널과 연관된 디지털 콘텐츠에 대해 코멘트하는 것 등과 같은 소유자의 액션들에 기초하여 상이한 활동들이 채널과 연관될 수 있다. 채널과 연관된 활동들은 채널에 대한 활동 피드로 수집될 수 있다. 채널의 소유자 이외의 사용자들은 이들이 관심있는 하나 이상의 채널들을 구독할 수 있다. "구독"의 개념은 "좋아요 표시", "팔로잉(following)", "친구추가(friending)" 등이라고도 또한 지칭될 수도 있다.
일단 사용자가 채널을 구독하면, 사용자에게는 채널의 활동 피드로부터의 정보가 제시될 수 있다. 사용자가 다수의 채널들을 구독하는 경우, 사용자가 구독하는 각각의 채널에 대한 활동 피드가 신디케이트(syndicate)된 활동 피드에 조합될 수 있다. 신디케이트된 활동 피드로부터의 정보가 사용자에게 제시될 수 있다. 채널들은 이들 자신의 피드들을 가질 수도 있다. 예를 들어, 콘텐츠 공유 플랫폼 상에서 채널의 홈 페이지로 내비게이팅할 때, 그 채널에 의해 생성된 피드 아이템들이 채널 홈 페이지 상에서 보여질 수도 있다. 사용자들은 신디케이트된 피드를 가질 수도 있는데, 이 신디케이트된 피드는 사용자가 구독하는 모든 채널들로부터의 콘텐츠 아이템들의 적어도 서브세트로 구성되는 피드이다. 신디케이트된 피드들은, 사용자가 구독하지 않은 채널들로부터의 콘텐츠 아이템들을 또한 포함할 수도 있다. 예를 들어, 콘텐츠 공유 플랫폼(120) 또는 다른 소셜 네트워크들은 추천된 콘텐츠 아이템들을 사용자의 신디케이트된 피드에 삽입할 수도 있거나, 또는 사용자의 관련된 연결과 연관된 콘텐츠 아이템들을 신디케이트된 피드에 삽입할 수도 있다.
각각의 채널은 하나 이상의 미디어 콘텐츠 아이템들(121)을 포함할 수도 있다. 미디어 콘텐츠 아이템(121)의 예들로는 디지털 비디오, 디지털 영화들, 디지털 사진들, 디지털 음악, 웹사이트 콘텐츠, 소셜 미디어 업데이트들, 전자 서적(ebook)들, 전자 잡지들, 디지털 신문들, 디지털 오디오 북들, 전자 저널들, 웹 블로그들, RSS(real simple syndication) 피드들, 전자 만화책들, 소프트웨어 애플리케이션들 등을 포함할 수 있고, 이들로 제한되지 않는다. 일부 구현들에서, 미디어 콘텐츠 아이템(121)은 또한 비디오 콘텐츠 아이템이라고도 지칭된다.
미디어 콘텐츠 아이템(121)은 인터넷을 통해 그리고/또는 모바일 디바이스 애플리케이션을 통해 소비될 수도 있다. 본 명세서에서 사용되는 바와 같이, "미디어", "미디어 아이템", "온라인 미디어 아이템", "디지털 미디어", "디지털 미디어 아이템", "콘텐츠", "콘텐츠 아이템", 및 "비디오 콘텐츠 아이템"은, 디지털 미디어 아이템을 엔티티에 제시하도록 구성되는 소프트웨어, 펌웨어 또는 하드웨어를 사용하여 실행 또는 로드될 수 있는 전자 파일을 포함할 수 있다. 하나의 구현에서, 콘텐츠 공유 플랫폼(120)은 데이터 스토어(106)를 사용하여 미디어 콘텐츠 아이템들(121)을 저장할 수도 있다.
하나의 구현에서, 음성 인식 및 생성 서비스(150)는 비디오 내의 발화된 언어를 식별하기 위해 비디오 콘텐츠 아이템으로부터 오디오를 분석함으로써 음성 인식 데이터를 생성하도록 구성되는 하나 이상의 컴퓨팅 디바이스들(예를 들어, 랙마운트 서버, 서버 컴퓨터 등)일 수도 있다. 음성 인식 및 생성 서비스(150)는 자동 음성 인식(automatic speech recognition)(ASR), STT(speech-to-text), 또는 오디오에서 발화된 대화를 인식하도록 구성되는 임의의 다른 음성 인식 알고리즘들을 구현할 수도 있다. 음성 인식 데이터는 복수의 생성된 문자열들을 포함할 수도 있는데, 그 각각은 오디오 부분으로부터의 하나 이상의 발화된 단어들을 표현한다. 각각의 생성된 문자열은, 오디오 부분 내에서 생성된 문자열의 시작 및 종료 시간을 식별하는 오디오 타이밍을 포함할 수도 있다. 예를 들어, 음성 인식 및 생성 서비스(150)가 "Hello world"의 발화된 음성을 갖는 오디오를 포함하는 비디오를 분석하는 경우, 그러면 음성 인식 및 생성 서비스(150)는 "Hello world"로부터의 생성된 문자열들을 "hello" 및 "world"로서 포함하는 음성 인식 데이터를 생성하기 위해 ASR을 구현할 수도 있다. 생성된 문자열들은, 비디오에서 "hello"가 0:05초에 시작하고 0:07초에 종료됨을 표시하는 연관된 타이밍 정보를 가질 수도 있다. 유사하게, "world" 문자열은, "world"가 0:07초에 시작하고 0:08초에 종료됨을 표시하는 타이밍 정보를 가질 수도 있다. 음성 인식 및 생성 서비스(150)는 비디오 콘텐츠 아이템들 내에서 다수의 상이한 발화된 언어들을 인식하도록 구성될 수도 있다.
하나의 구현에서, 음성 인식 및 생성 서비스(150)는 캡션 데이터를 사용하여 발화된 대화의 컴퓨터화된 오디오를 생성하도록 구성될 수도 있다. 예를 들어, 음성 인식 및 생성 서비스(150)는 2명의 상이한 사람들 사이의 대화의 트랜스크립트의 캡션 데이터를 수신할 수도 있다. 음성 인식 및 생성 서비스(150)는 2개의 상이한 컴퓨터 생성된 보이스들을 캡션 데이터에 연관시킨 후에 캡션 데이터를 입력으로서 사용하여 대화를 표현하는 오디오를 생성할 수도 있다. 음성 인식 및 생성 서비스(150)는 상이한 언어들로 캡션 데이터를 입력하고 입력된 캡션 데이터의 언어로 음성에 대한 오디오 부분들을 생성하도록 구성될 수도 있다. 예를 들어, 음성 인식 및 생성 서비스(150)는 일본어의 문장을 수신할 수도 있고, 그 문장을 일본어 문장을 발화하는 컴퓨터 보이스를 표현하는 오디오로 합성할 수도 있다.
하나의 구현에서, 서버(130)는 하나 이상의 컴퓨팅 디바이스들(예를 들어, 랙마운트 서버, 서버 컴퓨터 등)일 수도 있다. 서버(130)는 콘텐츠 공유 플랫폼(120)에 포함되거나 또는 상이한 시스템의 일부일 수도 있다. 서버(130)는 캡션 정렬 컴포넌트(140) 및 오디오/비디오 지속기간 매칭 컴포넌트(145)를 호스팅할 수도 있다. 캡션 정렬 컴포넌트(140)는 캡션 데이터 및 음성 인식 데이터 내의 문자열들의 의미론적 유사성들에 기초하여 캡션 데이터를 음성 인식 데이터에 정렬하도록 구성될 수도 있다. 예를 들어, 캡션 정렬 컴포넌트(140)는, 특정 비디오 콘텐츠 아이템으로부터의 오디오의 캡션 트랜스크립트를 표현하는 오리지널 캡션 데이터를, 특정 비디오 콘텐츠 아이템으로부터의 자동적으로 인식된 음성을 표현하는 음성 인식 데이터에 정렬시키라는 요청을 수신할 수도 있다. 캡션 정렬 컴포넌트(140)는, 매칭 문자열 시퀀스들을 결정하고 매칭된 문자열 시퀀스들에 대한 매핑 정보를 생성하기 위해 오리지널 캡션 데이터 및 음성 인식 데이터로부터의 문자열들 내의 의미론적 유사성들을 사용할 수도 있다. 예를 들어, 캡션 정렬 컴포넌트(140)가 오리지널 캡션 데이터로부터의 "this is really cool"이라는 어구가 음성 인식 데이터에서의 "this is really cool"이라는 동일한 어구와 매칭된다고 결정하는 경우, 그러면 캡션 정렬 컴포넌트(140)는, "this is really cool"을 구성하는 캡션 문자열들을 음성 인식 데이터로부터의 대응하는 생성된 문자열들에 매핑시키는 매핑 정보를 생성할 수도 있다. 그렇게 함으로써, 캡션 정렬 컴포넌트(140)는 개별 생성된 문자열들과 연관된 타이밍 정보를 대응하는 개별 캡션 문자열들에 할당할 수도 있다.
하나의 구현에서, 캡션 정렬 컴포넌트(140)는 오리지널 캡션 데이터로부터의 캡션 문자열들을 번역된 캡션 데이터에 정렬시킬 수도 있다. 번역된 캡션 데이터는 비디오 콘텐츠 아이템의 오디오 부분에서의 발화된 대화의 번역 트랜스크립트를 표현할 수도 있다. 캡션 정렬 컴포넌트(140)는 사전, 언어 데이터베이스, 또는 다른 번역 서비스와 같은 번역 리소스들을 사용하여, 하나의 언어로 된 오리지널 캡션 데이터를 다른 언어로 된 번역된 캡션 데이터에 정렬시키는 방법을 결정할 수도 있다. 예를 들어, 번역 서비스는 하나의 언어의 단어들, 어구들 및/또는 문장들의 다른 언어로의 번역을 제공할 수도 있고, 캡션 정렬 컴포넌트(140)는 오리지널 캡션 데이터에서의 이들 단어들, 어구들 및/또는 문장들 및 번역된 캡션 데이터에서의 번역된 버전들을 식별하여 정렬을 수행할 수 있다.
하나의 구현에서, 오디오/비디오 매칭 컴포넌트(145)는 비디오로부터의 음성의 오리지널 오디오 부분들과 음성의 번역된 오디오 부분들 사이의 지속기간 차이들을 결정하도록 구성될 수도 있다. 오디오/비디오 매칭 컴포넌트(145)는 더빙 목적들을 위해 음성의 번역된 오디오 부분의 지속기간들을 음성의 오리지널 오디오 부분들에 정렬시키기 위해 번역된 오디오 부분의 레이트, 비디오 콘텐츠 아이템에서의 비디오 부분들의 레이트, 및/또는 이들 양측 모두를 조정하도록 구성될 수도 있다. 음성의 번역된 부분의 오디오 레이트 및/또는 비디오 레이트를 조정함으로써, 오디오/비디오 매칭 컴포넌트(145)는 번역된 오디오 부분들이 오리지널 음성과 정렬되도록 번역된 오디오 부분들을 오리지널 비디오 콘텐츠 아이템에서의 대응하는 비디오 부분들 상으로 끊김없이 오버레이시킬 수도 있다.
본 개시내용의 다양한 양태들과 관련된 다양한 방법들이 이제 더 상세히 논의될 것이다. 일반적으로, 방법들은 하드웨어(예를 들어, 프로세싱 디바이스, 회로부, 전용 로직, 프로그래밍가능 로직, 마이크로코드 등), 소프트웨어(예를 들어, 프로세싱 디바이스 상에서 실행되는 명령어들), 또는 이들의 조합을 포함할 수도 있는 프로세싱 로직에 의해 수행될 수도 있다. 일부 구현들에서, 방법들은 서버(130) 내의 컴포넌트들에 의해 수행될 수도 있다. 대안적인 구현들에서, 방법들 중 일부는 또한 도 1의 미디어 뷰어(111) 및/또는 음성 인식 및 생성 서비스(150)를 사용하여 수행될 수도 있다.
설명의 단순화를 위해, 본 개시내용의 방법들은 일련의 액트(act)들로서 도시 및 설명된다. 그러나, 본 개시내용에 따른 액트들은 다양한 순서들로 그리고/또는 동시에, 그리고 본 명세서에 제시 및 설명되지 않은 다른 액트들과 함께 발생할 수 있다. 게다가, 개시된 청구 대상에 따라 방법들을 구현하기 위해 모든 예시된 액트들이 요구되는 것은 아닐 수도 있다. 부가적으로, 본 기술분야의 통상의 기술자는 방법들이 상태도 또는 이벤트들을 통해 일련의 상호관련된 상태들로서 대안적으로 표현될 수 있다는 것을 이해하고 인지할 것이다. 부가적으로, 본 명세서에 개시된 방법들은 그러한 방법들을 컴퓨팅 디바이스들로 이송 및 전송하는 것을 용이하게 하기 위해 제조 물품 상에 저장되는 것이 가능하다는 것이 인지되어야 한다. 본 명세서에서 사용되는 바와 같이, "제조 물품"이라는 용어는 임의의 컴퓨터 판독가능 디바이스 또는 저장 미디어로부터 액세스가능한 컴퓨터 프로그램을 포괄하도록 의도된다.
도 2는 타이밍 정보를 오리지널 캡션 데이터에 대한 캡션 문자열들에 할당하고 할당된 타이밍 정보를 사용하여 오리지널 캡션 데이터의 번역물을 비디오 콘텐츠 아이템의 오디오 부분과 정렬시키기 위한 방법(200)의 양태들의 흐름도를 도시한다.
블록 205에서, 프로세싱 로직은 비디오 콘텐츠 아이템에 대한 오리지널 캡션 데이터를 식별할 수도 있다. 오리지널 캡션 데이터는, 비디오 콘텐츠 아이템의 오디오 부분과 연관된 복수의 캡션 문자열들을 포함한다. 일 구현에서, 프로세싱 로직은 비디오 콘텐츠 아이템들 및 이들의 연관된 오리지널 캡션 데이터를 저장할 수도 있는 데이터 스토어(106)로부터 오리지널 캡션 데이터를 검색할 수도 있다. 오리지널 캡션 데이터는 비디오 콘텐츠 아이템에 대한 오디오 부분(예를 들어, 음성)의 트랜스크립트를 표현할 수도 있다. 오리지널 캡션 데이터는 비디오에서 화자로부터의 발화된 단어들을 표현하는 문장들 또는 프래그먼트들, 및 비디오에서 캡션이 디스플레이되어야 할 때를 표시하는 연관된 캡션 타이밍 정보를 포함하도록 포맷팅될 수도 있다. 예를 들어, 비디오에서의 첫 번째 사람이 "Hello world!"라고 발화한 경우, 그러면 오리지널 캡션 데이터는, "Hello world!"를, 하나가 "Hello"를 표현하고 다른 하나가 "world!"를 표현하는 2개의 캡션 문자열들로서 표현하는 문장을 포함할 수도 있다. 캡션 문자열은 단어, 어구, 또는 문자들의 세트를 표현할 수도 있다. 오리지널 캡션 데이터에서의 캡션 타이밍 정보는 "Hello world!"라는 문장을 스크린 상에 디스플레이할 때를 표시할 수도 있다. 캡션 타이밍 정보는 첫 번째 사람이 "Hello world!"라는 어구를 발화하기 시작할 때와 반드시 정렬되지는 않을 수도 있다. 그 대신에, 캡션 타이밍 정보는 시청자가 캡션을 판독할 충분한 시간을 갖도록 캡션을 디스플레이하도록 구성될 수도 있다. 예를 들어, 캡션 타이밍 정보는 비디오에서의 첫 번째 사람이 발화를 시작하기 1 또는 ½초 전에 캡션을 디스플레이할 수도 있다. 캡션 타이밍 정보로부터의 시작 및 종료 시간들은 캡션의 사이즈에 기초하여 달라질 수도 있다. 이러한 이유로 캡션 타이밍 정보는 화자가 비디오에서 발화하기 시작할 때에 대한 정확한 표시자가 아닐 수도 있다.
블록 210에서, 프로세싱 로직은 비디오 콘텐츠 아이템의 오디오 부분에 대해 생성되는 음성 인식 데이터를 식별할 수도 있다. 일 구현에서, 프로세싱 로직은 음성 인식 및 생성 서비스(150)로부터 음성 인식 데이터를 요청할 수도 있다. 음성 인식 및 생성 서비스(150)는 요청 시에 생성할 수도 있거나 또는 비디오 콘텐츠 아이템에 대한 음성 인식 데이터를 이전에 생성하였을 수도 있고 데이터 스토어(106) 내에 음성 인식 데이터를 저장하였을 수도 있다. 음성 인식 데이터는 비디오 콘텐츠 아이템으로부터 자동적으로 인식된 음성 또는 다른 오디오를 표현할 수도 있다. 음성 인식 데이터는 복수의 생성된 문자열들을 포함할 수도 있고, 여기서 각각의 개별 생성된 문자열은 비디오 콘텐츠 아이템 내에서 화자에 의해 발화되는 단어, 어구, 또는 문자들의 세트를 표현한다. 음성 인식 데이터 내의 각각의 생성된 문자열은 생성된 문자열이 비디오 내에서 발화된 특정 시간을 표현하는 타이밍 정보와 연관될 수도 있다. 상기의 예를 사용하여, "Hello world!"라는 어구에 대한 타이밍 정보는, "hello"라는 단어가 발화될 때에 대한 타이밍 및 "world"라는 단어가 발화될 때에 대한 타이밍을 포함할 수도 있다. 타이밍 정보는 각각의 생성된 문자열에 대한 특정 시작 및 종료 시간들을 포함할 수도 있거나 또는 각각의 생성된 문자열에 대한 특정 시작 시간 및 지속기간 정보를 포함할 수도 있다.
블록 215에서, 프로세싱 로직은 개별 캡션 문자열들과 개별 생성된 문자열들 사이의 의미론적 유사성들을 표시하는 할당된 값들을 사용하여 오리지널 캡션 데이터로부터의 복수의 캡션 문자열들을 음성 인식 데이터로부터의 복수의 생성된 문자열들에 매핑시킬 수도 있다. 일 구현에서, 프로세싱 로직은 복수의 캡션 문자열들 및 복수의 생성된 문자열들 내의 각각의 고유 문자열에 정수 식별자들(ID)을 할당할 수도 있다. 정수 ID들은 하나의 단어를 다른 단어로 변환하는 데 필요한 명령어들의 수를 표현하는 단어 편집 거리 값에 기초하여 문자열들 사이의 의미론적 유사성들을 결정하는 데 사용될 수도 있다. 하나의 단어를 다른 단어로 변환하기 위한 명령어들은, 문자 대체들, 문자 부가들, 문자 제거들, 및 인접 문자 전환과 같은 명령어들을 포함할 수도 있다. 다른 구현들에서, 복수의 캡션 문자열들 및 복수의 생성된 문자열들 내의 각각의 고유 문자열에 정수 ID들 이외의 식별자들이 할당될 수도 있다.
각각의 고유 캡션 문자열 및 생성된 문자열에 값들을 할당하고 캡션 문자열들 및 생성된 문자열들의 매칭 시퀀스들을 결정함으로써 복수의 캡션 문자열들을 복수의 생성된 문자열들에 매핑시키는 일부 양태들이 도 3a 및 도 3b와 관련하여 아래에 더 상세히 논의된다.
도 2를 참조하면, 블록 220에서, 프로세싱 로직은 매핑된 개별 생성된 문자열들의 타이밍 정보에 기초하여 개별 캡션 문자열들에 타이밍 정보를 할당한다. 도 5c는 할당된 타이밍 정보를 갖는 개별 캡션 문자열들의 예시적인 테이블을 예시한다. 테이블(570)은, 비디오 콘텐츠 아이템과 연관된 오디오 부분의 타이밍에 관련된 시작 및 종료 타이밍, 각각의 개별 캡션 문자열에 대한 지속기간 타이밍, 및 음성 인식 데이터에 기초하는 신뢰도 정보(confidence information)를 포함한다. 신뢰도 정보는, 캡션 문자열이 대응하는 생성된 문자열과 얼마나 정확하게 매칭되었는지에 기초하여 각각의 캡션 문자열에 할당될 수도 있는 신뢰도 값들을 지칭한다. 예를 들어, 매칭이 정수 ID 값들에 기초하는 정확한 매치인 경우, 그러면 신뢰도 값은 1로 설정될 수도 있다. 대안적으로, 매칭이 부분 매칭이거나 또는 인접 캡션 문자열들에 기초하여 추론된 매칭인 경우, 그러면 신뢰도 값은 비례적으로 낮은 값으로 설정될 수도 있다.
도 5c에 도시된 바와 같이, 문자열(575)은 "pea"라는 단어를 지칭하고, 대응하는 생성된 문자열에 이전에 매핑되지 않았다. 그 결과, 타이밍 정보는 제로로 설정된다. 프로세싱 로직은 인접 문자열들에 기초하여 문자열(575)에 대한 타이밍 정보를 추론할 수도 있다. 예를 들어, 선행 문자열 "chick"의 종료 시간이 문자열(575) "pea"의 종료 시간에 적용될 수도 있는데, 이는 실제로 발화된 대화가 문자열들 "chick" 및 "pea" 대신에 "chickpea"라는 단어를 포함할 수도 있기 때문이다.
도 2를 참조하면, 블록 225에서, 프로세싱 로직은 오리지널 캡션 데이터의 개별 캡션 문자열들의 할당된 타이밍 정보 및 검출된 음성 세그먼트 시간 간격들을 사용하여 오리지널 캡션 데이터의 번역물을 비디오 콘텐츠 아이템의 오디오 부분과 정렬시킨다. 오리지널 캡션 데이터의 번역물들은, 음성 인식 및 생성 서비스(150)로부터 생성되는 머신 번역된 대화 및 번역된 언어 캡션들을 포함할 수도 있지만, 이에 제한되지 않는다. 번역된 언어 캡션들은, 크라우드 소스 사용자들 또는 전문 번역가들로부터 생성되는 텍스트 번역물들을 포함할 수도 있다. 음성 인식 및 생성 서비스(150)에 의해 생성되는 머신 번역된 대화는 번역을 위한 오리지널 캡션 데이터 또는 번역을 위한 오리지널 캡션 데이터의 부분들, 예컨대, 개별 문장들 또는 문장 프래그먼트들을 음성 인식 및 생성 서비스에 제공함으로써 생성될 수도 있다.
도 3a는 각각의 고유 캡션 문자열 및 생성된 문자열에 값들을 할당하는 프로세스를 예시한다. 블록 305에서, 프로세싱 로직은 대응하는 캡션 문자열들과 생성된 문자열들을 효율적으로 매칭시키기 위해 약간의 문자 변동들을 제거함으로써 오리지널 캡션 데이터에서의 캡션 문자열들 및 음성 인식 데이터에서의 생성된 문자열들을 정규화할 수도 있다. 오리지널 캡션 데이터에서의 캡션 문자열들은 비디오의 시청자들이 발화된 대화뿐만 아니라 비디오의 다른 양태들을 이해하는 것을 돕도록 포맷팅될 수도 있다. 예를 들어, 오리지널 캡션 데이터는, 예컨대 "Mary: Hi, it's a great day"라고 발화하고 있는 사람을 표시하는 데 사용되는 부가적인 비-발화된 텍스트 또는 특수 문자들을 포함할 수도 있고, 여기서 "Mary:"는 어구의 화자를 표시한다. 다른 비-발화된 텍스트는, "음악 플레이하기" 또는 "탕(BANG)"과 같은, 비디오 내의 사운드 효과들의 표시들을 포함할 수도 있는데, 그 각각은 비디오에서의 사운드를 표현할 수도 있다. 사운드 효과 캡션들은, 다른 경우라면 비디오에서의 부가적인 사운드들을 인식하지 못할 수도 있는 청각 장애 및 난청 시청자들에게 유용하다. 발화된 대화를 정렬시킬 목적들을 위해, 비-발화된 텍스트가 정규화 동안 제거될 수도 있다.
일 구현에서, 프로세싱 로직은 캡션 문자열들 및 생성된 문자열들로부터 접두사 라벨들을 식별하고 제거하기 위해 정규 표현 매칭을 구현할 수도 있다. 예를 들어, 캡션 문자열들의 세트는 ">> Fred: How are you"를 포함할 수도 있다. 프로세싱 로직은 캡션 문자열들의 세트로부터 비-발화된 텍스트 ">>Fred:"를 식별하고 제거하여, "How are you"를 발생시킬 수도 있다. 일 실시예에서, 프로세싱 로직은 오디오 설명들을 표시하는 주석들을 제거하기 위해 정규 표현 매칭을 구현할 수도 있다. 예를 들어, "[music]"의 캡션 문자열은 발화된 대화의 일부가 아닌 것으로서 제거될 수도 있다.
일 구현에서, 캡션 문자열들 및 생성된 문자열들은 영어 이외의 언어들을 표현할 수도 있다. 힌디어 또는 일본어와 같은 다른 언어들은 상이한 문장 구두점을 사용한다. 프로세싱 로직은 구두점을 단일 타입의 구두점으로 정규화하도록 구성될 수도 있다. 예를 들어, 캡션 문자열들의 시퀀스들을 생성된 문자열들에 정확하게 정렬시키고 문장 및 문장 프래그먼트 경계들을 결정하기 위해 상이한 언어들에 대한 구두점이 영어로 정규화될 수도 있다. 예를 들어, 힌디어 대화를 표현하는 캡션 문자열들은 문장 구분(sentence break)들을 위해 "|"를 포함할 수도 있다. 프로세싱 로직은 이들 문장 구분들을 식별하고 힌디어 문장 구분들을 영어 마침표들로 대체시킬 수도 있다. 프로세싱 로직은 정규화 구두점 언어로서 임의의 언어를 사용하도록 구성될 수도 있거나 또는 문장 구두점을 표현하기 위해 특수 문자들을 할당하도록 구성될 수도 있다.
일 구현에서, 프로세싱 로직은 캡션 문자열들 및 생성된 문자열들을 갖는 패턴들에 기초하여 문장 구두점을 추론하도록 구성될 수도 있다. 예를 들어, 크라우드 소스 캡션 넣기에 의해 제공되는 오리지널 캡션 데이터는 적절한 구두점이 결여될 수도 있다. 프로세싱 로직은, 단어들의 시퀀스의 중간에 있는 대문자 단어 또는 단어들 사이의 추가 이격과 같은 다른 큐들에 기초하여, 마침표들과 같은 문장 구두점을 추론하도록 구성된다. 이들 큐들은 새로운 문장의 시작을 표시할 수도 있다. 프로세싱 로직은 추가 이격이 발생하거나 또는 후속 캡션이 대문자로 쓰여진 곳들에 마침표들을 삽입하도록 구성될 수도 있다.
일 구현에서, 프로세싱 로직은 대소 문자(letter case)를 컨버팅하는 것, 선행 또는 후행 구두점을 제거하는 것, 하이픈으로 연결된 단어들을 분리하는 것, 그리고/또는 단어 축약들을 분리하는 것에 의해, 복수의 캡션 문자열들 및 복수의 생성된 문자열들에서의 문자열들을 정규화하도록 구성될 수도 있다. 예를 들어, 음성 인식 및 생성 서비스(150)로부터의 생성된 문자열들은 불필요한 하이픈으로 연결된 단어들을 포함할 수도 있거나 또는 축약들로서의 단어들을 이들이 축약들을 사용하지 않아야 할 때 디스플레이할 수도 있는데, 이들은 프로세싱 로직에 의해 제거될 수도 있다.
캡션 문자열들 및 생성된 문자열들의 시퀀스들 각각의 정규화 시에, 고유 문자열들 각각에 정수 ID들이 할당될 수도 있다. 정수 ID들은 연관된 단어들 사이의 상대 단어 편집 거리에 관련하여 정수 ID들이 배열되는 정수 편집 거리 공간 내의 값들을 표현한다. 단어 편집 거리 값들은 하나의 단어를 다른 단어로 변환하는 데 필요한 명령어들의 수를 표현한다. 예를 들어, "mean" 및 "men"이라는 단어들에 대한 단어 편집 거리 값은 1과 동일할 것인데, 이는 "mean"을 "men"으로 변환하기 위해 단지 하나의 변환 명령어, 즉, "mean"으로부터의 "a"의 제거만이 요구되기 때문이다. 정수 편집 거리 공간 내의 각각의 문자열을 표현함으로써, 문자열들이 단일 차원 공간 내에 배열될 수도 있다. 문자열들에 대한 정수 ID들의 단일 차원 공간 할당을 사용하는 것은 캡션 문자열들과 생성된 문자열들의 양측 모두의 시퀀스들 내에서 고유 문자열들의 세트를 결정하는 것에 기초할 수도 있다.
블록 310에서, 프로세싱 로직은 캡션 문자열들 및 생성된 문자열들로부터의 문자열들의 세트가 고유 캡션 문자열들의 세트, 고유 생성된 문자열들의 세트, 및 공통 문자열들의 세트를 포함한다는 것을 결정한다. 고유 캡션 문자열들의 세트는 캡션 문자열들의 시퀀스 내에서만 단지 발견되는 문자열들을 표현할 수도 있다. 고유 생성된 문자열들의 세트는 생성된 문자열들의 시퀀스 내에서만 단지 발견되는 문자열들을 표현할 수도 있다. 공통 문자열들의 세트는 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스에서 발견되는 문자열들을 표현한다.
일 구현에서, 캡션 문자열들의 시퀀스 내의 문자열들은 비디오로부터의 발화된 대화의 트랜스크립트를 표현하고, 음성 인식 데이터로부터의 생성된 문자열들보다 발화된 대화의 더 정확한 표현일 수도 있다. 설명한 바와 같이, 음성 인식 데이터는 주로 각각의 생성된 문자열에 대한 정확한 타이밍 정보를 포함하지만, 발화된 대화를 식별할 때 발생하였을 수도 있는 약간의 에러들을 포함할 수도 있다. 그 결과, 프로세싱 로직은, 고유 캡션 문자열들의 세트를, 비디오 콘텐츠 아이템 내에서 발화된 대화를 표현할 가능성이 더 많은 문자열들로서 취급할 수도 있다.
블록 315에서, 프로세싱 로직은 고유 캡션 문자열들의 세트 내의 문자열들 각각에 정수 ID들을 할당할 수도 있다. 일 구현에서, 고유 캡션 문자열들의 세트에서의 문자열들 각각은 정수 편집 거리 공간 내의 시드 문자열(seed character string)들로서 취급된다. 시드 문자열들은 아마도 비디오 콘텐츠 아이템에서 발화된 단어들 또는 어구들을 표현하는 것으로 결정되는 문자열들이다. 고유 캡션 문자열들 각각에 할당된 정수 ID들은 고유 캡션 문자열들 사이의 정수 편집 거리 값들이 유사한 의미론들을 갖는 문자열들과 매칭시키기 위한 편집 거리 값 임계치를 초과하도록 이격된다. 예를 들어, 고유 캡션 문자열들의 세트가 {light, men, monies, told}를 포함하는 경우, 프로세싱 로직은 정수 ID들을 {light=4352, men=350, monies=1402, told=7701}로서 할당할 수도 있다. 할당된 정수 ID들의 값들은 충분히 멀리 이격되어, 하나의 고유 캡션 문자열을 다른 고유 캡션 문자열로 변경하는 데 필요한 편집 명령어들의 수가 고유 캡션 문자열들이 서로에 대해 또는 서로의 약간의 문자열 변동들에 대해 실수로 매칭되지 않는다는 것을 보장할 정도로 충분히 크다.
일 구현에서, 고유 캡션 문자열들의 정수 ID 값들 사이의 이격은 생성된 문자열들과 캡션 문자열들 사이에 약간의 문자 차이들을 가질 수도 있는 고유 생성된 문자열들의 클러스터링을 가능하게 한다. 블록 320에서, 프로세싱 로직은 고유 생성된 문자열들의 세트에서의 고유 생성된 문자열들의 적어도 서브세트에 정수 ID 값들을 할당할 수도 있다. 고유 생성된 문자열들의 적어도 서브세트에의 정수 ID 값들의 할당은 고유 생성된 문자열들의 세트로부터의 어떤 고유 생성된 문자열들이 정수 편집 값의 임계치 내에 있는지를 결정하는 것에 기초할 수도 있다. 정수 편집 값 임계치 내의 정수 편집 값들은 생성된 문자열이 캡션 문자열에 충분히 근접함을 표시할 수도 있고 캡션 문자열의 변형으로서 인식될 수도 있다. 예를 들어, 블록 315에서, 생성된 문자열 "man"은 정수 ID 값 350이 할당된 캡션 문자열 "men"에 충분히 근접한 것으로 식별될 수도 있다. 이 경우에, 프로세싱 로직은 "men"과 "man" 사이의 정수 편집 거리 값이 1이라고 계산할 수도 있고 그에 따라 프로세싱 로직은, "men"에 대한 정수 ID 값(350)보다 1 더 큰 351의 정수 ID 값을, 생성된 문자열에 할당할 수도 있다. 일 구현에서, 2개의 문자열들 사이의 근접도를 결정하기 위한 정수 편집 값 임계치는 정확한 매치를 이루는 데 필요한 편집 명령어들의 타입 및 캡션 문자열의 사이즈에 기초할 수도 있다. 예를 들어, 캡션 문자열이 "men"과 같이 짧은 경우, 그러면 "men"에 대한 편집 거리 값 임계치는 "unimportance"와 같은 캡션 문자열에 대한 편집 거리 값 임계치보다 더 작을 수도 있고, 여기서 문자열들이 길어질수록 2개의 문자열들이 비교적 근접하다고 결정할 때 편집 거리 값 임계치가 커지게 할 수도 있다.
블록 320에서 수행된 동작들은 생성된 문자열들의 서브세트에 정수 ID 값들을 할당하는 것을 포함할 수도 있다. 고유 생성된 문자열들의 세트 내의 생성된 문자열들의 서브세트는 생성된 문자열들의 서브세트를 이미 할당된 정수 ID들과의 유사성을 갖는 문자열들로서 취급함으로써 정수 ID 값들이 할당될 수도 있다; 그에 따라, 생성된 문자열들의 서브세트에의 정수 ID 값들의 할당은 유사한 문자열들에 대한 이미 할당된 정수 ID 값들에 기초하여 정수 ID 값들을 할당하는 클러스터링 기법에 기초한다. 판정 블록 325에서, 프로세싱 로직은 정수 ID 값 할당을 필요로 하는 부가적인 고유 생성된 문자열들이 고유 문자열들의 세트 내에 있는지를 결정한다. 정수 ID 값들이 할당될 부가적인 고유 생성된 문자열들이 있는 경우, 그러면 프로세싱 로직은 블록 330으로 진행하여 부가적인 고유 생성된 문자열들에 정수 ID 값들을 할당한다. 정수 ID 값들이 할당될 부가적인 고유 생성된 문자열들이 없는 경우, 그러면 프로세싱 로직은 블록 340으로 진행하여 공통 문자열들의 세트 내의 문자열들에 정수 ID 값들을 할당한다.
블록 330에서, 프로세싱 로직은 고유 생성된 문자열들의 세트에서의 남아 있는 고유 생성된 문자열들 중 하나 이상에 정수 ID 값들을 할당할 수도 있다. 일 구현에서, 하나 이상의 남아 있는 고유 생성된 문자열들은 정수 편집 거리 공간 내의 시드 문자열들로서 취급되고, 하나 이상의 남아 있는 고유 생성된 문자열들에 대한 정수 ID 값들은 남아 있는 고유 생성된 문자열들 사이의 정수 편집 거리 값들이 정수 ID 값들이 이미 할당된 다른 문자열들과 매칭시키기 위한 편집 거리 값 임계치를 초과하도록 이격된다. 예를 들어, 고유 생성된 문자열들의 세트 내의 남아 있는 고유 생성된 문자열들은 {importance, bright, importantly}를 포함할 수도 있다. 프로세싱 로직은 "importance" 및 "bright"를 선택하고 21154 및 25002의 정수 ID 값들을 각각 할당할 수도 있다.
판정 블록 335에서, 프로세싱 로직은 정수 ID 값들이 아직 할당되지 않은 남아 있는 고유 생성된 문자열들이 고유 생성된 문자열들의 세트 내에 있는지를 결정한다. 정수 ID 값 할당을 필요로 하는 남아 있는 고유 생성된 문자열들이 고유 생성된 문자열들의 세트에 있는 경우, 그러면 프로세싱 로직은 블록 320으로 진행하여, 정수 ID 값이 할당된 문자열에 충분히 근접한 생성된 문자열을 표현하는 정수 편집 값의 임계치 내에 어떤 고유 생성된 문자열들이 있는지를 결정하는 클러스터링 기법들을 사용하여 남아 있는 고유 생성된 문자열들에 정수 ID 값들을 할당한다. 예를 들어, 고유 생성된 문자열 "importantly"에는 21151의 정수 ID 값이 할당될 수도 있는데, 이는 "importantly"가 3개의 편집 명령어들을 사용하여 문자열 "importance"(정수 ID 21154)로 변환될 수도 있기 때문이다. 프로세싱 로직은 모든 남아 있는 고유 생성된 문자열들에 정수 ID 값이 할당될 때까지 블록 320 내지 블록 335를 반복적으로 반복할 수도 있다.
판정 블록 335에서, 프로세싱 로직이 고유 생성된 문자열들에 정수 ID 값들이 할당되었다고 결정하는 경우, 그러면 프로세싱 로직은 블록 340으로 진행한다. 블록 340에서, 프로세싱 로직은 공통 문자열들의 세트에서의 문자열들에 정수 ID 값들을 할당한다. 공통 문자열들의 세트는, 캡션 문자열들의 시퀀스와 생성된 문자열들의 시퀀스 양측 모두에 있는 것으로 식별된 문자열들을 포함한다. 일 구현에서, 프로세싱 로직은 블록 320에서 설명된 클러스터링 기법들을 사용하여 공통 문자열들의 세트에서의 문자열들의 적어도 서브세트에 정수 ID 값들을 할당할 수도 있다. 정수 ID 값들이 할당될 필요가 있는 남아 있는 공통 문자열들이 있는 경우, 그러면 프로세싱 로직은 하나 이상의 남아 있는 공통 문자열들을 선택하고, 선택된 공통 문자열들을, 이미 할당된 문자열들로부터 충분히 이격된 정수 ID 값들을 할당함으로써 시드 문자열들로서 취급할 수도 있다. 그 후에, 프로세싱 로직은 블록들 320 및 330에서 각각 설명된 기법들과 유사한 클러스터링 및 시드 할당 기법들을 사용하여 남아 있는 공통 문자열들에 정수 ID 값들을 반복적으로 할당할 수도 있다.
일 구현에서, 복수의 캡션 문자열들 및 복수의 생성된 문자열들에서의 문자열들 각각에 정수 ID 값들이 할당된다. 도 5a는 복수의 캡션 문자열들 및 복수의 생성된 문자열들에 대한 정수 ID 값 할당들의 예시적인 예이다. 테이블(505)은 복수의 캡션 문자열들, 복수의 생성된 문자열들, 고유 캡션 문자열들의 세트, 고유 생성된 문자열들의 세트, 및 공통 문자열들의 세트를 예시한다. 테이블(505)은 복수의 캡션 문자열들 및 복수의 생성된 문자열들 내의 각각의 고유 문자열에 대한 정수 ID 값 할당들을 예시한다. 컬럼(column) 515는 각각의 문자열에 할당된 정수 ID 값을 디스플레이하고, 컬럼 520은 복수의 캡션 문자열들 및 복수의 생성된 문자열들로부터의 각각의 고유 문자열을 디스플레이하며, 컬럼 525는 문자열들 각각에 정수 ID 값들을 할당하는 데 사용되는 할당 방법을 디스플레이한다.
도 3b는 할당된 정수 ID 값들을 사용하여 캡션 문자열들과 생성된 문자열들의 매칭 시퀀스들을 결정하기 위한 프로세스를 예시한다. 블록 350에서, 프로세싱 로직은 매칭을 위한 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스를 식별한다. 일 구현에서, 프로세싱 로직은 오리지널 캡션 데이터에서 식별된 순서로 복수의 캡션 문자열들을 사용한다. 예를 들어, 캡션 문자열들의 시퀀스는 이들이 어떻게 비디오 콘텐츠 아이템 내에서 발화되었는지에 따른 문자열들의 순서를 표현한다. 프로세싱 로직은 음성 인식 데이터에서 식별된 순서로 복수의 생성된 문자열들을 사용한다.
블록 360에서, 프로세싱 로직은 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스로부터 가장 긴 순차 매칭 쌍을 결정한다. 일 구현에서, 정수 서브시퀀스 매칭 알고리즘은 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스에서의 문자열들과 연관된 정수 ID 값들을 사용하여 정확한 문자열들과 근접 매칭 문자열들 양측 모두를 정렬시킨다. 근접 매칭 문자열들은 편집 거리 값 임계치에 기초할 수도 있다. 정수 서브시퀀스 매칭 알고리즘은 그것이 보다 긴 순차 매칭 쌍을 발생시키는 경우 순차 매칭 쌍 내의 특정 수의 미스매치들을 가능하게 할 수도 있다. 도 5b는 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스로부터 생성되는 순차 매칭 쌍들을 예시한다. 매칭 쌍(530)은 블록 360에서 프로세싱 로직에 의해 결정될 수도 있는데, 이는 그것이 가장 긴 식별된 순차 매칭 쌍이기 때문이다.
일 구현에서, 프로세싱 로직은 캡션 문자열들의 시퀀스와 생성된 문자열들의 시퀀스 사이의 미스매치들 및 변화들을 가능하게 할 수도 있다. 예를 들어, 미스매치 532는 "of/and" 사이의 미스매치를 예시하고 미스매치 534는 "to/on" 사이의 미스매치를 예시한다. 이들 미스매치들은 오타들 또는 부정확하게 인식된 단어들에 기초하는 캡션 문자열들 또는 생성된 문자열들의 시퀀스에서의 에러들로 인한 것일 수도 있다. 프로세싱 로직은 최대 수의 문자들의 변형이 발생하였을 때 편집 거리 값 임계치들이 적용되지 않을 수도 있으므로 짧은 문자열들에 대한 미스매치들을 가능하게 하도록 구성될 수도 있다. 예를 들어, 오리지널 문자열에 대한 변환 명령어들이 오리지널 문자열의 40%보다 더 많이 변환하는 경우 편집 거리 값 임계치들이 적용되지 않을 수도 있는데, 이는 이것이 상당히 상이한 문자열들이 불필요하게 매칭되는 것을 발생시킬 수도 있기 때문이다.
판정 다이아몬드 365에서, 프로세싱 로직은 여전히 매칭될 필요가 있는 생성된 문자열들의 시퀀스와 캡션 문자열들의 시퀀스의 남아 있는 부분들이 있는지를 결정한다. 이전 예를 사용하면, 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스의 단지 제1 부분만이 매칭된다; 그에 따라, 프로세싱 로직은 남아 있는 순차 부분들을 반복적으로 매칭시키도록 구성될 수도 있다. 프로세싱 로직은 블록 370으로 진행하여 매칭을 위한 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스의 서브시퀀스들을 선택한다. 그러나, 판정 다이아몬드 365에서, 프로세싱 로직은 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스의 모든 부분들이 매칭되었다고 결정하는 경우, 그러면 프로세싱 로직은 블록 375로 진행하여, 캡션 문자열들의 시퀀스에서의 개별 캡션 문자열들과 캡션 문자열들의 시퀀스에서의 개별 생성된 문자열들 사이의 매핑을 생성한다.
블록 370에서, 프로세싱 로직은 매칭을 위한 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스로부터의 서브시퀀스들을 선택한다. 프로세싱 로직은 블록 360으로 진행하여 선택된 시퀀스들로부터 가장 긴 순차 매치 쌍을 결정한다. 모든 순차 매칭 쌍들이 결정될 때까지 블록 360 내지 블록 370이 반복된다.
일 구현에서, 프로세싱 로직은, 부분적으로 매칭된 시퀀스들이 매칭되지 않는 문자열들을 포함하더라도, 캡션 문자열들의 시퀀스 및 생성된 문자열들의 시퀀스의 시퀀스들을 부분적으로 매칭시킬 수도 있다. 부분적으로 매칭되는 시퀀스들의 매칭 부분은, 정수 ID 값들을 사용하여 문자열들이 매칭되지 않았더라도 매칭될 수도 있는 영역들을 결정하기 위한 앵커 포인트들로서 사용될 수도 있다. 부분적으로 매칭되는 시퀀스들에서의 서브시퀀스들은 다른 기법들을 사용하여 매칭될 수도 있다.
일 구현에서, 문자열들의 서브시퀀스가 생성된 문자열들만을 단지 포함하는 경우, 그러면 프로세싱 로직은 생성된 문자열들을 무시할 수도 있는데, 이는 캡션 문자열들이 발화된 대화를 결정하는 데 사용되기 때문이다. 다른 구현에서, 캡션 문자열들 및 생성된 문자열들의 서브시퀀스가 다수의 문자열들 사이에서 일대일 대응을 갖는 경우, 그러면 프로세싱 로직은 대응하는 문자열들이 매칭된다고 가정할 수도 있다. 예를 들어, 미스매치 552는 캡션 문자열들 "come on" 및 생성된 문자열들 "c mon"을 예시한다. 이들 대응하는 문자열들은 "come/c" 및 "on/mon"의 매치로서 함께 페어링될 수도 있다.
일 구현에서, 프로세싱 로직은 비-매칭 서브시퀀스들에 대한 매치들을 결정하기 위해 문자열 유사성 매트릭스를 컴퓨팅할 수도 있다. 예를 들어, 미스매치 565는 캡션 문자열들 "served with chutney" 및 생성된 문자열들 "so with the chuck knee"를 포함한다. 프로세싱 로직은 2개의 서브시퀀스들 사이의 문자열 "with"에 대한 정확한 매치를 결정할 수도 있다. 프로세싱 로직은, "served/so" 및 "chutney/the chuck knee"를 포함하는, "with"의 매칭으로부터 생성되는 서브시퀀스들에 대한 매칭을 반복적으로 결정할 수도 있다. 프로세싱 로직은 서브시퀀스들 "served/so"로부터 매치를 결정할 수도 있는데, 이는 그것이 일대일 대응이기 때문이다. 남아 있는 서브시퀀스들에 대해, 프로세싱 로직은 매칭되고 있는 3개의 문자들 "chu"에 기초하여 "chutney"와 "chuck" 사이의 유사성들을 결정한다. 유사하게, "knees" 및 "chutneys"는 표음 매칭 쌍(phonetic matching pair)을 포함한다. 프로세싱 로직은 생성된 문자열 서브시퀀스로부터 "the"를 무시할 수도 있는데, 이는 캡션 문자열 서브시퀀스에 대응하는 쌍이 없기 때문이다.
블록 375에서, 프로세싱 로직은 매칭된 순차 쌍들을 사용하여 개별 캡션 문자열들과 생성된 문자열들 사이의 매핑을 생성할 수도 있다.
도 4a는 오리지널 캡션 데이터의 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여 번역된 언어 캡션 데이터를 비디오 콘텐츠 아이템의 오디오 부분과 정렬시키기 위한 예시적인 방법을 예시한다. 일 구현에서, 블록 405 내지 블록 430은 도 2의 블록 225 내에서 수행될 수도 있는 상세한 액트들을 표현한다.
블록 405에서, 프로세싱 로직은 비디오 콘텐츠 아이템에 대한 번역된 언어 캡션 데이터를 식별한다. 번역된 캡션 데이터는, 비디오 콘텐츠 아이템의 오디오 부분과 연관된 복수의 번역된 문자열들을 포함할 수도 있다. 프로세싱 로직은 번역된 문자열들로부터 비-발화된 텍스트 또는 특수 문자들을 제거하기 위해 번역 언어 캡션 데이터에서 번역된 문자열들을 정규화하도록 구성될 수도 있다. 정규화는 번역된 문자열들에서의 문장 구분들 및 다른 구두점을 식별하는 것을 포함할 수도 있고, 번역된 구두점을, 영어와 같은, 프로세싱 로직에 의해 사용되는 표준화된 구두점으로 대체할 수도 있다.
블록 410에서, 프로세싱 로직은 오리지널 캡션 데이터의 복수의 캡션 문자열들로부터 캡션 문장 프래그먼트들의 세트를 그리고 번역된 문자열들의 세트로부터 번역된 문장 프래그먼트들의 세트를 생성한다. 일 구현에서, 프로세싱 로직은 복수의 캡션 문자열들 및 복수의 번역된 문자열들에서 문장 프래그먼트 경계 마커들로서 구두점을 사용하여 문장 프래그먼트들을 식별할 수도 있다. 예를 들어, 쉼표들 및 문장 마침표들이 복수의 캡션 문자열들 및 복수의 번역된 문자열들 내에서 문장 프래그먼트들을 식별하기 위한 경계 마커들로서 사용될 수도 있다. 프로세싱 로직은, 캡션 문자열들의 식별된 문장 프래그먼트들을 포함하는 캡션 문장 프래그먼트들의 세트, 및 번역된 문자열들의 식별된 문장 프래그먼트들을 포함하는 번역된 문장 프래그먼트들의 세트를 생성할 수도 있다.
블록 415에서, 프로세싱 로직은 캡션 문장 프래그먼트들의 세트 중 캡션 문장 프래그먼트들을 번역된 문장 프래그먼트들의 세트 중 번역된 문장 프래그먼트들에 매핑시킨다. 일 구현에서, 프로세싱 로직은 중첩된 타이밍 정보를 사용하여 캡션 문장 프래그먼트들의 세트 및 번역된 문장 프래그먼트들의 세트로부터의 문장 프래그먼트들을 페어링할 수도 있다. 캡션 문장 프래그먼트들의 세트에서의 문장 프래그먼트들은 오리지널 캡션 데이터로부터의 캡션 타이밍을 사용하여, 문장 프래그먼트들을 대응하는 번역된 문장 프래그먼트들에 페어링할 수도 있다. 번역된 언어 캡션 데이터로부터의 타이밍 정보는 번역된 문장 프래그먼트들과 캡션 문장 프래그먼트들의 중첩된 쌍들을 식별하는 데 사용될 수도 있다.
블록 420에서, 프로세싱 로직은 캡션 문장 프래그먼트들의 세트에 대한 캡션 문장 프래그먼트 시간 간격들을 추정할 수도 있다. 일 구현에서, 프로세싱 로직은 캡션 문장 프래그먼트들의 세트에 대한 문장 프래그먼트 시간 간격들을 추정하기 위해 개별 캡션 문자열들에 대한 타이밍 정보(블록 220에서 할당됨)를 사용할 수도 있다. 예를 들어, 프로세싱 로직은 문장 프래그먼트에서의 첫 번째 문자열과 연관된 시간으로서 문장 프래그먼트에 대한 시작 시간을 할당할 수도 있다. 문장 프래그먼트에 대한 종료 시간에는 문장 프래그먼트에서의 마지막 문자열과 연관된 시간이 할당될 수도 있다.
일부 경우들에서, 생성된 문자열들과 연관될 수도 있는 타이밍 에러들로 인해 또는 생성된 문자열들에 캡션 문자열들을 매핑시킬 때 발생할 수도 있는 미스매치들로 인해 개별 캡션 문자열들에 대한 타이밍 정보가 정확하지 않을 수도 있다. 일 구현에서, 프로세싱 로직은 각각의 문자열 길이에 대한 중앙치 문자열 지속기간을 컴퓨팅하기 위해 문자열 길이별로 타이밍 정보를 집계함으로써 상이한 문자열 길이들에 대한 요약 통계들을 생성할 수도 있다. 예를 들어, 요약 통계들은, 길이가 5개의 문자들인 문자열들에 대해 집계된다. 그 후에, 5-문자 문자열들에 대한 컴퓨팅된 중앙치 지속기간이 사용되어, 보다 낮은 신뢰도 레벨에서 매칭된 문자열들에 대한 타이밍 정보를 추정할 수도 있다. 복수의 캡션 문자열들에서의 문자열 길이들 각각에 대해 중앙치 지속기간 시간들이 컴퓨팅된다.
프로세싱 로직은, 중앙치 지속기간 값들에 기초하는, 추정된 문자열 타이밍 정보 및 할당된 캡션 문자열 타이밍 정보를 사용하여, 각각의 문자열에 대한 신뢰도 값들에 기초하여 각각의 문장 프래그먼트의 시작 및 종료 시간을 추정할 수도 있다. 문장 프래그먼트가 높은 신뢰도 값들과 매칭된 캡션 문자열들을 포함하는 경우, 그러면 프로세싱 로직은 문장 프래그먼트에서의 첫 번째 캡션 문자열의 시작 시간 및 문장 프래그먼트의 마지막 문자열의 종료 시간과 연관된 할당된 타이밍 정보를 사용하여, 전체 문장 프래그먼트의 시작 및 종료 시간을 컴퓨팅할 수도 있다.
문장 프래그먼트가 높은 신뢰도 값들을 갖는 문장 프래그먼트의 중간 근처에서의 캡션 문자열들의 세트 및 보다 낮은 신뢰도 값들을 갖는 문장의 시작과 끝에서의 캡션 문자열들의 다른 세트를 포함하는 경우, 그러면 프로세싱 로직은 문장 프래그먼트에 대한 타이밍 정보를 결정하기 위한 앵커로서 높은 신뢰도 값들을 갖는 캡션 문자열들의 세트를 사용할 수도 있다. 선행 및 후행 문자열들의 지속기간 동안, 프로세싱 로직은 컴퓨팅된 요약 통계들로부터 추정된 타이밍 정보를 사용할 수도 있다. 프로세싱 로직은 문장 프래그먼트의 시작 시간을 결정하기 위해 문장 프래그먼트에서 앵커링된 캡션 문자열에 선행하는 각각의 낮은 신뢰도 캡션 문자열에 대한 중앙치 지속기간 타이밍 값들을 감산할 수도 있다. 예를 들어, 문장 프래그먼트가 신뢰도 값들이 {fried=0.72, served=0.18, with=1.00, chutney=0.34}인 캡션 문자열들 "fried served with chutney"를 포함하는 경우, 그러면 프로세싱 로직은 캡션 문자열 "with"를 높은 신뢰도 캡션 문자열로서 식별하고, 시작 및 종료 시간을 사용하여 그 문자열을 앵커링할 수도 있다. "with"에 대한 시작 및 종료 시간은 각각 [2:12.709, 2:12.979]이다. 문자열들 "fried" 및 "served"에 대한 중앙치 시간들은 각각 5-문자 및 6-문자 열 중앙치 시간들에 기초한다. 프로세싱 로직은 문장 프래그먼트의 시작 시간을 추정하기 위해 앵커 단어 "with"의 시작 시간으로부터 5-문자 및 6-문자 열 중앙치 시간들을 감산할 수도 있다. 문장 프래그먼트에 대한 종료 시간은 문장 프래그먼트의 끝에 도달될 때까지 후행하는 낮은 신뢰도 캡션 문자열들 각각에 대응하는 중앙치 지속기간 시간들을 가산함으로써 유사하게 계산될 수도 있다. 예를 들어, 7-문자열 "chutney"에 대한 중앙치 지속기간을 앵커 캡션 문자열 "with"의 종료 시간에 가산함으로써 종료 시간이 추정될 수도 있다.
문장 프래그먼트가 높은 신뢰도 스코어들을 갖는 어떠한 캡션 문자열들도 포함하지 않는 경우, 프로세싱 로직은 문장 프래그먼트에서의 각각의 캡션 문자열에 대한 요약 통계들을 사용하여 문장 프래그먼트 지속기간을 근사화할 수도 있다. 일 구현에서, 프로세싱 로직은 문장 프래그먼트에서의 각각의 캡션 문자열에 대한 중앙치 지속기간 값들을 집계한 후에, 추정된 타이밍을 사용하여 문장 프래그먼트의 중간 포인트를 결정한다. 중간 포인트가 결정된 후에, 시작 및 종료 시간들이 추정될 수도 있다.
블록 425에서, 프로세싱 로직은 캡션 문장 프래그먼트들의 세트 중 매핑된 개별 캡션 문장 프래그먼트들의 추정된 시간 간격들에 기초하여 번역된 문장 프래그먼트들의 세트 중 개별 번역된 문장 프래그먼트들에 추정된 시간 간격들을 할당한다. 일 구현에서, 프로세싱 로직은, 캡션 문장 프래그먼트들의 세트로부터의 추정된 시작/종료 타이밍을, 번역된 문장 프래그먼트들의 세트에서의 대응하는 번역된 문장 프래그먼트들에 할당한다.
블록 430에서, 프로세싱 로직은 음성 세그먼트들의 세트를 번역된 문장 프래그먼트들의 세트에 매칭시킨다. 음성 세그먼트들은, 음성이 비디오 콘텐츠 아이템에서 활성으로 되고 단지 한 명의 화자만이 발화하고 있을 때의 시간의 간격들을 지칭한다. 예를 들어, 개별 음성 세그먼트는 한 사람이 발화하고 있는 시간의 지속기간을 표현할 수도 있다. 비디오 내에 연이어 발화하는 다수의 사람들이 있는 경우, 각각의 사람의 음성이 별개의 음성 세그먼트로서 표현된다. 음성 세그먼트들은 비디오 콘텐츠 아이템과 연관된 캡션 데이터에 대해 화자 정보 및 연관된 음성 세그먼트들을 제공하기 위해 비디오 콘텐츠 아이템의 오디오 및 비디오 부분들을 분석하도록 구성되는 콘텐츠 공유 플랫폼(120) 또는 임의의 다른 외부 또는 내부 음성 세그먼트화 서비스 플랫폼에 의해 제공될 수도 있다. 음성 세그먼트들의 세트는, 각각의 음성 세그먼트에 대한 시작/종료 시간들을 식별하는 타이밍 정보를 포함할 수도 있다.
일 구현에서, 프로세싱 로직은 콘텐츠 공유 플랫폼(120)으로부터 비디오에 대한 음성 세그먼트들의 세트를 요청할 수도 있다. 프로세싱 로직은, 음성 세그먼트들의 세트로부터의 타이밍 정보를, 번역된 문장 프래그먼트들의 세트에 할당되는 추정된 타이밍 정보와 비교할 수도 있다. 개별 음성 세그먼트로부터의 타이밍이 번역된 문장 프래그먼트에 대한 추정된 타이밍 정보와 중첩되는 경우, 그러면 프로세싱 로직은 개별 음성 세그먼트와 대응하는 번역된 문장 프래그먼트를 매칭되는 것으로 간주할 수도 있다. 프로세싱 로직은 매칭 음성 세그먼트들로부터의 타이밍 정보를 사용하여 번역된 문장 프래그먼트들의 세트에서의 개별 번역된 문장 프래그먼트들의 타이밍 정보를 조정할 수도 있다.
일 구현에서, 번역된 문장 프래그먼트에 대한 타이밍 정보가 다수의 음성 세그먼트들과 중첩되는 경우, 그러면 프로세싱 로직은 번역된 문장 프래그먼트를 대응하는 음성 세그먼트에 매칭시킬 목적들을 위해 다수의 음성 세그먼트들을 단일 음성 세그먼트로 병합할 수도 있다. 음성 세그먼트화 서비스 플랫폼에 의해 음성 세그먼트들이 과도하게 분할된 경우, 번역된 문장 프래그먼트를 다수의 음성 세그먼트들에 매칭시키는 것이 발생할 수도 있다. 예를 들어, 음성 세그먼트화 서비스 플랫폼은, 과도하게 분할되었을 수도 있는 단일 화자에 의한 연속적인 음성에 관련되는 다수의 음성 세그먼트들을 포함할 수도 있다. 매칭 동안, 프로세싱 로직은, 과도하게 분할된 음성 세그먼트들을, 단일의 번역된 문장 프래그먼트에 매칭되는 단일 음성 세그먼트로 조합할 수도 있다.
일 구현에서, 번역된 문장 프래그먼트가 음성 세그먼트와 충분히 중첩되고 다른 음성 세그먼트와 약간 중첩되는 경우, 그러면 프로세싱 로직은 약간 매칭되는 음성 세그먼트를 무시하고, 번역된 문장 프래그먼트를, 번역된 문장 프래그먼트와 충분히 중첩되는 음성 세그먼트에 매칭시키도록 구성될 수도 있다. 충분한 중첩은 구성된 임계치를 초과하는 타이밍 중첩의 퍼센티지로서 정의될 수도 있다. 예를 들어, 번역된 문장 프래그먼트의 80%가 음성 세그먼트와 중첩되는 경우, 그러면 번역된 문장 프래그먼트와 음성 세그먼트가 충분히 중첩되는 것으로 간주될 수도 있다. 다른 구현들에서, 충분한 중첩은 최소 시간량 또는 임의의 다른 측정가능한 메트릭에 기초할 수도 있다.
일 구현에서, 번역된 문장 프래그먼트가 특정 음성 세그먼트와 충분히 중첩되지 않은 경우, 프로세싱 로직은 타이밍 정보에 기초하여 가장 근접한 음성 세그먼트에 기초하여 번역된 문장 프래그먼트를 음성 세그먼트에 매칭시킬 수도 있다.
번역된 문장 프래그먼트들을 대응하는 음성 세그먼트들에 매칭시킬 때, 프로세싱 로직은 매칭 음성 세그먼트들로부터의 타이밍 정보를 사용하여 번역된 문장 프래그먼트들의 세트에서의 개별 번역된 문장 프래그먼트들의 타이밍 정보를 조정할 수도 있다. 각각의 음성 세그먼트에 대해, 매칭된 번역된 문장 프래그먼트들은 비례적으로 시간 조정되어, 매칭된 음성 세그먼트의 타이밍 정보를 매칭시킬 수도 있다. 예를 들어, 2개의 번역된 문장 프래그먼트들이 단일 음성 세그먼트와 매칭되고 제1 번역된 문장 프래그먼트가 제2 번역된 문장 프래그먼트의 지속기간의 2배인 경우, 그러면 프로세싱 로직은 제1 번역된 문장 프래그먼트의 시작 시간을 조정하여 음성 세그먼트의 시작 시간과 정렬시키고, 제1 번역된 문장 프래그먼트의 종료 시간을 조정하여 음성 세그먼트의 지속기간에 걸쳐 대략 2/3에서 종료시킬 수도 있다. 프로세싱 로직은 제2 번역된 문장 프래그먼트의 시작 시간을 음성 세그먼트의 지속기간에 걸쳐 대략 2/3으로 조정하고, 제2 번역된 문장 프래그먼트의 종료 시간을 음성 세그먼트의 종료 시간으로 조정할 수도 있다.
블록 435에서, 프로세싱 로직은 음성 세그먼트들로부터의 화자 식별자(ID) 정보를 사용하여 번역된 문장 프래그먼트들의 세트에서의 번역된 문장 프래그먼트들 각각에 화자 정보를 연관시킬 수도 있다. 일 구현에서, 제공된 음성 세그먼트들은, 각각의 음성 세그먼트와 연관된 화자 ID 정보를 포함하는 메타데이터 정보를 포함할 수도 있다. 예를 들어, 화자 ID 정보는 비디오 콘텐츠 아이템 내의 어떤 사람이 음성 세그먼트 내의 대화를 발화하였는지를 표시할 수도 있다. 화자 ID 정보는, 화자의 성별, 나이, 스크린 포지션, 또는 화자의 아이덴티티(identity)와 관련된 임의의 다른 관련 정보와 관련된 인구 통계 정보를 포함할 수도 있다. 예를 들어, 콘텐츠 공유 플랫폼(120)으로부터의 제공된 음성 세그먼트들은 얼굴 추적, 시각적 음성 분류(즉, 비디오에서 각각의 얼굴을 시간 경과에 따라 검토하여, 그것이 발화하고 있는지를 자동적으로 추론함), 및 오디오 보이스 식별과 같은 기술들을 사용하여 비디오에서 각각의 화자에 대한 화자 ID 정보를 결정할 수도 있다. 일 구현에서, 프로세싱 로직은 화자 ID 정보에 기초하여 화자 ID들 각각에 고유 합성 보이스들을 할당할 수도 있다.
블록 440에서, 프로세싱 로직은 번역된 문장 프래그먼트들의 세트로부터 연속적인 번역된 문장 프래그먼트들을 조합하여 번역된 문장들의 세트를 생성할 수도 있다. 일 구현에서, 프로세싱 로직은 연속적인 번역된 문장 프래그먼트들의 연관된 화자 ID들, 구두점, 및 타이밍 정보를 사용하여 연속적인 번역된 문장 프래그먼트들을 조합할 수도 있다. 예를 들어, 연속적인 번역된 문장 프래그먼트들이 동일한 연관된 화자 ID를 갖는 경우, 그러면 프로세싱 로직은 연속적인 번역된 문장 프래그먼트들을 조합하여 번역된 문장을 생성할 수도 있다. 다른 예에서, 연속적인 번역된 문장 프래그먼트들이 부분 문장들로서 식별되는 경우, 그러면 프로세싱 로직은 번역된 문장 프래그먼트들에서의 구두점에 기초하여 번역된 문장을 생성하기 위해 부분 문장들을 조합할 수도 있다. 또 다른 예에서, 연속적인 번역된 문장 프래그먼트들이 하나의 번역된 문장 프래그먼트의 종료 시간과 다른 번역된 문장 프래그먼트의 시작 시간 사이의 갭들이 짧게 또는 갭들이 없이 시간적으로 근접한 경우, 그러면 프로세싱 로직은 연속적인 번역된 문장 프래그먼트들을 조합하여 단일의 번역된 문장을 생성할 수도 있다. 프로세싱 로직은 번역된 문장 프래그먼트들로부터 타이밍 정보 및 화자 ID 정보를 포함하는 번역된 문장들의 세트를 생성한다. 일 구현에서, 프로세싱 로직은 번역된 문장들의 세트를 비디오의 오디오 부분에 정렬시킬 수도 있다.
도 4b는 개별 캡션 문자열들의 할당된 타이밍 정보를 사용하여 머신 생성된 번역 캡션 데이터를 비디오의 오디오 부분과 정렬시키기 위한 예시적인 방법을 예시한다. 일 구현에서, 블록 450 내지 블록 475는 도 2의 블록 225 내에서 수행될 수도 있는 상세한 액트들을 표현한다.
블록 450에서, 프로세싱 로직은 복수의 캡션 문자열들로부터 문장 프래그먼트들을 생성한다. 일 구현에서, 프로세싱 로직은 복수의 캡션 문자열들에서 문장 프래그먼트 경계 마커들로서 구두점을 사용하여 문장 프래그먼트들을 식별할 수도 있다. 프로세싱 로직은 캡션 문자열들의 문장 프래그먼트들을 포함하는 캡션 문장 프래그먼트들의 세트를 생성할 수도 있다.
블록 455에서, 프로세싱 로직은 캡션 문장 프래그먼트들의 세트에 대한 문장 프래그먼트 시간 간격들을 추정한다. 일 구현에서, 프로세싱 로직은 블록 415에서 설명된 바와 같이 요약 통계들을 사용하여 캡션 문장 프래그먼트들의 세트에 대한 문장 프래그먼트 시간 간격들을 추정하기 위해 개별 캡션 문자열들에 대한 할당된 타이밍 정보를 사용할 수도 있다.
블록 460에서, 프로세싱 로직은 콘텐츠 공유 플랫폼(120) 또는 임의의 다른 외부 또는 내부 음성 세그먼트화 서비스 플랫폼에 의해 제공된 음성 세그먼트들의 세트를 캡션 문장 프래그먼트들의 세트에 매칭시킬 수도 있다. 일 구현에서, 프로세싱 로직은 콘텐츠 공유 플랫폼(120)으로부터 비디오에 대한 음성 세그먼트들의 세트를 요청할 수도 있다. 프로세싱 로직은, 음성 세그먼트들의 세트로부터의 타이밍 정보를, 캡션 문장 프래그먼트들의 세트에 할당되는 추정된 타이밍 정보와 비교할 수도 있다. 개별 음성 세그먼트로부터의 타이밍이 캡션 문장 프래그먼트에 대한 추정된 타이밍 정보와 중첩되는 경우, 그러면 프로세싱 로직은 개별 음성 세그먼트와 대응하는 캡션 문장 프래그먼트를 매칭되는 것으로 간주할 수도 있다. 프로세싱 로직은 매칭 음성 세그먼트들로부터의 타이밍 정보를 사용하여 캡션 문장 프래그먼트들의 세트에서의 개별 캡션 문장 프래그먼트들의 타이밍 정보를 조정할 수도 있다.
일 구현에서, 캡션 문장 프래그먼트에 대한 타이밍 정보가 다수의 음성 세그먼트들과 중첩되는 경우, 그러면 프로세싱 로직은 캡션 문장 프래그먼트를 대응하는 음성 세그먼트에 매칭시킬 목적들을 위해 다수의 음성 세그먼트들을 단일 음성 세그먼트로 병합할 수도 있다. 음성 세그먼트화 서비스 플랫폼에 의해 음성 세그먼트들이 과도하게 분할된 경우, 캡션 문장 프래그먼트를 다수의 음성 세그먼트들에 매칭시키는 것이 발생할 수도 있다. 예를 들어, 음성 세그먼트화 서비스 플랫폼은, 과도하게 분할되었을 수도 있는 단일 화자에 의한 연속적인 음성에 관련되는 다수의 음성 세그먼트들을 포함할 수도 있다. 매칭 동안, 프로세싱 로직은, 과도하게 분할된 음성 세그먼트들을, 단일의 캡션 문장 프래그먼트에 매칭되는 단일 음성 세그먼트로 조합할 수도 있다.
일 구현에서, 캡션 문장 프래그먼트가 음성 세그먼트와 충분히 중첩되고 다른 음성 세그먼트와 약간 중첩되는 경우, 그러면 프로세싱 로직은 약간 매칭되는 음성 세그먼트를 무시하고, 캡션 문장 프래그먼트를, 캡션 문장 프래그먼트와 충분히 중첩되는 음성 세그먼트에 매칭시키도록 구성될 수도 있다. 일 구현에서, 캡션 문장 프래그먼트가 특정 음성 세그먼트와 충분히 중첩되지 않은 경우, 프로세싱 로직은 타이밍 정보에 기초하여 가장 근접한 음성 세그먼트에 기초하여 캡션 문장 프래그먼트를 음성 세그먼트에 매칭시킬 수도 있다.
캡션 문장 프래그먼트들을 대응하는 음성 세그먼트들에 매칭시킬 때, 프로세싱 로직은 매칭 음성 세그먼트들로부터의 타이밍 정보를 사용하여 캡션 문장 프래그먼트들의 세트에서의 개별 캡션 문장 프래그먼트들의 타이밍 정보를 조정할 수도 있다. 각각의 음성 세그먼트에 대해, 매칭된 캡션 문장 프래그먼트들은 비례적으로 시간 조정되어, 매칭된 음성 세그먼트의 타이밍 정보를 매칭시킬 수도 있다. 예를 들어, 2개의 캡션 문장 프래그먼트들이 단일 음성 세그먼트와 매칭되고 제1 캡션 문장 프래그먼트가 제2 캡션 문장 프래그먼트의 지속기간의 2배인 경우, 그러면 프로세싱 로직은 제1 캡션 문장 프래그먼트의 시작 시간을 조정하여 음성 세그먼트의 시작 시간과 정렬시키고, 제1 캡션 문장 프래그먼트의 종료 시간을 조정하여 음성 세그먼트의 지속기간에 걸쳐 대략 2/3에서 종료시킬 수도 있다. 프로세싱 로직은 제2 캡션 문장 프래그먼트의 시작 시간을 음성 세그먼트의 지속기간에 걸쳐 대략 2/3으로 조정하고, 제2 캡션 문장 프래그먼트의 종료 시간을 음성 세그먼트의 종료 시간으로 조정할 수도 있다.
블록 465에서, 프로세싱 로직은 음성 세그먼트들로부터의 화자 ID 정보를 사용하여 캡션 문장 프래그먼트들의 세트에서의 캡션 문장 프래그먼트들 각각에 화자 정보를 연관시킬 수도 있다. 이전에 논의된 바와 같이, 제공된 음성 세그먼트들은, 각각의 음성 세그먼트와 연관된 화자 ID 정보를 포함하는 메타데이터 정보를 포함할 수도 있다. 화자 ID 정보는, 화자의 성별, 나이, 스크린 포지션, 또는 화자의 아이덴티티와 관련된 임의의 다른 관련 정보와 관련된 인구 통계 정보를 포함할 수도 있다.
블록 470에서, 프로세싱 로직은 캡션 문장 프래그먼트들의 세트로부터 연속적인 캡션 문장 프래그먼트들을 조합하여 캡션 문장들의 세트를 생성할 수도 있다. 일 구현에서, 프로세싱 로직은 연속적인 캡션 문장 프래그먼트들의 연관된 화자 ID들, 구두점, 및 타이밍 정보를 사용하여 연속적인 캡션 문장 프래그먼트들을 조합할 수도 있다. 예를 들어, 연속적인 캡션 문장 프래그먼트들이 동일한 연관된 화자 ID를 갖는 경우, 그러면 프로세싱 로직은 연속적인 캡션 문장 프래그먼트들을 조합하여 캡션 문장을 생성할 수도 있다. 다른 예에서, 연속적인 캡션 문장 프래그먼트들이 부분 문장들로서 식별되는 경우, 그러면 프로세싱 로직은 캡션 문장 프래그먼트들에서의 구두점에 기초하여 캡션 문장을 생성하기 위해 부분 문장들을 조합할 수도 있다. 또 다른 예에서, 연속적인 캡션 문장 프래그먼트들이 하나의 캡션 문장 프래그먼트의 종료 시간과 다른 캡션 문장 프래그먼트의 시작 시간 사이의 갭들이 짧게 또는 갭들이 없이 시간적으로 근접한 경우, 그러면 프로세싱 로직은 연속적인 캡션 문장 프래그먼트들을 조합하여 단일의 캡션 문장을 생성할 수도 있다. 프로세싱 로직은 캡션 문장 프래그먼트들로부터 타이밍 정보 및 화자 ID 정보를 포함하는 캡션 문장들의 세트를 생성한다.
블록 475에서, 프로세싱 로직은 머신 번역 및 캡션 문장들의 세트를 사용하여 번역된 문장들의 세트를 생성한다. 일 구현에서, 프로세싱 로직은 캡션 문장들의 세트로부터 번역된 문장들의 세트를 생성하라는 요청을 음성 인식 및 생성 서비스(150)에 전송할 수도 있다. 생성된 머신 번역들은 번역된 문장들의 세트로서 표현될 수도 있고, 프로세싱 로직은 타이밍 정보 및 화자 ID 정보를 대응하는 캡션 문장들로부터의 각각의 개별 번역된 문장에 연관시킬 수도 있다. 일 구현에서, 프로세싱 로직은 번역된 문장들의 세트를 비디오의 오디오 부분에 정렬시킬 수도 있다.
일 구현에서, 프로세싱 로직은 번역된 문장들의 세트를 번역된 오디오 음성으로 변환할 수도 있는데, 이 번역된 오디오 음성은 비디오 상으로 오버레이되어 오리지널 비디오 콘텐츠 아이템의 번역된 버전을 생성할 수도 있다. 번역된 오디오 음성은 번역된 문장들을 번역된 오디오 음성으로 합성하도록 구성되는 자동화된 음성 합성기를 사용하여 생성될 수도 있다. 다른 예들에서, 번역된 오디오 음성은 성우로부터의 번역된 보이스 작업을 사용하여 생성될 수도 있다. 번역된 오디오 음성을 생성하기 위한 성우의 사용은 고품질 보이스들 및/또는 감성적인 음성이 오버레이하기 위해 더 바람직한 번역된 오디오 음성을 생성하는 경우에 이로울 수도 있다. 도 6a는 번역된 오디오 음성을 비디오 상으로 오버레이하고 음성의 번역된 오디오 부분들을 포함하는 제2 비디오를 생성하기 위한 예시적인 방법을 예시한다. 예시적인 방법은 보이스 합성기로부터의 번역된 오디오 음성, 성우들에 의해 생성되는 번역된 오디오 음성, 또는 이들 양측 모두의 조합을 사용하는 것을 설명할 수도 있다. 블록 605에서, 프로세싱 로직은 번역된 오디오 음성의 세트를 수신할 수도 있고, 여기서 번역된 오디오 음성의 세트에서의 각각의 번역된 오디오 음성은 번역된 문장들의 세트에서의 번역된 문장들에 대응한다.
일 구현에서, 프로세싱 로직은, 음성 인식 및 생성 서비스(150) 또는 임의의 다른 번역 및 음성 생성 서비스로부터, 번역된 문장들의 세트에 대응하는 오디오 음성을 요청할 수도 있다. 번역된 오디오 음성이라고 지칭되는 오디오 음성은 번역된 오디오 음성 세그먼트들의 세트로서 수신될 수도 있고, 여기서 각각의 번역된 오디오 음성 세그먼트는 번역된 문장들의 세트로부터의 번역된 문장에 대응한다. 일 구현에서, 오디오 음성 세그먼트들의 세트에서의 각각의 오디오 음성 세그먼트는, 각각의 번역된 문장에 대한 대응하는 화자 ID 속성들과 매칭되는 머신 생성된 오디오 음성을 포함할 수도 있다. 예를 들어, 번역된 문장이 화자 ID 및 화자가 여자임을 표시하는 연관된 화자 속성들을 갖는 경우, 그러면 수신된 대응하는 오디오 음성 세그먼트는 여성 보이스와 매칭되는 머신 생성된 오디오 음성일 수도 있다.
일 구현에서, 음성 인식 및 생성 서비스(150)는 연관된 화자 ID 정보에 기초하여 화자들에 대한 합성 보이스들을 선택하도록 구성될 수도 있다. 음성 인식 및 생성 서비스(150)는 각각의 화자가 발화한 시간의 지속기간에 기초하여 상이한 화자들을 소팅(sort)한 후에, 가장 많은 발화 시간을 갖는 화자들에게 매칭 합성 보이스들을 우선 할당할 수도 있다. 가장 많은 발화 시간을 갖는 화자들에 대해 합성 보이스들을 할당한 후에, 남아 있는 화자들에게는 연관된 화자 ID 정보 및 남아 있는 이용가능한 합성 보이스들에 기초하여 합성 보이스들이 할당될 수도 있다.
블록 610에서, 프로세싱 로직은, 번역된 오디오 음성의 세트에서의 각각의 번역된 오디오 음성에 대해, 대응하는 번역된 문장과 연관된 타이밍 정보 및 번역된 오디오 음성과 연관된 지속기간 정보를 사용하여 번역된 오디오 음성을 비디오 상으로 오버레이할 수도 있다. 번역된 오디오 음성의 지속기간과 대응하는 번역된 문장의 지속기간이 매칭되는 경우, 그러면 번역된 오디오 음성은 대응하는 번역된 문장에 대한 오리지널 오디오 부분을 대체하여 비디오 상으로 끊김없이 오버레이될 수도 있다. 예를 들어, 대응하는 번역된 문장이 "I like chickpea soup"이고 번역된 문장에 대한 타이밍 정보가 번역된 문장이 2.2초의 길이임을 표시하는 경우, 그러면 "I like chickpea soup"에 대한 번역된 오디오 음성은 번역된 오디오 음성이 또한 2.2초의 길이인 경우 비디오 상으로 끊김없이 오버레이될 수도 있다.
번역된 오디오 음성의 지속기간이 더 길거나 또는 더 짧은 경우, 그러면 번역된 오디오 음성을 수정 없이 오버레이하면 결국 불쾌하게 보일 수도 있다. 예를 들어, 번역된 오디오 음성이 번역된 문장의 지속기간보다 더 짧은 경우, 그러면 오디오 음성은 종료될 것이지만 비디오는 화자의 입술들이 여전히 움직이는 것을 보여줄 것이다. 역으로, 번역된 오디오 음성이 번역된 문장의 지속기간보다 더 긴 경우, 그러면 화자의 입술들이 움직이는 것을 멈춘 후에도 오디오 음성이 여전히 플레이될 것이다. 이들 양측 모두의 상황들에서, 부정확하게 더빙된 번역된 오디오 음성으로 인해 번역된 비디오의 시청자가 비디오를 보는 것을 단념하게 될 수도 있다.
일 구현에서, 프로세싱 로직은 오리지널 오디오 음성에 대응하는 오리지널 오디오 부분의 오디오 볼륨을 낮추고 번역된 오디오 음성을 오버레이할 수도 있다. 다른 구현에서, 프로세싱 로직은 음악 또는 배경 노이즈들과 같은 다른 사운드들을 유지하면서, 오리지널 오디오 부분으로부터의 보이스를 디지털 방식으로 소거하고, 대응하는 번역된 오디오 음성을 오버레이할 수도 있다. 또 다른 구현에서, 프로세싱 로직은 오리지널 오디오 부분을 번역된 오디오 음성으로 대체할 수도 있다.
도 6b는 비디오 콘텐츠 아이템에서의 오디오 및 비디오 지속기간들을 번역된 음성과 매칭시키기 위해 오버레이 파라미터들을 조정하기 위한 예시적인 방법을 예시한다. 블록 620에서, 프로세싱 로직은 비디오 상으로 오버레이하기 위해 번역된 오디오 음성의 세트에서 번역된 오디오 음성을 선택한다. 판정 블록 625에서, 프로세싱 로직은 선택된 번역된 오디오 음성의 지속기간이 연관된 비디오 세그먼트의 지속기간과 매칭되는지를 결정한다. 번역된 오디오 음성의 지속기간과 연관된 비디오 세그먼트의 지속기간이 매칭되는 경우, 그러면 번역된 오디오 음성을 오버레이하기 위해 오디오 또는 비디오에 대한 조정이 필요하지 않으며, 프로세싱 로직은 블록 630으로 진행하여 오버레이를 수행할 수도 있다. 번역된 오디오 음성의 지속기간과 연관된 비디오 세그먼트의 지속기간이 매칭되지 않은 경우, 그러면 번역된 오디오 음성 및 비디오의 끊김없는 오버레이를 생성하기 위해 번역된 오디오 음성 및/또는 비디오의 오디오 및/또는 비디오가 조정될 수도 있다.
블록 635에서, 프로세싱 로직은 번역된 음성 세그먼트의 지속기간을 비디오에서의 대응하는 비디오 세그먼트에 매칭시키기 위해 오버레이 파라미터들을 조정할 수도 있다. 오버레이 파라미터들은, 번역된 오디오 음성의 오디오 레이트 및 번역된 오디오 음성에 대응하는 비디오의 세그먼트에 대한 비디오 레이트 및/또는 지속기간을 조정하는 것을 포함할 수도 있다.
일 구현에서, 프로세싱 로직은 번역된 오디오 음성이 비디오에서의 오리지널 오디오 음성의 지속기간과 매칭되게 하기 위해, 번역된 오디오 음성 레이트를 보다 빠르게 또는 보다 느리게 조정할 수도 있다. 예를 들어, 번역된 오디오 음성이 2.5초의 길이이고 오리지널 오디오 음성이 2.2초의 길이인 경우, 그러면 프로세싱 로직은 번역된 오디오 음성의 지속기간을 2.2초의 길이인 것으로 조정하기 위해 번역된 오디오 음성의 레이트를 약 10%만큼 가속시킬 수도 있다. 다른 예에서, 번역된 오디오 음성이 1.95초의 길이이고 오리지널 오디오 음성이 2.2초의 길이인 경우, 그러면 프로세싱 로직은 번역된 오디오 음성의 지속기간을 2.2초의 길이인 것으로 조정하기 위해 번역된 오디오 음성의 레이트를 약 10%만큼 감속시킬 수도 있다.
조정 파라미터들이 원하는 속도 조정 범위 내에 있는 경우, 번역된 오디오 음성의 오디오 음성 레이트의 조정이 바람직하다. 번역된 오디오 음성의 레이트가 너무 많이 가속된 경우, 그러면 번역된 음성 세그먼트가 너무 빠르게 플레이되어 시청자에 의해 이해불가능하게 될 수도 있다. 번역된 오디오 음성의 레이트가 너무 많이 감속된 경우, 그러면 번역된 음성 세그먼트가 너무 느리게 플레이될 수도 있고, 번역된 오디오 음성이 왜곡되거나 또는 불분명하게 들릴 수도 있다. 프로세싱 로직은 구성된 최소 및 최대 재생 속도 임계치를 구현할 수도 있고, 여기서 최소 속도 임계치는 번역된 오디오 음성이 부정적인 영향들 없이 플레이될 수도 있는 가장 느린 레이트이고, 최대 속도 임계치는 번역된 오디오 음성이 시청자에 의해 경험되는 부정적인 영향들 없이 플레이될 수도 있는 가장 빠른 레이트이다. 일 구현에서, 구성된 최소 및 최대 재생 속도 임계치는 언어 특정적일 수도 있다. 언어 특정 구성된 최소/최대 재생 속도 임계치들은 음성 조정들 후에 각각의 특정 언어를 얼마나 이해가능한지에 기초할 수도 있다. 예를 들어, 영어 최소/최대 재생 속도 임계치는 중국어 최소/최대 재생 속도 임계치보다 더 큰 속도 조정을 가능하게 할 수도 있다.
일 구현에서, 프로세싱 로직은 번역된 오디오 속도 레이트 감속의 양을 감소시킬 목적을 위해 시간적으로 근접하게 발생하는 다수의 번역된 오디오 음성들을 결정할 수도 있다. 다수의 번역된 오디오 음성들 사이에 짧은 일시정지들이 식별될 수도 있다. 프로세싱 로직은 다수의 번역된 오디오 음성들 사이에 추가 일시정지들을 부가하기 위해 그룹 내의 후속 번역된 오디오 음성들의 시작 시간을 조정함으로써 다수의 번역된 음성 음성들을 그룹으로서 조정하고 오버레이할 수도 있다. 다수의 번역된 오디오 음성들 사이에 추가 일시정지들을 부가하면 프로세싱 로직이 다수의 번역된 오디오 음성들 각각의 속도 레이트를 상당히 감속시킬 필요 없이 다수의 번역된 오디오 음성들의 지속기간이 연장되게 한다.
일 구현에서, 프로세싱 로직은, 블록 635에서, 구성된 최소 및 최대 재생 속도 임계치들 내에서 번역된 오디오 음성의 번역된 오디오 속도 레이트를 조정할 수도 있다. 프로세싱 로직은 판정 블록 630으로 다시 진행할 수도 있다. 판정 블록 630에서, 프로세싱 로직이 번역된 오디오 음성이 비디오에서의 오리지널 오디오 음성의 지속기간과 매칭된다고 결정하는 경우, 그러면 프로세싱 로직은 블록 630으로 진행하여, 번역된 오디오 음성을 비디오의 대응하는 비디오 부분 상으로 오버레이할 수도 있다. 번역된 오디오 속도 레이트를 조정한 후에, 구성된 최소 및 최대 재생 속도 임계치들 내에서, 번역된 오디오 음성의 지속기간이 비디오에서의 오리지널 오디오 음성의 지속기간과 매칭되지 않은 경우, 프로세싱 로직은 오버레이 파라미터들의 추가 조정을 위해 블록 635로 다시 진행할 수도 있다. 프로세싱 로직은 번역된 오디오 음성의 지속기간들이 오리지널 오디오 음성에 대응하는 비디오 부분의 조정된 지속기간과 매칭되게 하기 위해 비디오로부터의 대응하는 비디오 부분의 비디오 레이트를 조정할 수도 있다.
일 구현에서, 프로세싱 로직은 번역된 오디오 음성 지속기간이 대응하는 비디오 부분의 지속기간과 매칭되게 하기 위해, 비디오 부분 재생 레이트를 보다 빠르게 또는 보다 느리게 조정함으로써 오리지널 오디오 음성에 대응하는 대응 비디오 부분에 대한 비디오 레이트를 조정할 수도 있다. 프로세싱 로직은 구성된 최소/최대 비디오 레이트 조정 임계치를 구현할 수도 있고, 여기서 최소 조정 임계치는 비디오 부분이 부정적인 영향들 없이 플레이될 수도 있는 가장 느린 레이트이고, 최대 조정 임계치는 비디오 부분이 시청자에 의해 경험되는 부정적인 영향들 없이 플레이될 수도 있는 가장 빠른 레이트이다. 구성된 최소/최대 비디오 레이트 조정 임계치는 오디오 레이트를 조정하기 위해 구성된 최소/최대 재생 속도 임계치보다 더 작은 조정 윈도우일 수도 있는데, 이는 비디오에 대한 조정들이 오디오 레이트에 대한 조정들보다 시청자에게 더 눈에 띌 수도 있기 때문이다.
일 구현에서, 프로세싱 로직은 비디오 부분에서 선택된 프레임들을 복제하는 것에 의해 대응하는 대응 비디오 부분에 대한 비디오 레이트를 조정할 수도 있다. 선택된 프레임들을 복제하면 보다 긴 번역된 오디오 음성의 지속기간과 매칭시키기 위해 비디오 부분의 재생 지속기간을 증가시킬 수도 있다. 비디오 부분의 지속기간을 늘리기 위해 선택된 프레임들이 규칙적인 간격들로 복제될 수도 있다.
일 구현에서, 프로세싱 로직은 보다 짧은 번역된 오디오 음성과 매칭시키도록 비디오 부분의 지속기간을 압축하기 위해 비디오 부분에서 선택된 비디오 프레임들을 제거할 수도 있다. 예를 들어, 프로세싱 로직은 비디오 부분이 더 빨리 플레이되게 하기 위해 비디오 부분의 지속기간에 걸친 규칙적인 간격들로 선택된 프레임들을 제거할 수도 있다.
일 구현에서, 선택된 프레임들을 복제 또는 제거하는 것에 의한 비디오 레이트의 조정은 규칙적인 간격들 동안 부가 또는 제거될 수도 있는 프레임들의 수를 특정하는 최소/최대 비디오 조정 임계치에 기초할 수도 있다. 최소/최대 비디오 조정 임계치는 비디오 부분 내의 비디오의 타입에 기초하여 구성될 수도 있다. 예를 들어, 비디오 부분이 슬라이드쇼의 디스플레이와 같은 정적 프레임들을 포함하는 경우, 그러면 최소/최대 비디오 조정 임계치는 비디오 프레임들의 증가된 제거 또는 복제를 가능하게 할 수도 있는데, 이는 시청자가 비디오 부분에 대한 조정들을 알아차릴 가능성이 적기 때문이다. 비디오 부분이, 액션 시퀀스와 같은, 빠르게 움직이는 장면들을 포함하는 경우, 그러면 최소/최대 비디오 조정 임계치는 비디오 프레임들에 대한 제한된 수의 변경들을 가능하게 할 수도 있는데, 이는 빠르게 움직이는 비디오에 대한 조정들이 시청자에 의해 더 쉽게 눈에 띄기 때문이다.
일 구현에서, 프로세싱 로직은 번역된 오디오 음성의 오디오, 오리지널 오디오 음성에 대응하는 비디오 부분, 또는 오디오 및 비디오 조정들 양측 모두의 조합을 조정할 수도 있다.
블록 635를 참조하면, 프로세싱 로직은 번역된 오디오 음성의 오디오 레이트 또는 대응하는 비디오 부분의 비디오 레이트와 같은 오버레이 파라미터를 조정할 수도 있다. 오버레이 파라미터의 조정 시에, 프로세싱 로직은 판정 블록 625로 진행하여, 번역된 오디오 음성과 오리지널 오디오 음성의 지속기간들을 매칭시키기 위해 부가적인 조정들이 필요한지를 결정한다. 부가적인 조정들이 필요한 경우, 그러면 프로세싱 로직은 번역된 오디오 음성의 오디오 레이트 또는 대응하는 비디오 부분의 비디오 레이트에 대한 부가적인 조정들을 위해 블록 635로 다시 진행한다. 부가적인 조정들이 필요하지 않은 경우, 그러면 프로세싱 로직은 블록 630으로 진행하여, 번역된 오디오 음성을 비디오의 대응하는 비디오 부분 상으로 오버레이한다.
블록 630에서, 프로세싱 로직은 번역된 오디오 음성을 비디오의 대응하는 비디오 부분 상으로 오버레이하여 시청자를 위한 번역된 오디오 트랙을 생성할 수도 있다. 일 구현에서, 프로세싱 로직은 번역된 오디오 트랙을 생성할 때 오리지널 오디오 부분의 비-발화 오디오 부분들을 유지할 수도 있다. 이것은 전체적인 비디오 경험을 보존하기 위해 시청자가 다른 비-발화 사운드들과 관련된 오디오를 여전히 듣게 한다. 그러나, 오디오가 번역된 오디오 음성들과 오리지널 오디오 사이에서 전환되는 경우, 시청자는, 바람직하지 않을 수도 있는, 오디오 사운드의 갑작스러운 변경들을 경험할 수도 있다.
일 구현에서, 프로세싱 로직은 2개의 번역된 오디오 음성들 사이에 짧은 갭이 있을 때 2개의 번역된 오디오 음성들 사이에 묵음을 삽입함으로써 오디오의 갑작스러운 변경들의 영향들을 감소시킬 수도 있다. 예를 들어, 2개의 번역된 오디오 음성들 사이에 ½초 갭이 있는 경우, 그러면 오리지널 오디오 부분의 ½초를 플레이하는 것은 바람직하지 않을 수도 있다. 그 대신에, 프로세싱 로직은 2개의 번역된 오디오 음성들 사이에 묵음을 삽입할 수도 있는데, 이는 그 2개 사이의 갭이 작기 때문이다.
일 구현에서, 프로세싱 로직은 오리지널 오디오가 번역된 오디오 음성 직전 또는 직후의 사운드에 연속적인 사운드를 포함하는 경우 그 번역된 오디오 음성 직전과 직후에 짧은 기간의 묵음을 부가할 수도 있다. 예를 들어, 오리지널 오디오가 트래픽 노이즈들의 연속적인 사운드들을 포함하는 경우, 그러면 종료된 후에 트래픽 노이즈들의 연속적인 사운드들이 그 후 바로 시작되는 번역된 오디오 음성을 들으면 불편할 수도 있다. 프로세싱 로직은 트래픽 노이즈들의 연속적인 사운드들과 같은 오리지널 오디오를 도입하기 전에 시청자가 번역된 오디오 음성을 이해하게 하기 위해 전과 후에 묵음의 버퍼를 부가할 수도 있다.
일 구현에서, 프로세싱 로직은 갑작스러운 전이들을 방지하기 위해 오리지널 오디오와 번역된 음성 세그먼트 사이에서 전이하기 위해 페이드 인(fade-in) 및 페이드 아웃(fade-out) 기법들을 구현할 수도 있다. 예를 들어, 프로세싱 로직은, 번역된 오디오 음성을 플레이하기 전에, 번역된 오디오 음성으로의 원활한 전이를 생성하기 위해 오리지널 오디오를 페이드 아웃할 수도 있다. 유사하게, 프로세싱 로직은, 번역된 오디오 음성을 플레이한 후에, 번역된 오디오 음성 및 오리지널 오디오로부터의 원활한 전이를 생성하기 위해 오리지널 오디오를 페이드 인할 수도 있다.
번역된 오디오 음성을 대응하는 비디오 부분 상으로 오버레이할 때, 프로세싱 로직은 판정 다이아몬드 640으로 진행한다. 판정 다이아몬드 640에서, 프로세싱 로직은 부가적인 번역된 오디오 음성들이 비디오 상으로 오버레이되어야 하는지를 결정한다. 부가적인 번역된 오디오 음성들이 비디오 상에 오버레이되어야 하는 경우, 프로세싱 로직은 블록 620으로 진행하여 다른 번역된 오디오 음성을 선택한다. 모든 번역된 오디오 음성들이 비디오 상으로 오버레이된 경우, 그러면 프로세싱 로직은 블록 615로 진행하여 제2 비디오를 생성한다.
도 6a를 참조하면, 블록 615에서 프로세싱 로직은 오리지널 비디오의 비디오 부분 및 오디오 트랙 상으로 오버레이되는 번역된 오디오 부분들을 포함하는 제2 비디오를 생성한다. 일 구현에서, 비디오 레이트들이 조정된 경우, 그러면 프로세싱 로직은 조정된 비디오 및 오버레이된 오디오 부분을 포함하는 별개의 제2 비디오를 생성할 수도 있다.
일 구현에서, 오디오 레이트들이 오버레이 프로세스 동안에만 단지 조정된 경우, 그러면 프로세싱 로직은 오버레이된 오디오 부분을 오리지널 비디오에서의 부가적인 오디오 트랙으로서 포함시킬 수도 있다. 그러나, 비디오 레이트가 비디오 속도 레이트 조정을 사용하여 조정된 경우, 그러면 프로세싱 로직은 번역된 오디오를 오리지널 비디오에 포함시키기 위해 오버레이된 부분들에 관련된 번역된 오디오 트랙과 함께, 오리지널 비디오에 부가적인 메타데이터를 부가할 수도 있다. 부가적인 메타데이터는 미디어 플레이어가 비디오 레이트를 가속 또는 감속시킬 필요가 있을 때를 특정하여, 그에 의해 별개의 제2 오디오를 생성할 필요 없이 오리지널 비디오가 번역된 오디오를 포함시키도록 하기 위해, 미디어 뷰어(111)와 같은 클라이언트 미디어 플레이어에 대한 재생 명령어들을 포함할 수도 있다.
도 7은 본 개시내용의 하나 이상의 양태들에 따라 동작하는 예시적인 컴퓨팅 시스템의 블록도를 도시한다. 다양한 예시적인 예들에서, 컴퓨터 시스템(700)은 도 1의 시스템 아키텍처(100) 내의 컴퓨팅 디바이스들 중 임의의 것에 대응할 수도 있다. 하나의 구현에서, 컴퓨터 시스템(700)은 서버들(130A 내지 130Z) 각각일 수도 있다. 다른 구현에서, 컴퓨터 시스템(700)은 클라이언트 디바이스들(130A 내지 130Z) 각각일 수도 있다.
특정 구현들에서, 컴퓨터 시스템(700)은 (예를 들어, 근거리 네트워크(LAN), 인트라넷, 익스트라넷, 또는 인터넷과 같은 네트워크를 통해) 다른 컴퓨터 시스템들에 연결될 수도 있다. 컴퓨터 시스템(700)은 클라이언트-서버 환경에서의 서버 또는 클라이언트 컴퓨터의 자격으로, 또는 피어-투-피어 또는 분산형 네트워크 환경에서의 피어 컴퓨터로서 동작할 수도 있다. 컴퓨터 시스템(700)은 퍼스널 컴퓨터(PC), 태블릿 PC, 셋톱 박스(set-top box)(STB), 개인 휴대 정보 단말기(Personal Digital Assistant)(PDA), 셀룰러 전화기, 웹 어플라이언스, 서버, 네트워크 라우터, 스위치 또는 브리지, 또는 임의의 디바이스에 의해 취해질 액션들을 특정하는 명령어들(순차적 또는 다른 것)의 세트를 실행하는 것이 가능한 그 디바이스에 의해 제공될 수도 있다. 추가로, "컴퓨터"라는 용어는 본 명세서에서 설명되는 방법들 중 임의의 하나 이상을 수행하기 위한 명령어들의 세트(또는 다수의 세트들)를 개별적으로 또는 공동으로 실행하는 컴퓨터들의 임의의 콜렉션을 포함해야 한다.
추가의 양태에서, 컴퓨터 시스템(700)은 프로세싱 디바이스(702), 휘발성 메모리(704)(예를 들어, 랜덤 액세스 메모리(RAM)), 비휘발성 메모리(706)(예를 들어, 판독 전용 메모리(ROM) 또는 전기적 소거가능 프로그래밍가능 ROM(EEPROM)), 및 데이터 저장 디바이스(716)를 포함할 수도 있는데, 이들은 버스(708)를 통해 서로 통신할 수도 있다.
프로세싱 디바이스(702)는 (예를 들어, 복합 명령어 세트 컴퓨팅(complex instruction set computing)(CISC) 마이크로프로세서, 축소 명령어 세트 컴퓨팅(reduced instruction set computing)(RISC) 마이크로프로세서, 매우 긴 명령어 워드(very long instruction word)(VLIW) 마이크로프로세서, 다른 타입들의 명령어 세트들을 구현하는 마이크로프로세서, 또는 명령어 세트들의 타입들의 조합을 구현하는 마이크로프로세서와 같은) 범용 프로세서 또는 (예를 들어, 주문형 집적 회로(application specific integrated circuit)(ASIC), 필드 프로그래밍가능 게이트 어레이(field programmable gate array)(FPGA), 디지털 신호 프로세서(digital signal processor)(DSP), 또는 네트워크 프로세서와 같은) 특수 프로세서와 같은 하나 이상의 프로세서들에 의해 제공될 수도 있다.
컴퓨터 시스템(700)은 네트워크 인터페이스 디바이스(722)를 더 포함할 수도 있다. 컴퓨터 시스템(700)은 또한 비디오 디스플레이 유닛(710)(예를 들어, LCD), 영숫자 입력 디바이스(712)(예를 들어, 키보드), 커서 제어 디바이스(714)(예를 들어, 마우스), 및 신호 생성 디바이스(720)를 포함할 수도 있다.
데이터 저장 디바이스(716)는, 본 명세서에서 설명되는 방법들을 구현하기 위해 도 1의 사용자 인터페이스(134)(134A 내지 134Z) 및/또는 클라우드 기반 콘텐츠 관리 플랫폼(125)(125A 내지 125Z)을 구현하는 명령어들을 포함하여, 본 명세서에서 설명되는 방법들 또는 기능들 중 임의의 하나 이상을 인코딩하는 명령어들(726)을 저장할 수도 있는 비일시적 컴퓨터 판독가능 저장 매체(724)를 포함할 수도 있다.
명령어들(726)은 또한, 휘발성 메모리(704) 내에서 그리고/또는 프로세싱 디바이스(702) 내에서 컴퓨터 시스템(700)에 의한 그의 실행 동안 완전히 또는 부분적으로 상주할 수도 있고, 그에 따라, 휘발성 메모리(704) 및 프로세싱 디바이스(702)는 머신 판독가능 저장 매체들을 또한 구성할 수도 있다.
컴퓨터 판독가능 저장 매체(724)는 예시적인 예들에서 단일 매체로서 도시되지만, "컴퓨터 판독가능 저장 매체"라는 용어는, 실행가능 명령어들의 하나 이상의 세트들을 저장하는 단일 매체 또는 다수의 매체들(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 및/또는 연관된 캐시들 및 서버들)을 포함해야 한다. "컴퓨터 판독가능 저장 매체"라는 용어는, 컴퓨터로 하여금 본 명세서에서 설명되는 방법들 중 임의의 하나 이상을 수행하게 하는 컴퓨터에 의한 실행을 위한 명령어들의 세트를 저장 또는 인코딩하는 것이 가능한 임의의 유형(tangible)의 매체를 또한 포함해야 한다. "컴퓨터 판독가능 저장 매체"라는 용어는 솔리드-스테이트 메모리들, 광학 매체들, 및 자기 매체들을 포함하지만, 이들로 제한되어서는 안 된다.
전술한 설명에서, 수많은 세부사항들이 제시된다. 그러나, 본 개시내용의 이익을 갖는 본 기술분야의 통상의 기술자에게는 본 개시내용이 이들 특정 세부사항들 없이 실시될 수 있다는 것이 명백할 것이다. 일부 경우들에서, 잘 알려진 구조체들 및 디바이스들은 본 개시내용을 모호하게 하는 것을 회피하기 위해 상세히보다는 오히려 블록도 형태로 도시된다.
상세한 설명의 일부 부분들은 컴퓨터 메모리 내의 데이터 비트들에 대한 동작들의 상징적 표현들 및 알고리즘들의 관점에서 제시되었다. 이들 알고리즘적 설명들 및 표현들은 데이터 프로세싱 분야들의 통상의 기술자에 의해 사용되어 이들의 작업의 본질을 본 기술분야의 다른 통상의 기술자에게 가장 효과적으로 전달하는 수단이다. 알고리즘이 여기에서는, 그리고 일반적으로는, 원하는 결과로 이어지는 단계들의 일관성 있는 시퀀스인 것으로 간주된다. 단계들은 물리적인 양들의 물리적인 조작들을 요구하는 것들이다. 반드시 그런 것은 아니지만, 통상적으로, 이들 양들은 저장, 전송, 조합, 비교, 그리고 이와 달리 조작되는 것이 가능한 전기적 또는 자기적 신호들의 형태를 취한다. 통상적인 사용의 이유로, 이들 신호들을 비트들, 값들, 요소들, 심볼들, 문자들, 항들, 숫자들, 또는 이와 유사한 것으로 지칭하는 것이 때때로 편리한 것으로 입증되었다.
그러나, 이들 그리고 유사한 용어들 모두는 적절한 물리적인 양들과 연관되어야 하고, 단지 이들 양들에 적용되는 편리한 라벨들일 뿐이라는 것을 염두에 두어야 한다. 다음의 논의로부터 명백해지는 바와 같이 구체적으로 달리 언급되지 않는 한, 설명 전반에 걸쳐, "수신하는 것", "디스플레이하는 것", "움직이는 것", "조정하는 것", "대체하는 것", "결정하는 것", "플레이하는 것", 또는 이와 유사한 것과 같은 용어들을 이용하는 논의들은, 컴퓨터 시스템의 레지스터들 및 메모리들 내의 물리적인(예를 들어, 전자) 양들로서 표현되는 데이터를, 컴퓨터 시스템 메모리들 또는 레지스터들 또는 다른 그러한 정보 저장, 송신 또는 디스플레이 디바이스들 내의 물리적인 양들로서 유사하게 표현되는 다른 데이터로 조작 및 변환하는 컴퓨팅 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 액션들 및 프로세스들을 지칭한다는 것을 인지한다.
설명의 단순화를 위해, 방법들은 일련의 액트들로서 본 명세서에 도시 및 설명된다. 그러나, 본 개시내용에 따른 액트들은 다양한 순서들로 그리고/또는 동시에, 그리고 본 명세서에 제시 및 설명되지 않은 다른 액트들과 함께 발생할 수 있다. 게다가, 개시된 청구 대상에 따라 방법들을 구현하기 위해 모든 예시된 액트들이 요구되는 것은 아닐 수 있다. 부가적으로, 본 기술분야의 통상의 기술자는 방법들이 상태도 또는 이벤트들을 통해 일련의 상호관련된 상태들로서 대안적으로 표현될 수 있다는 것을 이해하고 인지할 것이다. 부가적으로, 본 명세서에 개시된 방법들은 그러한 방법들을 컴퓨팅 디바이스들로 이송 및 전송하는 것을 용이하게 하기 위해 제조 물품 상에 저장되는 것이 가능하다는 것이 인지되어야 한다. 본 명세서에서 사용되는 바와 같이, 제조 물품이라는 용어는 임의의 컴퓨터 판독가능 디바이스 또는 저장 미디어로부터 액세스가능한 컴퓨터 프로그램을 포괄하도록 의도된다.
본 개시내용의 특정 구현들은 또한 본 명세서의 동작들을 수행하기 위한 장치에 관한 것이다. 이 장치는 의도된 목적들을 위해 구성될 수 있거나, 또는 그것은 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화 또는 재구성되는 범용 컴퓨터를 포함할 수 있다. 그러한 컴퓨터 프로그램은, 플로피 디스크들, 광학 디스크들, CD-ROM들, 및 자기-광학 디스크들을 포함하는 임의 타입의 디스크, 판독 전용 메모리(ROM)들, 랜덤 액세스 메모리(RAM)들, EPROM들, EEPROM들, 자기 또는 광학 카드들, 또는 전자 명령어들을 저장하기에 적합한 임의의 타입의 매체들과 같은(그러나 이에 제한되지 않음) 컴퓨터 판독가능 저장 매체에 저장될 수 있다.
본 명세서 전반에 걸친 "하나의 구현(one implementation)" 또는 "일 구현(an implementation)"에 대한 언급은 구현과 관련하여 설명된 특정 피처(feature), 구조체, 또는 특성이 적어도 하나의 구현에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸친 다양한 위치들에서의 "하나의 구현에서(in one implementation)" 또는 "일 구현에서(in an implementation)"라는 어구의 출현들은 반드시 모두가 동일한 구현을 지칭하는 것은 아니다. 부가적으로, "또는(or)"이라는 용어는 배타적 "또는"보다는 오히려 포괄적 "또는"을 의미하도록 의도된다. 더욱이, "예(example)" 또는 "예시적(exemplary)"이라는 단어들은 본 명세서에서 예, 경우, 또는 예시로서 기능하는 것을 의미하기 위해 사용된다. 본 명세서에서 "예시적"인 것으로서 설명되는 임의의 양태 또는 설계는 반드시 다른 양태들 또는 설계들보다 선호되거나 유리한 것으로 해석될 필요는 없다. 오히려, "예" 또는 "예시적"이라는 단어들의 사용은 구체적인 방식으로 개념들을 제시하도록 의도된다.
상기 설명은 제한적인 것이 아니라 예시적인 것으로 의도된다는 것이 이해되어야 한다. 많은 다른 구현들이 상기 설명의 판독 및 이해 시에 본 기술분야의 통상의 기술자에게 명백할 것이다. 그에 따라, 본 개시내용의 범주는, 첨부된 청구범위가 부여받는 등가물들의 전체 범주와 함께, 그러한 청구범위를 참조하여 결정되어야 한다.
상기의 설명들에 추가로, 사용자에게는 혹시라도 본 명세서에서 설명되는 시스템들, 프로그램들 또는 피처들이 사용자 정보(예를 들어, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 직업, 사용자의 선호도들, 또는 사용자의 현재 위치에 관한 정보)의 수집을 가능하게 할 수도 있다면, 그리고 사용자가 서버로부터 콘텐츠 또는 통신들을 전송받은 경우 양측 모두에 대해 사용자가 선택을 행하게 하는 컨트롤(control)들이 제공될 수도 있다. 부가적으로, 개인적으로 식별가능한 정보가 제거되도록, 특정 데이터가 저장 또는 사용되기 전에 그 특정 데이터가 하나 이상의 방식들로 처리될 수도 있다. 예를 들어, 사용자에 대해 어떠한 개인적으로 식별가능한 정보도 결정될 수 없도록 사용자의 아이덴티티가 처리될 수도 있거나, 또는 사용자의 특정 위치가 결정될 수 없도록 (예컨대, 도시, 우편 번호, 또는 주 레벨(state level)로) 위치 정보가 획득된 경우 사용자의 지리적 위치가 일반화될 수도 있다. 따라서, 사용자는 어떤 정보가 사용자에 관해 수집되는지, 그 정보가 어떻게 사용되는지, 그리고 어떤 정보가 사용자에게 제공되는지를 제어할 수도 있다.

Claims (14)

  1. 방법으로서,
    프로세싱 디바이스에 의해, 오리지널 언어로 레코딩된 음성을 포함하는 오디오를 갖는 비디오에 대한 오리지널 캡션 데이터를 식별하는 단계 - 상기 오리지널 캡션 데이터는 상기 비디오의 오디오 부분과 연관되고 상기 오리지널 언어로 된 복수의 캡션 문자열(caption character string)들을 포함함 -;
    상기 프로세싱 디바이스에 의해, 상기 비디오에 대한 번역된 언어 캡션 데이터를 식별하는 단계 - 상기 번역된 언어 캡션 데이터는 상기 비디오의 오디오 부분과 연관된 복수의 번역된 문자열들을 포함함 -;
    상기 프로세싱 디바이스에 의해, 상기 복수의 캡션 문자열들로부터 캡션 문장 프래그먼트(caption sentence fragment)들의 세트 및 상기 복수의 번역된 문자열들로부터 번역된 문장 프래그먼트들의 세트를 생성하는 단계;
    상기 프로세싱 디바이스에 의해, 상기 오리지널 캡션 데이터 및 상기 번역된 언어 캡션 데이터와 연관된 타이밍에 기초하여 상기 캡션 문장 프래그먼트들의 세트 중 캡션 문장 프래그먼트들을 상기 번역된 문장 프래그먼트들의 세트 중 대응하는 번역된 문장 프래그먼트들에 매핑시키는 단계;
    상기 프로세싱 디바이스에 의해, 개별 캡션 문자열들에 대응하는 타이밍 정보를 사용하여 상기 캡션 문장 프래그먼트들의 세트 중 개별 캡션 문장 프래그먼트들에 대한 시간 간격들을 추정하는 단계;
    상기 프로세싱 디바이스에 의해, 상기 개별 캡션 문장 프래그먼트들의 추정된 시간 간격들에 기초하여 상기 번역된 문장 프래그먼트들의 세트 중 개별 번역된 문장 프래그먼트들에 시간 간격들을 할당하는 단계;
    상기 프로세싱 디바이스에 의해, 상기 번역된 문장 프래그먼트들의 세트 중 연속적인 번역된 문장 프래그먼트들을 사용하여 번역된 문장들의 세트를 생성하는 단계; 및
    상기 프로세싱 디바이스에 의해, 대응하는 번역된 문장들로부터의 개별 번역된 문장 프래그먼트들의 할당된 시간 간격들을 사용하여 상기 번역된 문장들의 세트를 상기 비디오의 오디오 부분과 정렬시키는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 복수의 캡션 문자열들로부터 생성된 상기 캡션 문장 프래그먼트들의 세트는 상기 복수의 캡션 문자열들에서의 구두점을 사용하여 생성되는, 방법.
  3. 제1항에 있어서,
    상기 비디오의 오디오 부분에 대해 생성되는 음성 인식 데이터를 식별하는 단계 - 상기 음성 인식 데이터는 복수의 생성된 문자열들 및 생성된 문자열 각각에 대한 연관된 타이밍 정보를 포함함 -;
    를 더 포함하는 방법.
  4. 제3항에 있어서,
    상기 복수의 캡션 문자열들을 상기 복수의 생성된 문자열들에 매핑함으로써 상기 오리지널 캡션 데이터와 연관된 타이밍을 결정하고, 매핑된 개별 생성된 문자열들의 타이밍 정보에 기초하여 타이밍 정보를 상기 오리지널 캡션 데이터의 개별 캡션 문자열들에 할당하는 단계
    를 더 포함하고,
    상기 오리지널 캡션 데이터와 연관된 타이밍은 상기 오리지널 캡션 데이터의 상기 개별 캡션 문자열들에 할당된 상기 타이밍 정보에 대응하는, 방법.
  5. 제4항에 있어서,
    상기 복수의 생성된 문자열들에 대한 상기 복수의 캡션 문자열들은 상기 개별 캡션 문자열들과 상기 복수의 생성된 문자열들 중 개별 생성된 문자열들 사이의 의미론적 유사성들(semantic similarities)을 표시하는 할당된 값들을 사용하여 매핑되는, 방법.
  6. 제4항에 있어서,
    상기 복수의 캡션 문자열들을 상기 복수의 생성된 문자열들에 매핑시키는 단계에 앞서, 비-발화된 문자열(non-spoken character string)들을 제거함으로써 상기 복수의 캡션 문자열들 및 상기 복수의 생성된 문자열들을 정규화하는 단계
    를 더 포함하는, 방법.
  7. 제5항에 있어서,
    상기 복수의 캡션 문자열들 중 상기 개별 캡션 문자열들과 상기 복수의 생성된 문자열들 중 상기 개별 생성된 문자열들 사이의 의미론적 유사성들을 표시하는 상기 할당된 값들을 사용하여 상기 복수의 캡션 문자열들을 상기 복수의 생성된 문자열들에 매핑시키는 단계는:
    상기 복수의 캡션 문자열들 중 상기 개별 캡션 문자열들의 각각의 고유 문자열 및 상기 복수의 생성된 문자열들 중 상기 개별 생성된 문자열들의 각각의 고유 문자열에 정수 식별자 값을 할당하는 단계
    를 포함하고;
    제1 문자열과 연관된 제1 정수 식별자 값과 제2 문자열과 연관된 제2 정수 식별자 값 사이의 거리는 상기 제1 문자열과 상기 제2 문자열 사이의 문자 차이들을 표현하는, 방법.
  8. 제5항에 있어서,
    상기 할당된 값들을 사용하여 상기 복수의 캡션 문자열들을 상기 복수의 생성된 문자열들에 매핑시키는 단계는:
    상기 복수의 캡션 문자열들 중 각각의 개별 캡션 문자열 및 상기 복수의 생성된 문자열들 중 각각의 개별 생성된 문자열의 상기 할당된 값들을 사용하여 상기 복수의 캡션 문자열들에서의 캡션 문자열들의 시퀀스들과 상기 복수의 생성된 문자열들에서의 생성된 문자열들의 시퀀스들의 매칭 쌍들을 결정하는 단계; 및
    상기 캡션 문자열들의 시퀀스들과 상기 생성된 문자열들의 시퀀스들의 매칭 쌍들에 기초하여 상기 복수의 캡션 문자열들 중 개별 캡션 문자열들을 상기 복수의 생성된 문자열들 중 개별 생성된 문자열들에 매핑시키는 단계
    를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 번역된 문장 프래그먼트들의 세트 중 연속적인 번역된 문장 프래그먼트들을 사용하여 상기 번역된 문장들의 세트를 생성하는 단계는:
    구두점에 기초하여 상기 캡션 문장 프래그먼트들의 세트 중 연속적인 캡션 문장 프래그먼트들을 사용하여 캡션 문장들의 세트를 생성하는 단계; 및
    머신 번역을 사용하여 상기 캡션 문장들의 세트에 기초하여 상기 번역된 문장들의 세트를 생성하는 단계
    를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 비디오에 대한 음성 세그먼트 데이터를 식별하는 단계 - 상기 음성 세그먼트 데이터는 상기 비디오의 오디오 부분과 연관된 음성 타이밍 정보를 갖는 복수의 음성 세그먼트들을 포함함 -; 및
    상기 복수의 음성 세그먼트들과 연관된 음성 타이밍 정보에 기초하여 상기 캡션 문장 프래그먼트들의 세트 중 상기 개별 캡션 문장 프래그먼트들에 대한 상기 시간 간격들을 업데이트하는 단계
    를 더 포함하는, 방법.
  11. 제1항에 있어서,
    상기 오리지널 캡션 데이터의 번역을 위해 머신 생성된 음성인 번역된 오디오 음성을 획득하는 단계 - 상기 번역된 오디오 음성은 번역된 오디오 음성 세그먼트들의 세트를 포함함 -;
    상기 번역된 오디오 음성 세그먼트들의 세트 중 번역된 오디오 음성 세그먼트들을, 상기 번역된 오디오 음성 세그먼트들 각각에 대한 시간 간격들에 대응하는 상기 비디오의 비디오 세그먼트들 상으로 오버레이하는 단계; 및
    상기 오버레이된 번역된 오디오 음성 세그먼트들을 포함하는 번역된 오디오 부분 및 상기 비디오의 비디오 부분을 포함하는 제2 비디오를 생성하는 단계
    를 더 포함하는, 방법.
  12. 제11항에 있어서,
    상기 번역된 오디오 음성 세그먼트들의 세트 중 번역된 오디오 음성 세그먼트들을 상기 비디오의 비디오 세그먼트들 상으로 오버레이하는 단계는:
    상기 번역된 오디오 음성 세그먼트들의 세트 중 각각의 번역된 오디오 음성 세그먼트에 대해:
    상기 번역된 오디오 음성 세그먼트의 타이밍 정보가 대응하는 비디오 세그먼트의 타이밍 정보와 매칭하는지 여부를 결정하는 단계;
    상기 번역된 오디오 음성 세그먼트의 타이밍 정보가 상기 대응하는 비디오 세그먼트의 타이밍 정보와 매칭하지 않는다는 결정 시에, 상기 번역된 오디오 음성 세그먼트의 타이밍 정보를 상기 대응하는 비디오 세그먼트의 타이밍 정보와 매칭시키도록 상기 번역된 오디오 음성 세그먼트의 재생 속도 레이트를 조정하는 단계; 및
    상기 번역된 오디오 음성 세그먼트를 상기 대응하는 비디오 세그먼트 상으로 오버레이하는 단계
    를 포함하는, 방법.
  13. 제11항에 있어서,
    상기 번역된 오디오 음성 세그먼트들의 세트 중 번역된 오디오 음성 세그먼트들을 상기 비디오의 비디오 세그먼트들 상으로 오버레이하는 단계는:
    상기 번역된 오디오 음성 세그먼트들의 세트 중 각각의 번역된 오디오 음성 세그먼트에 대해:
    상기 번역된 오디오 음성 세그먼트의 타이밍 정보가 대응하는 비디오 세그먼트의 타이밍 정보와 매칭하는지 여부를 결정하는 단계;
    상기 번역된 오디오 음성 세그먼트의 타이밍 정보가 상기 대응하는 비디오 세그먼트의 타이밍 정보와 매칭하지 않는다는 결정 시에, 상기 대응하는 비디오 세그먼트의 타이밍 정보를 상기 번역된 오디오 음성 세그먼트의 타이밍 정보와 매칭시키도록 상기 대응하는 비디오 세그먼트의 재생 속도 레이트를 조정하는 단계; 및
    상기 번역된 오디오 음성 세그먼트를 상기 대응하는 비디오 세그먼트 상으로 오버레이하는 단계
    를 포함하는, 방법.
  14. 시스템으로서,
    메모리; 및
    상기 메모리와 동작가능하게 커플링되어 제1항 내지 제13항 중 어느 한 항에 따른 방법을 수행하는 프로세싱 디바이스
    를 포함하는 시스템.
KR1020227045220A 2018-02-26 2018-02-26 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙 KR102598824B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2018/019779 WO2019164535A1 (en) 2018-02-26 2018-02-26 Automated voice translation dubbing for prerecorded videos
KR1020207027403A KR102481871B1 (ko) 2018-02-26 2018-02-26 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207027403A Division KR102481871B1 (ko) 2018-02-26 2018-02-26 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙

Publications (2)

Publication Number Publication Date
KR20230005430A KR20230005430A (ko) 2023-01-09
KR102598824B1 true KR102598824B1 (ko) 2023-11-06

Family

ID=61622713

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207027403A KR102481871B1 (ko) 2018-02-26 2018-02-26 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙
KR1020227045220A KR102598824B1 (ko) 2018-02-26 2018-02-26 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207027403A KR102481871B1 (ko) 2018-02-26 2018-02-26 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙

Country Status (5)

Country Link
US (2) US11582527B2 (ko)
EP (1) EP3759935A1 (ko)
KR (2) KR102481871B1 (ko)
CN (2) CN117201889A (ko)
WO (1) WO2019164535A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108401192B (zh) * 2018-04-25 2022-02-22 腾讯科技(深圳)有限公司 视频流处理方法、装置、计算机设备及存储介质
KR102669100B1 (ko) * 2018-11-02 2024-05-27 삼성전자주식회사 전자 장치 및 그 제어 방법
EP3935635A4 (en) * 2019-03-06 2023-01-11 Syncwords LLC SYSTEM AND METHOD FOR SIMULTANEOUS MULTILINGUAL DUBBING OF AUDIO-VIDEO PROGRAMS
JP7208531B2 (ja) * 2019-05-31 2023-01-19 日本電信電話株式会社 同期制御装置、同期制御方法及び同期制御プログラム
CN111741231B (zh) * 2020-07-23 2022-02-22 北京字节跳动网络技术有限公司 一种视频配音方法、装置、设备及存储介质
CN112562719B (zh) * 2020-11-30 2024-03-19 清华珠三角研究院 合成语音与原始视频匹配方法、系统、装置及存储介质
US11729476B2 (en) * 2021-02-08 2023-08-15 Sony Group Corporation Reproduction control of scene description
CN112954434B (zh) * 2021-02-26 2023-07-04 北京奇艺世纪科技有限公司 字幕处理方法、系统、电子设备和存储介质
KR102440890B1 (ko) * 2021-03-05 2022-09-06 주식회사 한글과컴퓨터 제1 언어의 음성으로 더빙된 동영상을 제2 언어의 음성으로 자동 더빙하는 동영상 자동 더빙 장치 및 그 동작 방법
CN113207044A (zh) * 2021-04-29 2021-08-03 北京有竹居网络技术有限公司 视频处理方法、装置、电子设备和存储介质
US20230026467A1 (en) * 2021-07-21 2023-01-26 Salah M. Werfelli Systems and methods for automated audio transcription, translation, and transfer for online meeting
CN113569700A (zh) * 2021-07-23 2021-10-29 杭州菲助科技有限公司 一种通过外语视频生成配音素材的方法和系统
CN113490058A (zh) * 2021-08-20 2021-10-08 云知声(上海)智能科技有限公司 一种应用于影视后期的智能字幕匹配系统
TWI783718B (zh) * 2021-10-07 2022-11-11 瑞昱半導體股份有限公司 可應用於在顯示裝置中進行實時視頻內容文字檢測和語音自動生成之顯示控制積體電路
CN114501159B (zh) * 2022-01-24 2023-12-22 传神联合(北京)信息技术有限公司 一种字幕编辑方法、装置、电子设备及存储介质
KR102546559B1 (ko) * 2022-03-14 2023-06-26 주식회사 엘젠 영상 콘텐츠 자동 번역 더빙 시스템
CN117201876A (zh) * 2022-05-31 2023-12-08 北京字跳网络技术有限公司 字幕生成方法、装置、电子设备、存储介质及程序
CN115942043A (zh) * 2023-03-03 2023-04-07 南京爱照飞打影像科技有限公司 一种基于ai语音识别的视频碎剪方法与设备
CN116471436B (zh) * 2023-04-12 2024-05-31 央视国际网络有限公司 信息的处理方法及装置、存储介质、电子设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038804B (zh) 2013-03-05 2017-09-29 三星电子(中国)研发中心 基于语音识别的字幕同步装置和方法

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7047191B2 (en) * 2000-03-06 2006-05-16 Rochester Institute Of Technology Method and system for providing automated captioning for AV signals
US6505153B1 (en) * 2000-05-22 2003-01-07 Compaq Information Technologies Group, L.P. Efficient method for producing off-line closed captions
US7013273B2 (en) * 2001-03-29 2006-03-14 Matsushita Electric Industrial Co., Ltd. Speech recognition based captioning system
JP2007213176A (ja) * 2006-02-08 2007-08-23 Sony Corp 情報処理装置および方法、並びにプログラム
JP2008065653A (ja) 2006-09-08 2008-03-21 Matsushita Electric Ind Co Ltd 映像翻訳装置
JP4271224B2 (ja) 2006-09-27 2009-06-03 株式会社東芝 音声翻訳装置、音声翻訳方法、音声翻訳プログラムおよびシステム
US8843368B2 (en) * 2009-08-17 2014-09-23 At&T Intellectual Property I, L.P. Systems, computer-implemented methods, and tangible computer-readable storage media for transcription alignment
WO2012177160A1 (en) * 2011-06-22 2012-12-27 General Instrument Corporation Method and apparatus for processing and displaying multiple captions superimposed on video images
WO2013043984A1 (en) * 2011-09-23 2013-03-28 Documentation Services Group, Inc. Systems and methods for extracting and processing intelligent structured data from media files
CN103150329A (zh) 2013-01-06 2013-06-12 清华大学 双语文本的词语对齐方法及装置
JP6150405B2 (ja) * 2013-01-15 2017-06-21 ヴィキ, インク.Viki, Inc. メディアにキャプションを付けるシステム及び方法
US9804729B2 (en) * 2013-03-15 2017-10-31 International Business Machines Corporation Presenting key differences between related content from different mediums
KR102061044B1 (ko) * 2013-04-30 2020-01-02 삼성전자 주식회사 수화 번역 및 화면 해설 서비스 방법 및 시스템
KR20150021258A (ko) * 2013-08-20 2015-03-02 삼성전자주식회사 디스플레이장치 및 그 제어방법
CN103646645B (zh) 2013-12-13 2016-03-02 南京丰泰通信技术股份有限公司 一种基于语音转译电文输出的方法
US9635219B2 (en) * 2014-02-19 2017-04-25 Nexidia Inc. Supplementary media validation system
US9462230B1 (en) * 2014-03-31 2016-10-04 Amazon Technologies Catch-up video buffering
US9614969B2 (en) * 2014-05-27 2017-04-04 Microsoft Technology Licensing, Llc In-call translation
CN105338394B (zh) * 2014-06-19 2018-11-30 阿里巴巴集团控股有限公司 字幕数据的处理方法及系统
CN104252861B (zh) 2014-09-11 2018-04-13 百度在线网络技术(北京)有限公司 视频语音转换方法、装置和服务器
JP2016057986A (ja) * 2014-09-11 2016-04-21 株式会社東芝 音声翻訳装置、方法およびプログラム
FR3025926B1 (fr) * 2014-09-17 2018-11-02 France Brevets Procede de controle de la vitesse d'affichage des sous-titres
CN104244081B (zh) 2014-09-26 2018-10-16 可牛网络技术(北京)有限公司 视频的提供方法及装置
WO2017152935A1 (en) * 2016-03-07 2017-09-14 Arcelik Anonim Sirketi Image display device with synchronous audio and subtitle content generation function
US10037313B2 (en) * 2016-03-24 2018-07-31 Google Llc Automatic smoothed captioning of non-speech sounds from audio
CN105848005A (zh) * 2016-03-28 2016-08-10 乐视控股(北京)有限公司 一种视频字幕的显示方法和装置
CN106340291A (zh) * 2016-09-27 2017-01-18 广东小天才科技有限公司 一种双语字幕制作方法及系统
CN106791913A (zh) * 2016-12-30 2017-05-31 深圳市九洲电器有限公司 数字电视节目同声翻译输出方法及系统
US10652592B2 (en) * 2017-07-02 2020-05-12 Comigo Ltd. Named entity disambiguation for providing TV content enrichment
US10425696B2 (en) * 2017-07-11 2019-09-24 Sony Corporation User placement of closed captioning
CN108040277B (zh) * 2017-12-04 2020-08-25 海信视像科技股份有限公司 针对解码后得到的多语种字幕的字幕切换方法及装置
US11245950B1 (en) * 2019-04-24 2022-02-08 Amazon Technologies, Inc. Lyrics synchronization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104038804B (zh) 2013-03-05 2017-09-29 三星电子(中国)研发中心 基于语音识别的字幕同步装置和方法

Also Published As

Publication number Publication date
KR20230005430A (ko) 2023-01-09
KR102481871B1 (ko) 2022-12-28
US20230199264A1 (en) 2023-06-22
CN117201889A (zh) 2023-12-08
US11582527B2 (en) 2023-02-14
CN111758264A (zh) 2020-10-09
US20200404386A1 (en) 2020-12-24
EP3759935A1 (en) 2021-01-06
WO2019164535A1 (en) 2019-08-29
KR20200118894A (ko) 2020-10-16

Similar Documents

Publication Publication Date Title
KR102598824B1 (ko) 미리 레코딩된 비디오들에 대한 자동화된 보이스 번역 더빙
CN108780643B (zh) 自动配音方法和装置
EP2831762B1 (en) Transcription of speech
US8848109B2 (en) System and method for captioning media
WO2016037440A1 (zh) 视频语音转换方法、装置和服务器
US20180226101A1 (en) Methods and systems for interactive multimedia creation
US11770590B1 (en) Providing subtitle for video content in spoken language
KR20190108027A (ko) 영상과 어울리는 음악을 생성하는 방법, 시스템 및 비일시성의 컴퓨터 판독 가능 기록 매체
US20230107968A1 (en) Systems and methods for replaying a content item
Rakib et al. Ood-speech: A large bengali speech recognition dataset for out-of-distribution benchmarking
EP4352727A1 (en) Systems and methods for assisted translation and lip matching for voice dubbing
US11922931B2 (en) Systems and methods for phonetic-based natural language understanding
US20240134597A1 (en) Transcript question search for text-based video editing
EP4345814A1 (en) Video-generation system
US20240135973A1 (en) Video segment selection and editing using transcript interactions
US20240127858A1 (en) Annotated transcript text and transcript thumbnail bars for text-based video editing
US20240134909A1 (en) Visual and text search interface for text-based video editing
US20240127857A1 (en) Face-aware speaker diarization for transcripts and text-based video editing
US20240127820A1 (en) Music-aware speaker diarization for transcripts and text-based video editing
Kuznetsova et al. Multimodal and Multilingual Laughter Detection in Stand-Up Comedy Videos
Karakanta et al. Towards Automatic Subtitling: Assessing the Quality of Old and New Resources
WO2024123995A1 (en) Systems and methods for advanced video translation management systems
WO2023218268A1 (en) Generation of closed captions based on various visual and non-visual elements in content

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant