(57)【要約】【課題】より適切に残響音を生成すること。【解決手段】情報処理装置が、インパルス音が発生した時点からの時間が経過するに従って、前記インパルス音に対する前記時間に応じた反射音の音量の値が閾値を超える確率を高く決定し、前記反射音の音量の値を、前記時間が経過するに従って乱数に基づく値に近づくように決定する決定部を有する情報処理装置。【選択図】図３
2020101768.tif 000002
【特許請求の範囲】
【請求項１】
インパルス音が発生した時点からの時間が経過するに従って、前記インパルス音に対する前記時間に応じた反射音の音量の値が閾値を超える確率を高く決定し、
前記反射音の音量の値を、前記時間が経過するに従って乱数に基づく値に近づくように決定する決定部を有する情報処理装置。
【請求項２】
前記決定部は、
前記反射音の音量の値を、前記時間が経過するに従って非線形に減少する値と乱数に基づく値とを乗算した値に前記時間が経過するに従って近づくように決定する、
請求項１に記載の情報処理装置。
【請求項３】
前記決定部は、
前記反射音の音量の値を、前記時間が経過するに従って非線形に減少する値から、当該非線形に減少する値と前記乱数に基づく値とを乗算した値に前記時間が経過するに従って近づくように決定する、
請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、前記乱数に基づく値を、白色雑音に基づいて決定する、
請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
前記決定部は、
前記反射音の音量の値を、前記時間が経過するに従って非線形に減少する値と前記時間が経過するに従って０度に近い角度となる確率が高くなる角度の正弦の値とを乗算した値に前記時間が経過するに従って近づくように決定する、
請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記決定部により決定された前記反射音の音量の値と、記憶部に記憶されている音声データとに基づいて、前記音声データの残響音を調整する調整部を有する、
請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
情報処理装置に、
インパルス音が発生した時点からの時間が経過するに従って、前記インパルス音に対する反射音の音量の値が閾値を超える確率を高く決定する処理と、
前記インパルス音に対する反射音の音量の値を、前記時間が経過するに従って乱数に基づく値に近づくように決定する処理と、を実行させるプログラム。
【請求項８】
情報処理装置が、
インパルス音が発生した時点からの時間が経過するに従って、前記インパルス音に対する反射音の音量の値が閾値を超える確率を高く決定する処理と、
前記インパルス音に対する反射音の音量の値を、前記時間が経過するに従って乱数に基づく値に近づくように決定する処理と、を実行する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、コンピュータゲームの状況等に応じて音を出力する場合、エフェクタ（残響エフェクタ、リバーブレータ）を用いて、直接音に応じた残響音を出力する技術が知られている（例えば、特許文献１を参照）。
【０００３】
また、ホール等の建造物で、時間幅が狭いインパルス音に対する反射音（インパルスレスポンス）のデータを予め測定して記憶しておき、出力したい効果音、セリフ等の音声、楽曲等の音の信号と畳み込み（コンボリューション）演算を行うことにより、当該ホール等における残響を再現する技術が知られている。この技術を用いたエフェクタは、コンボリューションリバーブ等とも称されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２６７６７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、音を出力するステージ等がそれぞれ異なる等の場合、各ホール等でインパルスレスポンスをそれぞれ測定する手間がかかる。そこで、一側面では、より適切に残響音を生成することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの案では、情報処理装置が、インパルス音が発生した時点からの時間が経過するに従って、前記インパルス音に対する前記時間に応じた反射音の音量の値が閾値を超える確率を高く決定し、前記反射音の音量の値を、前記時間が経過するに従って乱数に基づく値に近づくように決定する決定部を有する情報処理装置。
【発明の効果】
【０００７】
一側面によれば、より適切に残響音を生成することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る情報処理装置のハードウェア構成例を示す図である。
【図２】実施形態に係る情報処理装置の機能ブロック図である。
【図３】実施形態に係る情報処理装置の処理の一例を示すフローチャートである。
【図４Ａ】実施形態に係るインデックスｉの値が大きい程大きくなる値の一例について説明する図である。
【図４Ｂ】インデックスｉの値が大きくなるに従って指数関数的に減少していく値の一例について説明する図である。
【図４Ｃ】実施形態に係るインデックスｉがＬｄｅｌａｙより大きい場合のインパルスレスポンスデータの一例について説明する図である。
【発明を実施するための形態】
【０００９】
以下、図面に基づいて本発明の実施形態を説明する。
【００１０】
＜ハードウェア構成＞
図１は、実施形態に係る情報処理装置１０のハードウェア構成例を示す図である。図１に示す情報処理装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、インタフェース装置１０５、表示装置１０６、及び入力装置１０７等を有する。
【００１１】
情報処理装置１０での処理を実現するゲームプログラムは、記録媒体１０１によって提供される。ゲームプログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、ゲームプログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、ゲームプログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたゲームプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１２】
メモリ装置１０３は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、またはＳＲＡＭ（Static Random Access Memory）等のメモリであり、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報処理装置１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７は、コントローラ等、キーボード及びマウス等、またはタッチパネル及びボタン等で構成され、様々な操作指示を入力させるために用いられる。
【００１３】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、ブルーレイディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００１４】
＜機能構成＞
次に、図２を参照し、情報処理装置１０の機能構成について説明する。図２は、実施形態に係る情報処理装置１０の機能ブロック図である。
【００１５】
情報処理装置１０は、記憶部１１を有する。記憶部１１は、例えば、補助記憶装置１０２等を用いて実現される。記憶部１１は、効果音、録音されたセリフ、及び楽曲等の音声データ等を記憶する。
【００１６】
また、情報処理装置１０は、受付部１２、生成部１３（「決定部」の一例。）、及び調整部１４を有する。これら各部は、情報処理装置１０にインストールされた１以上のプログラムが、情報処理装置１０のＣＰＵ１０４に実行させる処理により実現される。
【００１７】
受付部１２は、残響に関する各種のパラメータを指定する操作を受け付ける。生成部１３は、インパルス音に対する反射音のデータであるインパルスレスポンスのデータを生成（決定）する。
【００１８】
調整部１４は、生成部１３により生成されたインパルスレスポンスのデータと、記憶部１１に記憶されている音声データとに基づいて、当該音声データに対する残響音を生成（調整）し、スピーカ等に出力する。調整部１４は、例えば、当該音声データと、生成部１３により生成されたインパルスレスポンスのデータとの畳み込み（コンボリューション）演算を行うことにより、残響音を生成する。
【００１９】
＜処理＞
次に、図３から図４Ｃを参照して、情報処理装置１０の処理について説明する。図３は、実施形態に係る情報処理装置１０の処理の一例を示すフローチャートである。図４Ａは、実施形態に係るインデックスｉの値が大きい程大きくなる値の一例について説明する図である。図４Ｂは、インデックスｉの値が大きくなるに従って指数関数的に減少していく値の一例について説明する図である。図４Ｃは、実施形態に係るインデックスｉがＬｄｅｌａｙより大きい場合のインパルスレスポンスデータの一例について説明する図である。
【００２０】
ステップＳ１において、受付部１２は、残響に関する各種のパラメータを指定する操作を受け付ける。ここで、受付部１２は、インパルスレスポンスデータの長さＬ、パルス音が出力されてから最初の反射音が返ってくるまでの長さＬｄｅｌａｙ、及び音量減衰指数Ｐｄｅｃａｙ等を設定する操作をユーザから受け付ける。
【００２１】
なお、Ｌは、パルス音が出力されてから残響音の出力が停止されるまでの時間（残響時間）とサンプリング周波数に応じた、インパルスレスポンスデータの配列ＩＲ［Ｌ］のインデックスの最大値である。ここで、残響時間として、ゲーム等において音が出力される環境が小さな部屋の場合は０．５秒程度、音楽用ホール等の場合は数秒程度が指定されてもよい。例えば、残響時間が５秒であり、音のサンプリング周波数が４８ｋＨｚの場合、Ｌは、２４００００（５×４８ｋ）と決定される。
【００２２】
Ｌｄｅｌａｙは、壁、天井、床等からの初期反射のうち、パルス音が出力されてから最も早い初期反射が返ってくるまでの時間とサンプリング周波数に応じた数値である。例えば、パルス音が出力されてから最も早い初期反射が返ってくるまでの時間が１０ｍ秒であり、音のサンプリング周波数が４８ｋＨｚの場合、Ｌは、４８０（１０ｍ×４８ｋ）と決定される。音量減衰指数Ｐｄｅｃａｙは、減衰の速度を示す値であり、値が大きい程減衰の速度が速くなる。Ｐｄｅｃａｙの値として、例えば、１より大きい値が設定されてもよい。
【００２３】
続いて、生成部１３は、パルス音が出力されてから最初の反射音が返ってくるまでの時間長までのインパルスレスポンスデータを０に設定する（ステップＳ２）。ここで、生成部１３は、ＩＲ［０］からＩＲ［Ｌｄｅｌａｙ］までの値を所定の閾値以下の値（例えば、０）に設定する。
【００２４】
続いて、生成部１３は、インパルスレスポンスデータの時間軸の値を示すインデックスｉを初期化する（ステップＳ３）。ここで、生成部１３は、例えば、ｉの値を０と設定する。続いて、生成部１３は、インデックスｉが、インデックスｉの値が大きい程条件を満たす確率が増加する条件を満たすか否かを判定する（ステップＳ４）。ここで、生成部１３は、例えば、まず、一様乱数の値Ｒｕを算出する。なお、Ｒｕは、例えば、０以上１未満の区間内で全ての実数が同じ確率で現れる乱数である。そして、生成部１３は、例えば、以下の式（１）の条件を満たす場合、当該条件を満たすと判定してもよい。なお、Ｌｂｏｄｙは、Ｌ−Ｌｄｅｌａｙである。
【００２５】
Ｒｕ  ＜  （ｉ／Ｌｂｏｄｙ）  ・・・（１）
図４Ａに示すように、ｉ／Ｌｂｏｄｙの値４０１は、インデックスｉの値が大きい程大きくなるため、インデックスｉの値が大きい程、式（１）の条件を満たす確率は増加する。
【００２６】
当該条件を満たさない場合（ステップＳ４でＮＯ）、生成部１３は、インデックスｉに応じたインパルスレスポンスデータを所定の閾値以下の値（例えば、０）に設定し（ステップＳ５）、ステップＳ７の処理に進む。ステップＳ５の処理で、生成部１３は、インデックスｉに応じたインパルスレスポンスデータであるＩＲ［Ｌｄｅｌａｙ＋ｉ］の値を０に設定する。
【００２７】
当該条件を満たす場合（ステップＳ４でＹＥＳ）、インデックスｉがＬｄｅｌａｙより大きい場合のインパルスレスポンスデータを、インデックスｉの値が小さい程、インデックスｉの値が大きくなるに従って非線形に減少していく値により近づき、インデックスｉの値が大きい程ホワイトノイズ等の乱数に基づく値により近づく値に設定する（ステップＳ６）。ステップＳ５、及びステップＳ６の処理により、インデックスｉの値が大きくなるに従って、ＩＲ［ｉ］の値が当該所定の閾値を超える確率が高くなる。そのため、図４Ｃに示すように、インデックスｉがＬｄｅｌａｙより大きい場合のインパルスレスポンスデータ４２１は、インデックスｉの値が小さい程、当該所定の閾値以下の値ではない値の密度が疎であり、インデックスｉの値が大きくなるに従って、当該所定の閾値以下の値ではない値の密度が密になる。また、ステップＳ６の処理により、図４Ｃに示すように、インデックスｉがＬｄｅｌａｙより大きい場合のインパルスレスポンスデータ４２１は、音量が揺らぎつつも徐々に減少し、徐々にホワイトノイズに近づく値となる。これにより、ホール等で実際のインパルスレスポンスを測定しなくとも、実際の残響音に近い残響音を出力するためのインパルスレスポンスのデータを生成することができる。
【００２８】
ステップＳ６の処理で、生成部１３は、インデックスｉの値が大きくなるに従って指数関数的に減少していく値であるＧａｉｎＳｃａｌｅ（減衰曲線。「非線形に減少する値」の一例。）を算出する。例えば、生成部１３は、以下の式（２）によりＧａｉｎＳｃａｌｅの値を算出する。なお、「ａ＾ｎ」は、ａのｎ乗を示す。
【００２９】
ＧａｉｎＳｃａｌｅ  ＝  （１−ｉ／Ｌｂｏｄｙ）＾Ｐｄｅｃａｙ  ・・・（２）
式（４）により、ＧａｉｎＳｃａｌｅの値４１１は、図４Ｂに示すように、インデックスｉの値が大きくなるに従って指数関数的に減少していく値となる。
【００３０】
ここで、生成部１３は、例えば、まず、正規乱数の値Ｒｎを算出する。Ｒｎは、例えば、０より大きく１未満の区間内で正規分布をもつ乱数でもよい。この場合、生成部１３は、例えば、０より大きく１以下の一様乱数をボックス＝ミュラー法（Ｂｏｘ−Ｍｕｌｌｅｒ  ｔｒａｎｓｆｏｒｍ）で変換してＲｎを算出してもよい。
【００３１】
そして、生成部１３は、ホワイトノイズを表す値Ｗを、以下の式（３）により算出する。
【００３２】
Ｗ  ＝  （Ｒｎ−０．５）／Ｖ  ・・・（３）
なお、Ｖは、ホワイトノイズの音量を調節するための定数であり、生成部１３は、例えば、Ｖの値を４としてもよい。そして、生成部１３は、ＩＲ［Ｌｄｅｌａｙ＋ｉ］に、以下の式（４）で算出した値を設定する。
【００３３】
ＩＲ［Ｌｄｅｌａｙ＋ｉ］  ＝  （Ｓ（１−ｉ／Ｌｂｏｄｙ）＋Ｗ（ｉ／Ｌｂｏｄｙ））×ＧａｉｎＳｃａｌｅ  ・・・（４）
ここで、Ｓは、Ｗの符号であり、−１、０、及び１の何れかの値である。生成部１３は、Ｗの値がマイナスであればＳを−１とし、Ｗの値が０であればＳを０とし、Ｗの値がプラスであればＳを１とする。
【００３４】
これにより、図４Ｃに示すように、インデックスｉに応じたインパルスレスポンスデータ４２１は、インデックスｉの値が小さい程、インデックスｉの値が大きくなるに従って指数関数的に減少していく値であるＧａｉｎＳｃａｌｅに近づき、インデックスｉの値が大きい程ホワイトノイズの値ＷとＧａｉｎＳｃａｌｅとを乗算した値に近づく値に設定される。
【００３５】
続いて、生成部１３は、インデックスｉの値をインクリメント（１つ増加）する（ステップＳ７）。続いて、生成部１３は、インデックスｉの値が終了条件を満たすか否かを判定する（ステップＳ８）。ここで、生成部１３は、インデックスｉの値がＬｄｅｌａｙの値と等しくなった場合、終了条件を満たすと判定する。インデックスｉの値が終了条件を満たさない場合（ステップＳ８でＮＯ）、ステップＳ４の処理に進む。一方、インデックスｉの値が終了条件を満たす場合（ステップＳ８でＹＥＳ）、処理を終了する。
【００３６】
＜変形例１＞
生成部１３は、図３のステップＳ６で、式（４）を用いて算出した値をＩＲ［Ｌｄｅｌａｙ＋ｉ］に設定する代わり、またはこれに加えて、以下のように算出した値をＩＲ［Ｌｄｅｌａｙ＋ｉ］に設定するようにしてもよい。
【００３７】
この場合、生成部１３は、まず、一様乱数の値Ｒｕ２を算出する。なお、Ｒｕ２は、例えば、０以上１以下の区間内で全ての実数が同じ確率で現れる乱数である。そして、生成部１３は、以下の式（５）により角度θを算出する。
【００３８】
θ  ＝  （π／２）×（１−Ｒｕ２×（ｉ／Ｌｂｏｄｙ））  ・・・（５）
そして、生成部１３は、１／２の確率で、角度θの正負を反転させる。そして、生成部１３は、ＩＲ［Ｌｄｅｌａｙ＋ｉ］に、以下の式（６）で算出した値を設定する。
【００３９】
ＩＲ［Ｌｄｅｌａｙ＋ｉ］  ＝  ｓｉｎθ×ＧａｉｎＳｃａｌｅ  ・・・（６）
これにより、インパルスレスポンスデータの配列ＩＲ［Ｌ］は、インデックスｉの値が小さい程、インデックスｉの値が大きくなるに従って指数関数的に減少していく値であるＧａｉｎＳｃａｌｅに近づく。また、インパルスレスポンスデータの配列ＩＲ［Ｌ］は、インデックスｉの値が大きい程０度に近い角度となる確率が高くなる角度の正弦の値とＧａｉｎＳｃａｌｅとを乗算した値に、インデックスｉの値が大きい程近づく値に設定される。なお、生成部１３は、ＩＲ［Ｌｄｅｌａｙ＋ｉ］の値を決定する方法を、ユーザの操作により切り替えられるようにしてもよい。また、生成部１３は、ＩＲ［Ｌｄｅｌａｙ＋ｉ］に、以下の式（７）で算出した値を設定する。
【００４０】
ＩＲ［Ｌｄｅｌａｙ＋ｉ］  ＝  （Ｓ（１−ｉ／Ｌｂｏｄｙ）＋ｓｉｎθ（ｉ／Ｌｂｏｄｙ））×ＧａｉｎＳｃａｌｅ  ・・・（７）
これにより、インデックスｉに応じたインパルスレスポンスデータは、インデックスｉの値が小さい程、インデックスｉの値が大きくなるに従って指数関数的に減少していく値であるＧａｉｎＳｃａｌｅに近づき、インデックスｉの値が大きい程、インデックスｉの値が大きい程０度に近い角度となる確率が高くなる角度の正弦の値とＧａｉｎＳｃａｌｅとを乗算した値に近づく値に設定される。
【００４１】
＜変形例２＞
情報処理装置１０の各機能部は、例えば１以上のコンピュータにより構成されるクラウドコンピューティングにより実現されていてもよい。
【００４２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４３】
１０  情報処理装置
１１  記憶部
１２  受付部
１３  生成部
１４  調整部
【図１】
2020101768.tif 000003
【図２】
2020101768.tif 000004
【図３】
2020101768.tif 000005
【図４Ａ】
2020101768.tif 000006
【図４Ｂ】
2020101768.tif 000007
【図４Ｃ】
2020101768.tif 000008