IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本放送協会の特許一覧 ▶ 一般財団法人NHKエンジニアリングシステムの特許一覧

特開2023-114359字幕表示装置、及び字幕表示プログラム
<>
  • 特開-字幕表示装置、及び字幕表示プログラム 図1
  • 特開-字幕表示装置、及び字幕表示プログラム 図2A
  • 特開-字幕表示装置、及び字幕表示プログラム 図2B
  • 特開-字幕表示装置、及び字幕表示プログラム 図3
  • 特開-字幕表示装置、及び字幕表示プログラム 図4
  • 特開-字幕表示装置、及び字幕表示プログラム 図5
  • 特開-字幕表示装置、及び字幕表示プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023114359
(43)【公開日】2023-08-17
(54)【発明の名称】字幕表示装置、及び字幕表示プログラム
(51)【国際特許分類】
   G10L 15/28 20130101AFI20230809BHJP
   G10L 15/00 20130101ALI20230809BHJP
【FI】
G10L15/28 500
G10L15/00 200G
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022016683
(22)【出願日】2022-02-04
(71)【出願人】
【識別番号】000004352
【氏名又は名称】日本放送協会
(71)【出願人】
【識別番号】591053926
【氏名又は名称】一般財団法人NHKエンジニアリングシステム
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100120891
【弁理士】
【氏名又は名称】林 一好
(72)【発明者】
【氏名】藤森 真綱
(72)【発明者】
【氏名】佐藤 庄衛
(72)【発明者】
【氏名】小森 智康
(72)【発明者】
【氏名】望月 貴裕
(72)【発明者】
【氏名】河合 吉彦
(72)【発明者】
【氏名】三島 剛
(72)【発明者】
【氏名】遠藤 伶
(72)【発明者】
【氏名】佐藤 裕明
(72)【発明者】
【氏名】佐々木 桃子
(57)【要約】
【課題】画面に表示する字幕の一部の音声認識が確定している段階で字幕を表示し、新たに認識結果が確定するたびに字幕を更新することにより、発話から字幕を表示するまでの小さくすることができる字幕表示装置、及び字幕表示プログラムを提供すること。
【解決手段】字幕表示装置は、入力された音声に対して音声認識処理を行う音声認識部と、前記音声認識部により音声認識された認識結果が確定するたびに前記認識結果を保存するストックと、タイマーと、前記ストックの先頭に認識結果が保存されたタイミングで前記タイマーを起動し、前記タイマーに基づいて所定の時間毎に記憶される前記認識結果に基づいて字幕データを生成し出力する字幕生成部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
入力された音声に対して音声認識処理を行う音声認識部と、
前記音声認識部により音声認識された認識結果が確定するたびに前記認識結果を保存するストックと、
タイマーと、
前記ストックの先頭に認識結果が保存されたタイミングで前記タイマーを起動し、前記タイマーに基づいて所定の時間毎に記憶される前記認識結果に基づいて字幕データを生成し出力する字幕生成部と、
を備える字幕表示装置。
【請求項2】
前記音声認識部の認識結果に基づいて前記字幕生成部により生成され出力される前記字幕データの表示時間を算出する表示時間算出部を備える、請求項1に記載の字幕表示装置。
【請求項3】
前記字幕生成部は、前記音声認識部により無音区間と音声認識された場合、前記タイマーの値にかかわらず前記ストックに保存される前記認識結果に基づいて字幕データを生成して出力し、保存されている全ての認識結果を前記ストックから削除して前記タイマーをリセットする、請求項1又は請求項2に記載の字幕表示装置。
【請求項4】
前記字幕生成部は、前記ストックに保存された前記認識結果のデータ量が1画面に表示可能なデータ量を超えた場合、前記タイマーの値にかかわらず前記ストックに保存される前記認識結果のうち前記1画面に表示可能な文字数の字幕データを生成して出力し、出力した前記字幕データに使用した認識結果を前記ストックから削除して前記タイマーをリセットする、請求項1又は請求項2に記載の字幕表示装置。
【請求項5】
コンピュータを字幕表示装置として動作させる字幕表示プログラムであって、
入力された音声に対して音声認識処理を行う音声認識手段と、
音声認識された認識結果が確定するたびに前記認識結果を保存するストック手段と、
先頭に認識結果が保存されたタイミングで前記字幕表示装置に含まれるタイマーを起動し、前記タイマーに基づいて所定の時間毎に記憶されている前記認識結果に基づいて字幕データを生成し出力する字幕生成手段と、
を備える字幕表示プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、字幕のデータ量を増加させることなく、発話から字幕が表示されるまでの遅延が小さい字幕表示装置、及び字幕表示プログラムに関する。
【背景技術】
【0002】
従来から、音声認識技術を用いてテレビや映画等の字幕を作成する技術が開発されている。
例えば、特許文献1には、入力される音声を逐次認識してテキスト化した認識結果を作成し、音声の発話時間に基づいて認識結果に含まれる文章毎に表示時間を決定する技術が提案されている。
また、非特許文献1には、音声入力中に逐次的に2パス目の処理を行うことで、認識結果早期確定のための逐次2パスデコーダの技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2012-181358号公報
【非特許文献】
【0004】
【非特許文献1】今井亨、小林彰夫、安藤彰男、“認識結果早期確定のための逐次2パスデコーダ”、1999年秋季日本音響学会研究発表会講演論文集、no. 1, 2-1-4, 1999, p. 61-62
【発明の概要】
【発明が解決しようとする課題】
【0005】
生放送のテレビ番組に字幕を付ける際に、音声認識の結果を修正せずに放送用のクローズドキャプションとして送出することを考える。生放送のテレビ番組に字幕をつけるための専門性の高いオペレーターの人数は限られており、字幕サービスの拡充のために、人手をかけずに字幕をつける技術が必要とされていた。また、生放送のテレビ番組の字幕は、さまざまな理由で字幕の確定に時間を要した。結果として発話よりも、数秒以上の大きな遅延で表示されることが一般的であり、番組内で話題が切り替わる部分では、不自然な字幕が出てしまうこともあった。
特許文献1の音声認識を利用した字幕表示方法は、音声認識が単語列として出力されることを前提としていた。また、現在の字幕放送と同様に、画面に表示する字幕(例えば15文字×2行の30文字分)をすべて取得してから字幕を表示する場合には、発話から字幕を表示するまでの遅延が大きいという課題があった。
一方、非特許文献1にあるような、単語毎に音声認識結果を出力する音声認識モデルを用いて、音声認識結果が確定するたびに字幕を表示することで遅延を小さくすることができた。しかし、クローズドキャプションとして送出する場合、字幕を更新するたびに表示する字幕情報を送りなおさなければならないため、データ量が増加するという課題があった。
【0006】
本発明は、画面に表示する字幕の一部の音声認識が確定している段階で字幕を表示し、新たに認識結果が確定するたびに字幕を更新することにより、発話から字幕を表示するまでの遅延を小さくすることができる字幕表示装置、及び字幕表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
(1)本発明の字幕表示装置は、入力された音声に対して音声認識処理を行う音声認識部と、前記音声認識部により音声認識された認識結果が確定するたびに前記認識結果を保存するストックと、タイマーと、前記ストックの先頭に認識結果が保存されたタイミングで前記タイマーを起動し、前記タイマーに基づいて所定の時間毎に記憶される前記認識結果に基づいて字幕データを生成し出力する字幕生成部と、を備える。
【0008】
上記(1)によれば、画面に表示する字幕の一部の音声認識が確定している段階で字幕を表示し、新たに認識結果が確定するたびに字幕を更新することにより、発話から字幕を表示するまでの遅延を小さくすることができる。
【0009】
(2) (1)に記載の字幕表示装置によれば、前記音声認識部の認識結果に基づいて前記字幕生成部により生成され出力される前記字幕データの表示時間を算出する表示時間算出部を備える。
【0010】
上記(2)によれば、発話者の発話速度に応じた字幕を表示することができ、表示装置のユーザにとっても見やすい字幕を表示させることができる。
【0011】
(3) (1)又は(2)に記載の字幕表示装置において、前記字幕生成部は、前記音声認識部により無音区間と音声認識された場合、前記タイマーの値にかかわらず前記ストックに保存される前記認識結果に基づいて字幕データを生成して出力し、保存されている全ての認識結果を前記ストックから削除して前記タイマーをリセットする。
【0012】
上記(3)によれば、発話の終了に合わせて、当該発話の字幕を表示させることができる。
【0013】
(4) (1)又は(2)に記載の字幕表示装置において、前記字幕生成部は、前記ストックに保存された前記認識結果のデータ量が1画面に表示可能なデータ量を超えた場合、前記タイマーの値にかかわらず前記ストックに保存される前記認識結果のうち前記1画面に表示可能な文字数の字幕データを生成して出力し、出力した前記字幕データに使用した認識結果を前記ストックから削除して前記タイマーをリセットする。
【0014】
上記(4)によれば、1つの画面に表示可能な文字数となった場合に字幕を表示することで、データ量とともに遅延を小さく抑えることができる。
【0015】
(5)本発明の字幕表示プログラムは、コンピュータを字幕表示装置として動作させる字幕表示プログラムであって、入力された音声に対して音声認識処理を行う音声認識手段と、音声認識された認識結果が確定するたびに前記認識結果を保存するストック手段と、先頭に認識結果が保存されたタイミングで前記字幕表示装置に含まれるタイマーを起動し、前記タイマーに基づいて所定の時間毎に記憶されている前記認識結果に基づいて字幕データを生成し出力する字幕生成手段と、を備える。
【0016】
上記(5)によれば、(1)と同様の効果を奏することができる。
【発明の効果】
【0017】
本発明によれば、画面に表示する字幕の一部の音声認識が確定している段階で字幕を表示し、新たに認識結果が確定するたびに字幕を更新することにより、発話から字幕を表示するまでの遅延を小さくすることができる。
【図面の簡単な説明】
【0018】
図1】一実施形態に係る字幕出力システムの構成の一例を示す図である。
図2A】認識結果の一例を示す図である。
図2B】認識結果の一例を示す図である。
図3】逐次表示される字幕データの時系列変化の一例を示す図である。
図4】字幕出力装置の字幕出力処理について説明するフローチャートである。
図5図4においてステップS3で示した発話区間の字幕出力処理の詳細な処理内容を説明するフローチャートである。
図6図4においてステップS4で示した無音区間の字幕出力処理の詳細な処理内容を説明するフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の一実施形態について図面を用いて説明する。
<一実施形態>
図1は、一実施形態に係る字幕出力システムの構成の一例を示す図である。ここでは、テレビ番組の映像に字幕を表示する場合を例示する。なお、本発明は、テレビ番組に限定されず、映画やネット配信動画等に対しても適用可能である。
図1に示すように、字幕出力システム1は、字幕表示装置としての字幕出力装置10、音声入力装置20、及び映像生成装置30を有する。
字幕出力装置10と、音声入力装置20と、映像生成装置30とは、有線又は無線で直接接続されてもよく、LAN(Local Area Network)もしくはインターネット等の図示しないネットワークを介して接続されていてもよい。
【0020】
音声入力装置20は、音声を字幕出力装置10に入力する。例えば、音声入力装置20は、音声として、テレビ番組の音声ファイルを字幕出力装置10に入力してもよい。また、例えば、音声入力装置20は、マイクとして、マイクから入力される音声を字幕出力装置10に入力するようにしてもよい。
【0021】
映像生成装置30は、例えば、字幕出力装置10により出力された字幕データを入力して、放送用のクローズドキャプションを出力する。
【0022】
字幕出力装置10は、例えば、コンピュータ等であり、音声入力装置20から入力された音声に対して音声認識処理を実行し、認識結果に基づいて字幕データを生成し、映像生成装置30に出力する。
図1に示すように、字幕出力装置10は、制御部100、記憶部200、ストック250、及びタイマー300を有する。また、制御部100は、音声取得部110、音声認識部120、字幕生成部130、及び表示時間算出部140を有する。
【0023】
記憶部200は、メモリやHDD(Hard Disk Drive)等である。記憶部200には、後述する制御部100が実行するオペレーティングシステム、及び字幕表示プログラム等のアプリケーションプログラムが記憶される。
また、記憶部200には、後述する音声認識部120の認識結果に含まれる単語、及び当該単語の発話時刻等が記憶されるようにしてもよい。なお、記憶部200に記憶される認識結果については後述する。
【0024】
ストック250は、メモリやバッファ等であり、上記認識結果が確定するたびに、字幕として表示する認識結果の単語からなるテキストを保存する。なお、ストック250は、記憶部200と異なる構成としたが、記憶部200に含まれてもよい。
【0025】
タイマー300は、公知のタイマーであり、後述する制御部100からの制御指示に基づいて、経過時間を計時する。
【0026】
制御部100は、CPU、ROM、RAM、CMOSメモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUは字幕出力装置10を全体的に制御するプロセッサである。CPUは、ROMに格納されたシステムプログラム及び字幕表示プログラム等のアプリケーションプログラムを、バスを介して読み出し、システムプログラム及びアプリケーションプログラムに従って字幕出力装置10全体を制御する。これにより、図1に示すように、制御部100は、音声取得部110、音声認識部120、字幕生成部130、及び表示時間算出部140の機能を実現するように構成される。RAMには一時的な計算データや表示データ等の各種データが格納される。CMOSメモリは図示しないバッテリでバックアップされ、字幕出力装置10の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。
【0027】
音声取得部110は、音声入力装置20から音声を取得する。音声取得部110は、取得した音声を後述する音声認識部120に出力する。
【0028】
音声認識部120は、例えば、特許文献1や非特許文献1等の公知の手法を用いて、音声取得部110から入力される音声に対して音声認識処理を行う。音声認識部120は、認識結果を記憶部200に記憶する。また、音声認識部120は、認識結果が確定するたびに認識結果の単語をストック250に追加する。
図2A及び図2Bは、認識結果の一例を示す図である。図2A及び図2Bでは、例えば、発話者が「現在の気温は20.2度きょう日中の最高気温28度ぐらいまで気温が上がって日中は7月の上旬ぐらいの暑さになる見込みです。」と発話した場合の「認識結果」、「発話時刻」、及び「認識確定時刻」を含む認識結果を示す。
「認識結果」には、音声認識部120により認識(発話)された順に単語(例えば、「現在」や「の」等)が記憶される。
「発話時刻」には、「認識結果」の単語が発話された時刻が記憶される。
「認識確定時刻」には、音声認識部120において「認識結果」の単語の認識が確定した時刻が記憶される。
なお、図2A及び図2Bでは、字幕データを逐次表示する場合の「表示時刻」及び「遅延」と、従来の2行毎に字幕を表示する場合の「表示時刻」及び「遅延」との比較を示すデータも示す。これらのデータについては後述する。
【0029】
字幕生成部130は、ストック250の先頭に認識結果が保存されたタイミングでタイマー300を起動し、タイマー300に基づいて予め設定された所定の時間(以下、「更新頻度」ともいう)t(例えば、0.2秒等)毎に、認識結果の単語であるテキストを用いて字幕データを生成して出力し、タイマー300をリセットする。
なお、以下では、1つの画面には、最大15文字×2行、すなわち最大30文字まで表示する場合を例示して説明するが、最大文字数が30文字以外の場合についても同様である。
具体的には、字幕生成部130は、例えば、単語「現在」が空のストック250の先頭に保存されたタイミングでタイマー300を起動し、認識結果の「認識確定時刻」において単語「現在」の認識確定時刻から、タイマー300の値が更新頻度t(例えば、0.2秒)となった時(時刻00:10:27.742)に、単語「現在」から、その間に確定されストック250に保存された単語「きょう」までの単語からなるテキストの字幕データ(図3の左側の1段目)を出力し、タイマー300をリセットする。
なお、図2Aに示すように、単語「きょう」の認識確定時刻と次の単語「日中」の認識確定時刻との差が約0.6秒ある。このため、字幕生成部130は、単語「日中」がストック250に追加されるまでの間、ストック250に保存された単語「現在」から単語「きょう」までの同じテキストの字幕データを、タイマー300の値が更新頻度tとなるたびに出力し、タイマー300をリセットする。
そうすることで、逐次表示するにあたり、字幕の更新頻度を高くすると送信する字幕データ量が増加する(新たに認識結果が出ていない場合でも更新間隔の時間毎に、字幕データを生成・送信する必要がある)点、及び字幕更新頻度を低くすると、発話から字幕表示までの遅延が大きくなる点を考慮して、更新頻度t(例えば、0.2秒等)は予め設定されることが好ましい。そして、字幕出力装置10は、字幕データ量が必要以上に増加することなく、かつ発話から字幕表示までの遅延が大きくなることなく、字幕を図示しないテレビ受信機に表示することができる。
【0030】
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:28.342)に、その間に確定されストック250に新たに保存された単語「日中」を単語「現在」から単語「きょう」までのテキストに追加した字幕データ(図3の左側の2段目)を出力し、タイマー300をリセットする。
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:28.542)に、その間に確定されストック250に新たに保存された単語「の」及び「最高気温」を単語「現在」から単語「日中」までのテキストに追加した字幕データ(図3の左側の3段目)を出力し、タイマー300をリセットする。
図2Aに示すように、単語「最高気温」の認識確定時刻と次の単語「28」の認識確定時刻との差が約1秒ある。このため、字幕生成部130は、単語「28」がストック250に追加されるまでの間、ストック250に保存された単語「現在」から単語「最高気温」までの同じテキストの字幕データを、タイマー300の値が更新頻度tとなるたびに出力し、タイマー300をリセットする。
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:29.542)に、その間に確定されストック250に新たに保存された単語「28」及び「度」を単語「現在」から単語「最高気温」までのテキストに追加した字幕データ(図3の左側の4段目)を出力し、タイマー300をリセットする。
【0031】
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:29.742)に、その間に確定されストック250に新たに保存された単語「ぐらい」及び「まで」を単語「現在」から単語「度」までのテキストに追加した字幕データ(図3の左側の5段目)を出力し、タイマー300をリセットする。
図2Aに示すように、単語「まで」の認識確定時刻と次の単語「気温」の認識確定時刻との差が約0.5秒ある。このため、字幕生成部130は、単語「気温」の「気」がストック250に追加されるまでの間、ストック250に保存された単語「現在」から単語「まで」までの同じテキストの字幕データを、タイマー300の値が更新頻度tとなるたびに出力し、タイマー300をリセットする。
次に、字幕生成部130は、音声認識部120により単語「気温」の認識が確定した時(時刻00:10:30.154)に、単語「現在」から単語「気温」の「気」までの最大文字数30文字がストック250に保存されたことで、タイマー300の値にかかわらず、単語「現在」から単語「気温」の「気」までのテキストの字幕データ(図3の左側の6段目)を出力する。そして、字幕生成部130は、単語「現在」から単語「気温」の「気」までの認識結果をストック250から削除し、タイマー300をリセットする。なお、ストック250には、単語「気温」の「温」のみが保存される。
この場合、字幕出力装置10は、後述するように、表示時間算出部140により算出されるストック250の先頭に保存された単語「現在」の表示時間t_dが1つの画面に表示可能な最大文字数、すなわち単語「現在」から単語「気温」までの発話にかかる合計発話時間と等しくなる時間まで、図3の左側の6段目の字幕データを出力する。
すなわち、図2Aに示すように、単語「現在」の発話時刻が時刻00:10:25.180で、単語「気温」の次の単語「が」の発話時刻(すなわち、単語「気温」の発話終了時刻)が時刻00:10:28.720であることから、単語「現在」から単語「気温」までの発話にかかった合計発話時間は、3.54秒である。一方、図3の左側の1段目の字幕は時刻00:10:27.742に表示され、時刻00:10:31.282に図3の左側の6段目の字幕から図3の右側の1段目の字幕に切り替わったことから、表示時間t_dは3.54秒であり、上記合計発話時間3.54秒と等しい時間である。
そうすることで、字幕出力装置10は、発話者の発話速度に応じた字幕を表示することができ、テレビ番組の視聴者にとっても見やすい字幕を表示させることができる。また、図2Aに示すように、単語「気温」の認識が確定した時刻00:10:30.154に表示される従来の2行毎の字幕と比べて、字幕出力装置10は、発話から字幕を表示するまでの遅延を小さくすることができる。また、字幕出力装置10は、更新頻度t(例えば、0.2秒等)を調整することで字幕のデータ量と遅延量のバランスを取ることができる。
【0032】
次に、字幕生成部130は、後述する表示時間算出部140により算出された上記表示時間t_dが経過した時(時刻00:10:31.282)に、その間に確定されストック250に新たに保存された単語「が」から単語「日中」を単語「気温」の「温」に追加したテキストの字幕データ(図3の右側の1段目)を出力し、タイマー300をリセットする。
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:31.482)に、その間に確定されストック250に新たに保存された単語「は」を単語「気温」の「温」から単語「日中」までのテキストに追加した字幕データ(図3の右側の2段目)を出力し、タイマー300をリセットする。
なお、図2Bに示すように、単語「日中」の認識確定時刻と次の単語「は」の認識確定時刻との差が約0.7秒ある。このため、字幕生成部130は、単語「は」がストック250に追加されるまでの間、ストック250に保存された単語「気温」の「温」から単語「日中」までの同じテキストの字幕データを、タイマー300の値が更新頻度tとなるたびに出力し、タイマー300をリセットする。
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:32.082)に、その間に確定されストック250に新たに保存された単語「7」、「月」、及び「の」を単語「気温」の「温」から単語「は」までのテキストに追加した字幕データ(図3の右側の3段目)を出力し、タイマー300をリセットする。
【0033】
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:32.282)に、その間に確定されストック250に新たに保存された単語「上旬」を単語「気温」の「温」から単語「の」までのテキストに追加した字幕データ(図3の右側の4段目)を出力し、タイマー300をリセットする。
次に、字幕生成部130は、タイマー300の値が更新頻度tとなった時(時刻00:10:32.482)に、その間に確定されストック250に新たに保存された単語「ぐらい」を単語「気温」の「温」から単語「上旬」までのテキストに追加した字幕データ(図3の右側の5段目)を出力し、タイマー300をリセットする。
図2Bに示すように、単語「ぐらい」の認識確定時刻と次の単語「の」の認識確定時刻との差が約0.5秒ある。このため、字幕生成部130は、単語「の」がストック250に追加されるまでの間、ストック250に保存された単語「気温」の「温」から単語「ぐらい」までの同じテキストの字幕データを、タイマー300の値が更新頻度tとなるたびに出力し、タイマー300をリセットする。
次に、字幕生成部130は、タイマー300の値が更新頻度tとなるまでに、単語「の」から単語「。」がストック250に保存され、音声認識部120から認識結果として無音区間(発話終了)を受けた場合、タイマー300の値にかかわらず、ストック250に保存されている単語「気温」の「温」から単語「。」までの全ての単語のテキストの字幕データ(図3の右側の6段目)を出力する。そして、字幕生成部130は、全ての認識結果を削除してストック250を空にし、タイマー300をリセットする。
この場合、字幕出力装置10は、後述するように、表示時間算出部140により算出されるストック250の先頭に保存されている単語「気温」の「温」の表示時間t_dが単語「気温」から単語「。」までの発話にかかる合計発話時間と等しくなる時間まで、図3の右側の6段目の字幕データを出力する。
すなわち、図2Bに示すように、単語「気温」の発話時刻が時刻00:10:28.580で、単語「。」の発話終了時刻が時刻00:10:32.670であることから、単語「気温」から単語「。」までの発話にかかる合計発話時間は、4.09秒である。一方、図3の右側の1段目の字幕が時刻00:10:31.282に表示され、図3の右側の6段目の字幕が時刻00:10:32.882に表示されたことから、表示時間t_dが上記合計発話時間4.09秒の場合、図3の右側の6段目の字幕は、時刻00:10:35.372まで表示されて消える。
そうすることで、字幕出力装置10は、発話者の発話速度に応じた字幕を表示することができ、テレビ番組の視聴者にとっても見やすい字幕を表示させることができる。また、図2Bに示すように、単語「。」が発話された後の時刻00:10:32.986に表示される従来の2行毎の字幕と比べて、字幕出力装置10は、発話から字幕を表示するまでの遅延を小さくすることができる。また、字幕出力装置10は、更新頻度t(例えば、0.2秒等)を調整することで字幕のデータ量と遅延量のバランスを取ることができる。
【0034】
表示時間算出部140は、例えば、音声認識部120の認識結果に基づいて字幕生成部130により生成され出力される字幕データの表示時間を算出する。
具体的には、表示時間算出部140は、例えば、音声認識部120の音声認識処理により得られる単語毎の発話時刻(図2A及び図2B)に基づいて、字幕生成部130により生成される字幕データのテキストのうちストック250の先頭に保存された単語(例えば、「現在」)の合計表示時間が1つの画面に表示可能な最大文字数(すなわち、単語「現在」から単語「気温」まで)の発話にかかる合計発話時間と等しくなる時間を表示時間t_dとして算出する。
すなわち、図2Aに示すように、単語「現在」の発話時刻が時刻00:10:25.180で、単語「気温」の次の単語「が」の発話時刻(すなわち、単語「気温」の発話終了時刻)が時刻00:10:28.720であることから、単語「現在」から単語「気温」までの発話にかかった合計発話時間は、3.54秒である。一方、図3の左側の1段目の字幕は時刻00:10:27.742に表示され、時刻00:10:31.282に図3の左側の6段目の字幕から図3の右側の1段目の字幕に切り替わったことから、表示時間t_dは3.54秒であり、上記合計発話時間3.54秒と等しい時間である。
なお、図2Aでは、表示時間算出部140は、合計発話時間と等しい表示時間t_dを算出したが、遅延量に応じて合計発話時間よりも短い表示時間t_dを算出するようにしてもよい。
【0035】
また、表示時間算出部140は、音声認識部120から認識結果として無音区間(発話終了)を受けた場合、字幕生成部130により生成される字幕データのテキストのうちストック250の先頭に保存されている単語(例えば、「気温」の「温」)の合計表示時間がストック250に保存された全ての単語(例えば、単語「気温」から単語「。」まで)の発話にかかる合計発話時間と等しくなる時間を表示時間t_dとして算出するようにしてもよい。
すなわち、図2Bに示すように、単語「気温」の発話時刻が時刻00:10:28.580で、単語「。」の発話終了時刻が時刻00:10:32.670であることから、単語「気温」から単語「。」までの発話にかかる合計発話時間は、4.09秒である。一方、図3の右側の1段目の字幕が時刻00:10:31.282に表示され、図3の右側の6段目の字幕が時刻00:10:32.882に表示されたことから、表示時間t_dが上記合計発話時間4.09秒の場合、図3の右側の6段目の字幕は、時刻00:10:35.372まで表示されて消える。
そうすることで、字幕出力装置10は、発話者の発話の速度(発話時間)に基づいて表示時間t_dを算出することで、発話者の発話速度に応じた字幕を表示することができ、テレビ番組の視聴者にとっても見やすい字幕を表示することができる。
【0036】
<字幕出力装置10の字幕出力処理>
次に、図4を参照しながら、字幕出力装置10の字幕出力処理の流れを説明する。
図4は、字幕出力装置10の字幕出力処理について説明するフローチャートである。ここで示すフローは、テレビ番組が続いている間、繰り返し実行される。
【0037】
ステップS1において、字幕生成部130は、音声取得部110により取得された音声ファイルの音声に対する音声認識部120による音声認識の認識結果を取得したか否かを判定する。認識結果を取得した場合、処理はステップS2に進む。一方、認識結果を取得しない場合、処理はステップS5に進む。
【0038】
ステップS2において、字幕生成部130は、ステップS1で取得した認識結果が無音区間か否かを判定する。認識結果が無音区間の場合、処理はステップS4に進む。一方、認識結果が無音区間でなく発話区間の場合、処理はステップS3に進む。
【0039】
ステップS3において、字幕生成部130は、認識結果を用いて発話区間の字幕出力処理を実行し、字幕データを生成して出力し、タイマー300をリセットする。そして、処理はステップS1に戻る。なお、発話区間の字幕出力処理の詳細なフローについては、後述する。
【0040】
ステップS4において、字幕生成部130は、認識結果を用いて無音区間の字幕出力処理を実行し、字幕データを生成して出力し、タイマー300をリセットする。そして、処理はステップS1に戻る。なお、無音区間の字幕出力処理の詳細なフローについては、後述する。
【0041】
ステップS5において、字幕生成部130は、予め設定されたテレビ番組に関する情報(例えば、テレビ番組の開始時刻及び終了時刻等)に基づいてテレビ番組の放送が終了したか否かを判定する。テレビ番組の放送が終了した場合、字幕出力装置10は、字幕出力処理を終了する。一方、テレビ番組の放送が終了していない場合、処理はステップS6に進む。
【0042】
ステップS6において、字幕生成部130は、タイマー300の値が予め設定された更新頻度t(例えば、0.2秒等)となったか否かを判定する。タイマー300の値が更新頻度tとなった場合、処理はステップS7に進む。一方、タイマー300の値が更新頻度t未満の場合、処理はステップS1に戻る。
【0043】
ステップS7において、字幕生成部130は、ストック250に保存されている認識結果の単語のテキストの字幕データを生成し出力する。
【0044】
ステップS8において、字幕生成部130は、タイマー300をリセットする。
【0045】
図5は、図4においてステップS3で示した発話区間の字幕出力処理の詳細な処理内容を説明するフローチャートである。
【0046】
ステップS301において、字幕生成部130は、ステップS1で取得された認識結果の単語をストック250に追加して保存する。
【0047】
ステップS302において、字幕生成部130は、ステップS301で保存された認識結果がストック250の先頭に保存されたものか否かを判定する。認識結果がストック250の先頭に保存されたものである場合、処理はステップS303に進む。一方、認識結果がストック250の先頭に保存されたものでない場合、処理はステップS304に進む。
【0048】
ステップS303において、字幕生成部130は、タイマー300を起動させる。
【0049】
ステップS304において、字幕生成部130は、ストック250に保存されている単語の数が1つの画面における15文字×2行分、すなわち最大文字数30文字を超過したか否かを判定する。単語の数が最大文字数を超過した場合、処理はステップS305に進む。一方、単語の数が最大文字数以下の場合、処理はステップS308に進む。
【0050】
ステップS305において、表示時間算出部140は、音声認識部120の認識結果に基づいて字幕生成部130により生成される字幕データの表示時間t_dを算出する。
【0051】
ステップS306において、字幕生成部130は、ストック250に保存されている認識結果の単語のうち1つの画面における15文字×2行分、すなわち最大文字数30文字分を用いた字幕データを生成し出力する。
【0052】
ステップS307において、字幕生成部130は、ステップS306で生成した字幕データに用いた認識結果をストック250から削除し、タイマー300をリセットする。
【0053】
ステップS308において、字幕生成部130は、タイマー300の値が更新頻度t(例えば、0.2秒等)となったか否かを判定する。タイマー300の値が更新頻度tとなった場合、処理はステップS309に進む。一方、タイマー300の値が更新頻度t未満の場合、処理は発話区間の字幕出力処理を終了し、ステップS1の処理に戻る。
【0054】
ステップS309において、字幕生成部130は、ストック250に保存されている認識結果の単語のテキストの字幕データを生成し出力する。
【0055】
ステップS310において、字幕生成部130は、タイマー300をリセットする。そして、字幕出力装置10は、ステップS1の処理に戻る。
【0056】
図6は、図4においてステップS4で示した無音区間の字幕出力処理の詳細な処理内容を説明するフローチャートである。
【0057】
ステップS401において、字幕生成部130は、ストック250に認識結果が保存されているか否かを判定する。ストック250に認識結果が保存されている場合、処理はステップS402に進む。一方、ストック250に認識結果が保存されていない場合、字幕出力装置10は、無音区間の字幕出力処理を終了し、ステップS1の処理に戻る。
【0058】
ステップS402において、表示時間算出部140は、音声認識部120の認識結果に基づいて字幕生成部130により生成される字幕データの表示時間t_dを算出する。
【0059】
ステップS403において、字幕生成部130は、ストック250に保存されている全ての認識結果の単語のテキストの字幕データを生成し出力する。
【0060】
ステップS404において、字幕生成部130は、ストック250に保存されている全ての認識結果を削除し、タイマー300をリセットする。そして、字幕出力装置10は、ステップS1の処理に戻る。
【0061】
以上により、一実施形態に係る字幕出力装置10は、更新頻度t(例えば、0.2秒等)、1つの画面に表示可能な単語の数、又は無音区間の認識結果に基づいて、画面に表示する字幕の一部の音声認識が確定している段階で字幕を表示し、新たに認識結果が確定するたびに字幕を更新することにより、発話から字幕を表示するまでの遅延を小さくすることができる。また、字幕出力装置10は、更新頻度tの値を調節することで字幕のデータ量と、発話との遅延量と、のバランスを取ることができる。
【0062】
以上、一実施形態について説明したが、字幕出力装置10は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0063】
<変形例1>
一実施形態では、表示時間算出部140は、ストック250に保存された先頭の単語の合計表示時間が、字幕として表示されている全ての単語の合計発話時間と等しくなるように表示時間t_dを算出したが、これに限定されない。例えば、表示時間算出部140は、1つの画面に表示される最後の単語の表示時間の下限を算出するようにしてもよい。
そうすることで、字幕出力装置10は、字幕が表示される時間が短くなりすぎないようにすることもできる。
【0064】
<変形例2>
また例えば、上述の実施形態では、字幕生成部130は、更新頻度t(例えば、0.2秒等)、1つの画面に表示可能な単語の数、又は無音区間の認識結果に基づいて字幕データを生成して映像生成装置30に出力したが、これに限定されない。
例えば、字幕生成部130は、字幕データを出力するタイミングで、現在表示中の字幕がある場合、表示終了まで待ったうえで、表示終了と同時に新たな字幕データを出力するようにしてもよい。なお、この待ち時間の間に新たな認識結果が確定した場合、字幕生成部130は、確定した認識結果の単語を記憶部200に追加し、次に表示する字幕データに反映させるようにしてもよい。
【0065】
<変形例3>
また例えば、上述の実施形態では、字幕出力装置10は、テレビ番組の字幕を生成したが、これに限定されない。例えば、字幕出力装置10は、映画やネット配信動画等に対しても適用することができる。
【0066】
なお、一実施形態における字幕出力装置10に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0067】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0068】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【符号の説明】
【0069】
1 字幕出力システム
10 字幕出力装置
100 制御部
110 音声取得部
120 音声認識部
130 字幕生成部
140 表示時間算出部
200 記憶部
250 ストック
300 タイマー
20 音声入力装置
30 映像生成装置
図1
図2A
図2B
図3
図4
図5
図6