(57)【要約】      （修正有）【課題】エコーを低減して音ループを効果的に抑制する。【解決手段】音処理装置１００は、音が出力部から出力されている間およびユーザから、出力部からの音出力停止の指示を受けたことに応じて、出力部からの音の出力が停止されてから所定時間が経過するまでの間に生成された音データを無効にする。【選択図】図１
2018006871.tif 000002
【特許請求の範囲】
【請求項１】
入力部に入力された音から音データを生成する生成手段と、
前記生成手段により生成された音データを無効にする無効化手段と、を有し、
前記無効化手段は、音が出力部から出力されている間、および、ユーザから前記出力部からの音出力停止の指示を受けたことに応じて、前記出力部からの音の出力が停止されてから所定時間が経過するまでの間に前記生成手段により生成された音データを無効にすることを特徴とする音処理装置。
【請求項２】
前記無効化手段は、前記生成手段により生成された音データを無音のデータに差し替えることにより当該音データを無効にすることを特徴とする請求項１に記載の音処理装置。
【請求項３】
前記無効化手段は、前記生成手段により生成された音データを、当該音データの音レベルを下げたデータに差し替えることにより、当該音データを無効にすることを特徴とする請求項１に記載の音処理装置。
【請求項４】
前記所定時間を設定する設定手段を更に有することを特徴とする請求項１から３のいずれか１項に記載の音処理装置。
【請求項５】
前記設定手段は、前記出力部より出力された音から算出された音伝搬遅延時間を前記所定時間として設定することを特徴とする請求項４に記載の音処理装置。
【請求項６】
前記設定手段は、前記出力部と前記入力部との距離に基づいて、前記所定時間を設定することを特徴とする請求項４に記載の音処理装置。
【請求項７】
前記設定手段は、前記出力部より出力された音から算出された音伝搬遅延時間と音速から前記出力部と前記入力部との距離を算出することを特徴とする請求項６に記載の音処理装置。
【請求項８】
前記設定手段は、前記出力部と前記入力部とが設置される環境の温度に基づいて、前記所定時間を設定することを特徴とする請求項４に記載の音処理装置。
【請求項９】
前記設定手段は、前記出力部と前記入力部との距離に基づく音伝搬減衰率、および、前記出力部より出力される音のレベルに基づいて算出される、前記出力部より出力される音が前記入力部に到達する際の音レベルが所定の閾値を満たさない場合に、前記所定時間を補正する手段を有する請求項４に記載の音処理装置。
【請求項１０】
前記設定手段は、前記所定時間を破棄することを特徴とする請求項７に記載の音処理装置。
【請求項１１】
前記出力部は出力バッファを有し、前記入力部は入力バッファを有し、
前記無効化手段は、前記出力バッファの使用状況と前記入力バッファの使用状況の少なくとも一方に基づいて、前記生成手段により生成された音データを無効にすることを開始および終了するタイミングを制御することを特徴とする請求項１から８のいずれか１項に記載の音処理装置。
【請求項１２】
音処理装置の制御方法であって、
入力部に入力された音から音データを生成する生成工程と、
音が出力部から出力されている間、および、ユーザから前記出力部からの音出力停止の指示を受けたことに応じて、前記出力部からの音の出力が停止されてから所定時間が経過するまでの間に前記生成工程において生成された音データを無効にする無効化工程と、
有することを特徴とする音処理装置。
【請求項１３】
コンピュータを、請求項１から１１のいずれか１項に記載の音処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音の入出力制御の技術に関する。
【背景技術】
【０００２】
音出力部と音入力部を備える装置において、音ループ（出力した音を入力として取得する現象）の発生を防ぐ必要がある。このような音ループは、音出力時において、音入力をミュートするなど、入力音データの生成を無効にすることで発生を低減することができる。
【０００３】
特許文献１には、音出力時に入力音のレベルが所定の閾値を満たしていない場合は音データを取得しないように制御する技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−９６５３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
音出力部と音入力部との間で音の伝搬遅延が生じる場合、音出力時における、入力音データの生成を無効にする期間およびタイミングが適切に設定しないと音エコーが発生してしまう可能性がある。例えば、音出力部による音の出力が終了したタイミングと同じタイミングで音入力部の入力音データの生成の無効化を終了した場合、伝搬遅延された音出力部による音により音エコーが発生してしまう。また、特許文献１では、音出力部と音入力部との間で音の伝搬遅延が生じる場合の音エコーの低減については考慮していない。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、音ループを効果的に抑制することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するための一手段として、本発明の音処理装置は以下の構成を有する。すなわち、入力部に入力された音から音データを生成する生成手段と、前記生成手段により生成された音データを無効にする無効化手段と、を有し、前記無効化手段は、音が出力部から出力されている間、および、ユーザから前記出力部からの音出力停止の指示を受けたことに応じて、前記出力部からの音の出力が停止されてから所定時間が経過するまでの間に前記生成手段により生成された音データを無効にする。
【発明の効果】
【０００８】
本発明によれば、音ループを効果的に抑制することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１、２、３の音処理装置の構成の一例を示す模式図。
【図２】実施形態１における音処理装置が実行する処理のフローチャート。
【図３】実施形態２における音処理装置が実行する処理のフローチャート。
【図４】実施形態３における音処理装置が実行する処理のフローチャート。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明における音処理装置および当該装置の制御方法の実施形態の一例について詳説する。但し、本発明は、以下の実施形態に限定されるものではない。
【００１１】
［全体構成］
まず、図１を参照して、以下に説明する実施形態における音処理装置１００の全体構成について説明する。図１は、音処理装置１００の構成の一例を示す模式図である。音処理装置１００は、一例として、半二重音声通話を行うことが可能である。
【００１２】
ＣＰＵ（中央演算処理装置）１０１は、データ処理部 １０１１、データ送信部１０１２、入力ミュート部１０１３、データ受信部１０１４、無効時間算出部１０１５、バッファ管理部１０１６、伝搬減衰率算出部 １０１７、伝搬遅延検出部１０１８を有する。ＣＰＵ１０１は例えば、所定のプログラムの実行によりこれらの各部による処理を行う（各部として機能する）。データ処理部１０１１は、音データの生成、および音処理装置１００全体を管理するための制御を行う。データ送信部１０１２は、データ処理部１０１１により生成された音データをＲＯＭ１１１、記憶装置１１２、またはＩ／Ｆ１１３に送信する処理を行う。入力ミュート部１０１３は、音入力を無効にするための処理を行う。データ受信部１０１４は、音データをＲＯＭ１１１、記憶装置１１２、またはＩ／Ｆ１１３から受信する処理を行う。無効時間算出部１０１５は、音入力無効時間を算出するための処理を行う。音入力無効時間については、後述する。バッファ管理部１０１６は、入力バッファ１０４と出力バッファ１０７の使用状況を取得するための処理を行う。伝搬減衰率算出部１０１７は、音伝搬減衰率を算出するための処理を行う。伝搬遅延検出部１０１８は、音伝搬遅延時間を検出するための制御を行う。
【００１３】
入力部１０２は。マイクロフォン等であり、音（空気振動）をアナログ信号に変換する装置である。入力部１０２によって取得されたアナログ信号は、Ａ／Ｄ変換部１０３によってデジタル信号に変換され、入力バッファ１０４にデジタルデータとして一時蓄積される。入力バッファ１０４に一時蓄積されたデジタルデータは、バス１１７を介してＣＰＵ１０１によって処理される。
【００１４】
出力部１０５は、スピーカー等であり、電気信号を音（空気振動）に変換する装置である。ＣＰＵ１０１からバス１１７を介して出力バッファ１０７に一時格納されたデジタルデータは、Ｄ／Ａ変換部１０６によりデジタル信号からアナログ信号へ変換され、出力部１０５から音（空気振動）として出力される。
【００１５】
温度センサー１０８は、温度変化に対して電気特性が変化するサーミスタ等の素子である。温度センサー１０８により示される環境温度のデータ（アナログデータ）は、Ａ／Ｄ変換部１０９によってデジタルデータとしてサンプリングされた後、バス１１７を介して、ＣＰＵ１０１によって処理される。
【００１６】
ＲＡＭ（Read Only Memory）１１０は、ＳＲＡＭ（Static RAM）やＤＲＡＭ（Dynamic RAM）等の揮発性メモリである。ＲＯＭ（Read Only Memory）１１１は、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）やフラッシュメモリ等の不揮発性メモリである。記憶装置１１２は、ＨＤＤ（Hard Disc Drive）等の記憶装置である。実施形態における機能を実現するためのプログラムや当該プログラムが実行される際に用いられるデータは、ＲＯＭ１１１もしくは記憶装置１１２に格納される。これらのプログラムやデータは、ＣＰＵ１０１による制御のもと、バス１１７を介して適宜ＲＡＭ１１０に取り込まれ、ＣＰＵ１０１によって実行される。
【００１７】
Ｉ／Ｆ１１３は、入出力のための各種Ｉ／Ｆ（Interface）である。Ｉ／Ｆ１１３は、キーボードやポインティングデバイス（たとえば、マウス）等の入力装置１１４と接続する。Ｉ／Ｆ１１３は、入力装置１１４から指示情報を受け取り、バス１１７を介して、ＣＰＵ１０１に当該指示情報を通知することが可能である。また、Ｉ／Ｆ１１３は、ＬＣＤ（Liquid crystal display）ディスプレイ等の表示装置１１５と接続し、ＣＰＵ１０１によって生成される操作メニューや必要な情報を表示装置１１５に表示することが可能である。なお、表示装置１１５は、ＧＵＩ（Graphic User Interface）として機能し、入力装置１１４を含む装置として構成されても良い。また、Ｉ／Ｆ１１３は、例えばＬＡＮ（Local Area Network）を介してネットワーク１１６と接続する。ユーザは必要な操作を、入力装置１１４またはネットワーク１１６を介して行うことが可能である。
【００１８】
続いて、上記のような構成を有する音処理装置１００の動作を、以下の実施形態１、２、３において説明する。
【００１９】
［実施形態１］
実施形態１における音処理装置１００の動作を、図２を参照して説明する。図２は、実施形態１における音処理装置１００が実行する処理のフローチャートである。
【００２０】
ステップＳ１０１では、音処理装置１００は、音入力を有効にする。具体的には、まず入力部１０２は、入力された音（空気振動）をアナログ信号に変換する。アナログ信号は、Ａ／Ｄ変換部１０３によりデジタル信号に変換され、入力バッファ１０４に一時蓄積される。入力バッファ１０４に蓄積されたデジタル信号は、バス１１７を介してＣＰＵ１０１に入力される。ＣＰＵ１０１におけるデータ処理部１０１１は、入力されたデジタル信号から音データを生成する。生成された音データは、データ送信部１０１２によって、ＲＯＭ１１１もしくは記憶装置１１２に音ファイルとして記録、もしくはＩ／Ｆ１１３を介してネットワーク１１６へ配信される。
【００２１】
続いて、ステップＳ１０２では、ＣＰＵ１０１のデータ処理部１０１１は、入力装置１１４またはネットワーク１１６を介した音出力開始要求（コマンド）の入力を待機する。ここで、音出力開始要求とは、ユーザによる、音出力の開始を要求するための指示である。ユーザは、入力装置１１４に対する任意の入力操作、または、ネットワーク１１６を介した任意の信号送信を通じて、音出力開始要求を入力する。入力装置１１４またはネットワーク１１６を介して入力された音出力開始要求は、Ｉ／Ｆ１１３およびバス１１７を介してＣＰＵ１０１に入力される。
【００２２】
ステップＳ１０３では、ＣＰＵ１０１のデータ処理部１０１１は、Ｓ１０２で音出力開始要求を待機した結果、音出力開始要求を取得したか（音出力開始要求が入力されたか）を判定する。なお、Ｓ１０２で音出力開始要求の入力を任意の一定時間待機後に、ステップＳ１０３へ処理が進むようにしても良い。また、ステップＳ１０２の処理を省略し、ステップＳ１０１の処理後にステップＳ１０３に進むようにしても良い。音出力開始要求が取得された場合（Ｓ１０３でＹｅｓ）、処理はＳ１０４へ進む。一方、音出力開始要求が取得されていない場合（Ｓ１０３でＮｏ）、処理はＳ１１２へ進む。
【００２３】
ステップＳ１０４では、ＣＰＵ１０１のデータ処理部１０１１は、ＲＯＭ１１１もしくは記憶装置１１２に格納されている音入力無効時間を取得する。音入力無効時間は、ステップＳ１０９で音出力が停止された後に、追加的に音入力を無効にするための時間であり、後述するＳ１１０で使用される。音入力無効時間は、一例として、ユーザによって設定および変更され、入力装置１１４よりＩ／Ｆ１１３およびバス１１７を介してＲＯＭ１１１もしくは記憶装置１１２に格納される。また、音入力無効時間は、ネットワーク１１６よりＩ／Ｆ１１３およびバス１１７を介してＲＯＭ１１１もしくは記憶装置１１２に格納されても良い。また、音入力無効追加時間は、生産時にあらかじめＲＯＭ１１１もしくは記憶装置１１２に格納されていても良い。
【００２４】
ステップＳ１０５では、ＣＰＵ１０１の入力ミュート部１０１３は、音入力を、ステップＳ１１１まで、一時的に無効にする。すなわち、入力ミュート部１０１３は、ステップＳ１０６で音出力が開始されてから、ステップＳ１０９で音出力が停止され、さらに、ステップＳ１１０で音入力無効時間が経過するまで、音入力を無効化する。具体的には、入力ミュート部１０１３は、入力部１０２とＡ／Ｄ変換部１０３を介して取得され、入力バッファ１０４に一時蓄積された音のデジタル信号を破棄し、代わりに無音の音データを作成して差し替える。また、音処理装置１００が減衰器（不図示）を有する場合は、入力ミュート部１０１３は、減衰器等を使用して音レベルを下げた音データを作成してもよい。入力ミュート部１０１３は、このような手法により、Ｓ１０５の処理開始時から行われた音入力を一時的に無効にする。
【００２５】
ステップＳ１０６では、音処理装置１００は、音出力制御を開始する。具体的には、データ処理部１０１１は、まずＳ１０１で生成された音データを再生する。データ処理部１０１１により再生された音データは、バス１１７を介して出力バッファ１０７に一時格納された後、Ｄ／Ａ変換部１０６によってデジタルデータからアナログ信号に変換され、出力部１０５より音出力される。
【００２６】
ステップＳ１０７では、ＣＰＵ１０１のデータ処理部１０１１は、入力装置１１４またはネットワーク１１６を介した音出力停止要求の入力を待機する。ここで、音出力停止要求とは、ユーザによる、音出力の停止を要求するための指示である。ユーザは、入力装置１１４に対する任意の入力操作、または、ネットワーク１１６を介した任意の信号送信を通じて、音出力停止要求を入力する。入力装置１１４またはネットワーク１１６を介して入力された音出力停止要求は、Ｉ／Ｆ１１３およびバス１１７を介してＣＰＵ１０１に入力される。
【００２７】
ステップＳ１０８では、ＣＰＵ１０１のデータ処理部１０１１は、Ｓ１０７で音出力停止要求を待機した結果、音出力停止要求を取得したか（音出力停止要求が入力されたか）を判定する。なお、Ｓ１０７で音出力停止要求の入力を任意の一定時間待機後に、Ｓ１０８へ処理が進むようにしても良い。また、ステップＳ１０７の処理を省略し、ステップＳ１０５の処理後にステップＳ１０８に進むようにしても良い。音出力停止要求が取得された場合（Ｓ１０８でＹｅｓ）、処理はＳ１０９へ進む。音出力停止要求が取得されていない場合（Ｓ１０８でＮｏ）、処理はＳ１０７に戻る。
【００２８】
ステップＳ１０９では、ＣＰＵ１０１のデータ処理部１０１１は、音出力停止要求の入力を受けて、音データの再生を停止する。これにより、出力部１０５により行われていた音出力が停止される。
【００２９】
ステップＳ１１０では、ＣＰＵ１０１のデータ処理部１０１１は、ステップＳ１０４で取得された音入力無効時間の待ち（ウェイト）を実施する。すなわち、データ処理部１０１１は、当該音入力無効時間に行われた音入力を無効にする。この処理はステップＳ１０５と同様の処理であり、入力ミュート部１０１３により行われても良い。
【００３０】
ステップＳ１１１では、ＣＰＵ１０１の入力ミュート部１０１３は、ステップＳ１０５から実施していた、音入力を無効にする処理を停止する。すなわち、ステップＳ１１１以降では、ＣＰＵ１０１のデータ処理部１０１１は、音入力に対して有効な音データを生成することが可能となる。
【００３１】
ステップＳ１１２では、ＣＰＵ１０１のデータ処理部１０１１は、音処理を継続するか否かを判断する。具体的には、データ処理部１０１１は、ユーザによる入力装置１１４に対する任意の入力操作、または、ユーザによるネットワーク１１６に対する任意の信号入力により、音処理の終了が指示されたかを判断する。音処理の終了が指示された場合（Ｓ１１２でＹｅｓ）、処理は終了し、音処理の終了が指示されていない場合（Ｓ１１２でＮｏ）、処理はＳ１０２へ戻る。
【００３２】
このように、実施形態１における音処理装置は、音出力を停止する要求を取得した場合に、音データの出力を停止した後の所定時間の間に入力される音データの生成処理を無効にする。これにより、音データの生成を無効にする期間およびタイミングを適切に設定でき、音ループを効果的に抑制することが可能となる。また、実施形態１における音処理装置は、出力部１０５と入力部１０２間の音の伝搬遅延を考慮して、音データの生成を無効にする期間およびタイミングを適切に設定でき、音エコーの発生を低減することができる。
【００３３】
［実施形態２］
本実施形態における音処理装置１００の動作を、実施形態１と異なる点について説明する。図３は、実施形態２における音処理装置１００が実行する処理のフローチャートである。
【００３４】
ステップＳ２０１〜ステップＳ２０３の処理は、図１のステップＳ１０１〜ステップＳ１０３の処理と同様であるため、ここでの説明を省略する。ステップＳ２０４では、ＣＰＵ１０１のデータ処理部１０１１は、ＲＯＭ１１１もしくは記憶装置１１２に格納されている、出力部１０５と入力部１０２間の距離情報を取得する。当該距離情報は、一例として、ユーザによって設定および変更され、入力装置１１４よりＩ／Ｆ１１３およびバス１１７を介してＲＯＭ１１１もしくは記憶装置１１２に格納される。また、当該距離情報は、ネットワーク１１６よりＩ／Ｆ１１３およびバス１１７を介してＲＯＭ１１１もしくは記憶装置１１２に格納されても良い。また、当該距離情報は、ユーザによって一度も設定および変更がなされていない場合は、生産時にあらかじめＲＯＭ１１１もしくは記憶装置１１２に格納されていても良い。
【００３５】
ステップＳ２０５では、ＣＰＵ１０１のデータ処理部１０１１は、出力部１０５と入力部１０２が設置される環境の環境温度の情報を取得する、具体的には、まず、温度センサー１０８が、環境温度のアナログデータを取得し、Ａ／Ｄ変換部１０９が、当該環境温度のアナログデータを、デジタルデータに変換する。データ処理部１０１１は、バス１１７を介して当該デジタルデータを、環境温度の情報として取得する。
【００３６】
ステップＳ２０６では、ＣＰＵ１０１の無効時間算出部１０１５は、ステップ２０４で取得した距離情報、および、ステップ２０５で取得した環境温度の情報から、音入力無効時間を算出する。音入力無効時間は、音伝搬遅延に関して、音入力を無効にするための時間であり、後述するように、ステップＳ２１７で補正された後、ステップＳ２１８で使用される。音入力無効時間 x は、一例として次式に従って算出される。
2018006871.tif 000003
ここで、r = 出力部１０５と入力部１０２間の距離、c = 音速、である。
また、空気中の音速 c は次式で表せられる。 
2018006871.tif 000004
ここで、比熱比 k = 1.403（空気）、分子量 M = 28.966E-3kg/mol（空気）、 
気体定数 R = 8.314472、絶対温度 T（K）= 273.15 + t、t = 環境温度（℃）、である。
【００３７】
なお、音入力無効時間 x の算出方法は、本実施形態の計算式および係数に限定するものではない。また、無効時間算出部１０１５は、ルックアップテーブル等を用いて音入力無効時間 x を取得しても良い。この場合、無効時間算出部１０１５による計算処理は軽減され得る。
【００３８】
ステップＳ２０７では、伝搬減衰率算出部１０１７は、ステップ２０４で取得した距離情報から、出力部１０５から出力された音が入力部１０２に到達するまでの音伝搬減衰率を算出する。音伝搬減衰率 R は、一例として次式に従って算出される。
2018006871.tif 000005
ここで、r = 出力部１０５と入力部１０２間の距離、音源指向係数 Q = 1（自由空間）、である。
【００３９】
なお、音伝搬減衰率 R の算出方法は、本実施形態の計算式および係数に限定するものではない。また、伝搬減衰率算出部１０１７は、ルックアップテーブル等を用いて音伝搬減衰率 R を取得しても良い。この場合、伝搬減衰率算出部１０１７による計算処理は軽減され得る。
【００４０】
ステップＳ２０８では、ＣＰＵ１０１のバッファ管理部１０１６は、出力バッファ１０７の使用状況を取得する。ここで、バッファの使用状況とは、例えば、バッファの使用率や遅延量である。
【００４１】
ステップＳ２０９では、ＣＰＵ１０１の無効時間算出部１０１５は、ステップＳ２０８で取得した出力バッファ１０７の使用状況に基づいて、出力バッファ１０７における出力バッファ遅延時間を算出する。ここで算出される出力バッファ遅延時間は、ステップＳ２１１において音入力の無効を開始するまで期間（入力無効開始待ち時間）である。なお、ステップＳ２０８でバッファ管理部１０１６により取得された使用状況としての遅延量が遅延時間を示す場合は、当該遅延時間を用いても良い。
【００４２】
ステップＳ２１０では、音処理装置１００は、音出力制御を開始する。具体的には、データ処理部１０１１は、まずＳ２０１で生成された音データを再生する。データ処理部１０１１により再生された音データは、バス１１７を介して出力バッファ１０７に一時格納された後、Ｄ／Ａ変換部１０６によってデジタルデータからアナログ信号に変換され、出力部１０５より音出力される。
【００４３】
ステップＳ２１１では、ＣＰＵ１０１のデータ処理部１０１１は、ステップ２０９にて算出された出力バッファ遅延時間（音入力無効開始待ち時間）の待ち（ウェイト）を実施する。すなわち、データ処理部１０１１は、当該出力バッファ遅延時間後に、入力ミュート部１０１３がステップＳ２１２の処理を行うように制御する。これにより、出力バッファ１０７に格納されているデータの出力後のタイミングで音入力のミュート期間が適切に開始される。
【００４４】
ステップＳ２１２では、ＣＰＵ１０１の入力ミュート部１０１３は、音入力を、ステップＳ２１９まで一時的に無効にする。本ステップの処理は、図１のステップＳ１０５の処理と同様である。また、ステップＳ２１３とステップＳ２１４の処理は、図１のステップＳ１０７とステップＳ１０８の処理と同様であるため、ここでの説明を省略する。
【００４５】
ステップＳ２１５では、ＣＰＵ１０１のバッファ管理部１０１６は、入力バッファ１０４の使用状況を取得する。ここで、バッファの使用状況とは、例えば、バッファの使用率や遅延量である。
【００４６】
ステップＳ２１６では、ＣＰＵ１０１の無効時間算出部１０１５は、ステップＳ２１５で取得した入力バッファ１０４の使用状況に基づいて、入力バッファ１０４における入力バッファ遅延時間を算出する。ここで算出される入力バッファ遅延時間は、ステップＳ２１９において音入力の無効を終了するまで期間（入力無効終了待ち時間）である。なお、ステップＳ２１５でバッファ管理部１０１６により取得された使用状況としての遅延量が遅延時間を示す場合は、当該遅延時間を用いても良い。
【００４７】
ステップＳ２１７では、ＣＰＵ１０１の無効時間算出部１０１５は、ステップＳ２０６で算出した音入力無効時間を必要に応じて補正する。具体的には、まず、無効時間算出部１０１５は、ステップＳ２１０にて出力された音が入力部１０２に到達する際の音の音レベルを算出する。この音レベルは、ステップ２０７において算出された音伝搬減衰率 R と、ステップＳ２１０において出力部１０５より出力された音の音レベルに基づいて、次式に従って算出される。
2018006871.tif 000006
ここで、Lin = 入力部１０２に到達する際の音のレベル、Lout = 出力部１０５より出力した音レベル、である。
【００４８】
続いて、無効時間算出部１０１５は、算出した音のレベルが所定の閾値を満たすか否かを判定する、算出した音レベルが当該所定の閾値を満たしていない場合（当該所定の閾値未満の場合）は、無効時間算出部１０１５は、ステップＳ２０６で算出した音入力無効時間を破棄する。すなわち、無効時間算出部１０１５は、音入力無効時間は無しと補正する。一方、算出した音レベルが当該所定の閾値を満たしている場合（当該所定の閾値以上の場合）は、無効時間算出部１０１５は、ステップＳ２０６で算出した音入力無効時間に対する補正を行なわない。ここで、当該所定の閾値は、一例として、無効時間算出部１０１５により、バス１１７を介してＲＯＭ１１１もしくは記憶装置１１２より取得される。また、当該所定の閾値は、ユーザが設定および変更することも可能であり、その場合、Ｉ／Ｆ１１３およびバス１１７を介してＲＯＭ１１１もしくは記憶装置１１２に格納される。また、当該所定の閾値は、ネットワーク１１６よりＩ／Ｆ１１３およびバス１１７を介してＲＯＭ１１１もしくは記憶装置１１２に格納されても良い。また、当該所定の閾値が。ユーザによって一度も設定および変更がなされていない場合は、生産時にあらかじめＲＯＭ１１１もしくは記憶装置１１２に格納されていても良い。
【００４９】
なお、入力部１０２に到達する際の音のレベル Lin の算出方法は、本実施形態の計算式および係数に限定するものではない。また、無効時間算出部１０１５は、ルックアップテーブル等を用いて、入力部１０２に到達する際の音のレベル Lin を取得しても良い。この場合、無効時間算出部１０１５による計算処理は軽減され得る。
【００５０】
ステップＳ２１８では、ＣＰＵ１０１のデータ処理部１０１１は、Ｓ２１４における音出力停止要求の入力を受けて、音データの再生を停止する。これにより、出力部１０５により行われていた音出力が停止される。
【００５１】
ステップＳ２１９では、ＣＰＵ１０１のデータ処理部１０１１は、ステップＳ２１６で算出された入力バッファ遅延時間（音入力無効終了待ち時間）の待ち（ウェイト）を実施する。すなわち、データ処理部１０１１は、ステップＳ２１８での音出力の停止の後、少なくとも当該入力バッファ遅延時間後に入力ミュート部１０１３がステップＳ２２１の処理を行うように制御する。これにより、入力バッファ１０４に格納されているデータの出力後に音入力のミュート期間が適切に終了される。
【００５２】
ステップＳ２２０では、ＣＰＵ１０１のデータ処理部１０１１は、ステップＳ２０６で算出しステップＳ２１７で補正された音入力無効時間の待ち（ウェイト）を実施する。
【００５３】
ステップＳ２２１では、ＣＰＵ１０１の入力ミュート部１０１３は、ステップＳ２１２から実施していた、音入力を無効にする処理を停止する。
【００５４】
ステップＳ２２２では、ＣＰＵ１０１のデータ処理部１０１１は、音処理を継続するか否かを判断する。具体的には、データ処理部１０１１は、ユーザによる入力装置１１４に対する任意の入力操作、または、ユーザによるネットワーク１１６に対する任意の信号入力により、音処理の終了が指示されたかを判断する。音処理の終了が指示された場合（Ｓ２２２でＹｅｓ）、処理は終了し、音処理の終了が指示されていない場合（Ｓ２２２でＮｏ）、処理はＳ２０２へ戻る。
【００５５】
このように、実施形態２における音処理装置は、音出力を停止する要求を取得した場合に、音データの出力を終了した後、可変な所定時間の間に入力される音データの生成する処理を無効にする。これにより、音データの生成を無効にする期間およびタイミングを適切に設定でき、音ループを抑制することが可能となる。また、実施形態２における音処理装置は、出力部１０５と入力部１０２間で動的に変更される音の伝搬遅延を考慮して、音データの生成を無効にする期間およびタイミングを適切に設定でき、音エコーの発生を低減することができる。なお、本実施形態では、出力バッファ１０７と入力バッファ１０４両方の使用状況に基づいて入力ミュート部の動作タイミングが制御されたが、いずれかバッファの使用状況に基づき、ミュートの開始または終了のみのタイミングが制御されても良い。
【００５６】
［実施形態３］
実施形態３として、音処理装置１００が、実施形態１、２において使用される、音入力無効時間、および、出力部１０５と入力部１０２間の距離を算出する例について説明する。図４は、実施形態３における音処理装置１００が実行する処理のフローチャートである。
【００５７】
ステップＳ３０１では、音処理装置１００は、音出力制御を開始する。具体的には、データ処理部１０１１は、音データを再生する。データ処理部１０１１により再生された音データは、バス１１７を介して出力バッファ１０７に一時格納された後、Ｄ／Ａ変換部１０６によってデジタルデータからアナログ信号に変換され、出力部１０５より音出力される。なお、本実施形態では、再生する音データは、基準となる音データであり、単波長音データ等、ステップＳ３０４にて実施される音伝搬遅延検出に適する音データであり得る。
【００５８】
ステップＳ３０２では、音処理装置１００は、音入力を開始する。具体的には、具体的には、まず入力部１０２は、入力された音（空気振動）をアナログ信号に変換する。アナログ信号は、Ａ／Ｄ変換部１０３によりデジタル信号に変換され、入力バッファ１０４に一時蓄積される。入力バッファ１０４に蓄積されたデジタル信号は、バス１１７を介してＣＰＵ１０１に入力される。ＣＰＵ１０１におけるデータ処理部１０１１は、入力されたデジタル信号から音データを生成する。
【００５９】
ステップＳ３０３では、ＣＰＵ１０１のデータ処理部１０１１は、環境温度の情報を取得する、具体的には、まず、温度センサー１０８が、環境温度のアナログデータを取得し、Ａ／Ｄ変換部１０９が、当該環境温度のアナログデータを、デジタルデータに変換する。データ処理部１０１１は、バス１１７を介して当該デジタルデータを、環境温度の情報として取得する。
【００６０】
ステップＳ３０４では、ＣＰＵ１０１の伝搬遅延検出部１０１８は、ステップＳ３０２で取得された音データに対してバンドパスフィルタを施し、環境音を排除しステップＳ３０１にて再生した音を抽出する。バンドパスフィルタは、ステップＳ３０１で再生された音の波長帯域を抽出するのに最適化したフィルタである。伝搬遅延検出部１０１８は、バンドパスフィルタを施した音と、ステップＳ３０１にて再生された音との位相差から音伝搬遅延時間を算出する。
【００６１】
次に、ＣＰＵ１０１のデータ処理部１０１１は、算出した音伝搬遅延時間とステップＳ３０３で取得した環境温度から、出力部１０５と入力部１０２間の距離を算出する。出力部１０５と入力部１０２間の距離 r は次式に従って算出される。
2018006871.tif 000007
ここで、x = 音伝搬遅延時間、c = 音速、である。
また、空気中の音速cは次式で表せられる。 
2018006871.tif 000008
ここで、比熱比 k = 1.403（空気）、分子量 M = 28.966E-3kg/mol（空気）、 
気体定数 R = 8.314472、絶対温度 T（K） = 273.15+t、t = 環境温度(℃)
、である。
【００６２】
なお、音伝搬遅延時間および出力部１０５と入力部１０２間の距離の算出方法は、本実施形態の計算式および係数に限定するものではない。また、伝搬遅延検出部１０１８やデータ処理部１０１１は、ルックアップテーブル等を用いてこれらの値を取得しても良い。この場合、計算処理は軽減され得る。
【００６３】
ステップＳ３０５では、伝搬遅延検出部１０１８とデータ処理部１０１１は、算出した音入力無効時間および出力部１０５と入力部１０２間の距離情報を格納する。具体的には、伝搬遅延検出部１０１８は、ステップＳ３０４にて算出した音伝搬遅延時間を、実施形態１にて用いる音入力無効時間として、ＲＯＭ１１１もしくは記憶装置１１２に格納する。また、データ処理部１０１１は、ステップＳ３０４にて算出した出力部１０５と入力部１０２間の距離を、実施形態２にて用いる出力部１０５と入力部１０２間の距離情報として、ＲＯＭ１１１もしくは記憶装置１１２に格納する。
【００６４】
ステップＳ３０６では、音処理装置１００は、ステップＳ３０２で開始されていた音入力および音データの生成を停止する。続いて、ステップＳ３０７では、音処理装置１００は、ステップＳ３０１で開始されていた音入力および音データの再生を停止し、処理は終了する。
【００６５】
このように、実施形態１および実施形態２において使用される、音入力無効時間および出力部１０５と入力部１０２間の距離を算出することが可能である。これにより、メモリの効率的な利用だけでなく、任意の配置構成であっても、実施形態１および実施形態２の実現が可能となる。
【００６６】
以上の実施形態によれば、音データの生成を無効にする期間およびタイミングを最適化することで、音ループ（出力した音を入力として取得する現象）を抑制することが可能になる。また、ハウリングの防止に加え、監視システムでは悲鳴検知、音量検知等の音解析の誤検出を防止することが可能となる。また、出力部１０５と入力部１０２間の音の伝搬遅延を考慮して、音データの生成を無効にする期間およびタイミングを適切に設定でき、音エコーの発生を低減することができる。また、空気中を伝搬する音速は温度によって変化する音速を考慮して、環境温度に応じた音入力のミュートの期間およびタイミングで制御することができる。
【００６７】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１００：音処理装置、１０１：ＣＰＵ（中央演算処理装置）、１０２：入力部、１０３：Ａ／Ｄ変換部 、１０４：入力バッファ、１０５：出力部、１０６：Ｄ／Ａ変換部、１０７：出力バッファ、１０８：温度センサー、１０９：Ａ／Ｄ変換部 、１１０：ＲＡＭ、１１１：ＲＯＭ、１１２：記憶装置、１１３：Ｉ／Ｆ、１１４：入力装置、１１５：表示装置、１１６：ネットワーク、１１７：バス
【図１】
2018006871.tif 000009
【図２】
2018006871.tif 000010
【図３】
2018006871.tif 000011
【図４】
2018006871.tif 000012