(57)【特許請求の範囲】
【請求項１】
アナログ音声信号を所定の周波数でサンプリングして得られた複数の離散値から構成される音声フレームに基づき音声を出力する音声出力装置であって、
前記音声フレームを記憶する複数の音声フレームバッファと、
予め定められた順番に従い、それぞれの前記音声フレームバッファに対し、前記音声フレームを転送する転送手段と、
前記順番に従い前記音声フレームバッファを選択し、選択中の前記音声フレームバッファに記憶されている前記音声フレームに基づき音声を出力する音声出力手段と、
それぞれの前記音声フレームバッファについて、前記転送手段による前記音声フレームの転送が完了したか否かを判定する判定手段と、
を備え、
前記音声出力手段は、選択中の前記音声フレームバッファに記憶されている前記音声フレームに基づく音声の出力が完了した後、前記順番に従い次に選択される他の前記音声フレームバッファについて、前記判定手段により前記転送が完了していないと判定された場合には、ダミーデータに基づき音声を出力し、前記判定手段により該転送が完了したと判定されると、該ダミーデータに基づく音声の出力を終了し、該他の音声フレームバッファを選択すること、
を特徴とする音声出力装置。
【請求項２】
請求項１に記載の音声出力装置において、
前記音声フレームバッファは、二つ備えられており、
前記転送手段は、二つの前記音声フレームバッファに対し、交互に、前記音声フレームを転送し、
前記音声出力手段は、交互に前記音声フレームバッファを選択し、選択中の前記音声フレームバッファに記憶されている前記音声フレームに基づき音声を出力すること、
を特徴とする音声出力装置。
【請求項３】
請求項１または請求項２に記載の音声出力装置において、
前記音声出力手段は、前記音声フレームを構成するそれぞれの前記離散値を順次選択すると共に、選択した前記離散値に基づき前記音声を出力し、選択中の前記音声フレームバッファに記憶されている前記音声フレームに基づく音声の出力が完了した後、次に選択される前記他の音声フレームバッファについての前記転送が完了していないと判定された場合には、該音声フレームを構成するいずれかの前記離散値を前記ダミーデータとして用いること、
を特徴とする音声出力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声データに基づき音声を出力する音声出力装置に関する。
【背景技術】
【０００２】
特許文献１には、ＰＣＭ（pulse code modulation）により、アナログ音声信号を所定の周波数でサンプリングして得られた音声フレームをサウンドデバイスに送出し、音声フレームに基づき音声を再生する情報機器が記載されている。ここで、音声フレームとは、複数の離散値から構成されており、このサウンドデバイスは、この音声フレームに基づき所定の時間、音声を再生することが可能である。また、この情報機器は、ＲＡＭに一時的に保存されている音声フレームをＤＭＡＣによりオーディオＦＩＦＯに転送する。このオーディオＦＩＦＯはバッファＡとバッファＢとから構成されており、ＤＭＡＣは、バッファＡとバッファＢに対し交互に音声フレームを転送する。そして、一方のバッファに対し音声フレームの転送が行われている間に、他方のバッファに保存されている音声フレームがサウンドデバイスに送出され、音声フレームに基づく音声が出力される。
【０００３】
特許文献１に記載の情報機器には、オーディオＦＩＦＯへの音声フレームの転送が間に合わない場合、オーディオＦＩＦＯからサウンドデバイスに送出する音声フレームが枯渇してしまうという問題点が存在する。例えば、デコードされた音声フレームをオーディオＦＩＦＯに転送する場合において、デコードにかかる時間が、オーディオＦＩＦＯを構成する一方のバッファに保存された音声フレームに基づく音声の再生時間よりも長くなってしまった場合、サウンドデバイスに送出する音声フレームが枯渇して無音期間が発生し、ユーザに違和感を与えてしまう。
【０００４】
上記問題点を解決するため、特許文献２に記載の音声復号装置では、音声フレームが枯渇した場合、直前に送出した音声フレームを、サウンドデバイスに再送出する。こうすることにより、音声フレームの枯渇による無音期間の発生を防ぐことができるため、ユーザに与える違和感を低減させることができる。
【特許文献１】特開２００５−１８２９６７号公報
【特許文献２】特開２００５−２８４０３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献２に記載の音声復号装置では、再送出した音声フレームによる再生時間が長い場合、ユーザに違和感を与えてしまう。また、特許文献２に記載の音声復号装置では、音声フレーム単位で再生が行われているため、サウンドデバイスに対し送出した音声フレームの時間分の音声が必ず再生されてしまう。したがって、音声フレームが枯渇した際に直前に送出した音声フレームを再送出すると、再送出した後に正常な音声フレームがオーディオＦＩＦＯに転送された場合であっても、音声フレームの時間分、正常でない音声が再生されてしまう。
【０００６】
本願発明は上記課題を解決するためになされたものであり、ＰＣＭにより生成された音声データに基づき音声を出力する音声出力装置において、音声データが枯渇した際に、ユーザに与える違和感をさらに低減させることが可能な音声出力装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するためになされた請求項１に記載の音声出力装置は、アナログ音声信号を所定の周波数でサンプリングして得られた複数の離散値から構成される音声フレームに基づき音声を出力する。そして、音声フレームを記憶する複数の音声フレームバッファと、予め定められた順番に従い、それぞれの音声フレームバッファに対し、音声フレームを転送する転送手段と、順番に従い音声フレームバッファを選択し、選択中の音声フレームバッファに記憶されている音声フレームに基づき音声を出力する音声出力手段と、それぞれの音声フレームバッファについて、転送手段による音声フレームの転送が完了したか否かを判定する判定手段と、を備える。また、音声出力手段は、選択中の音声フレームバッファに記憶されている音声フレームに基づく音声の出力が完了した後、順番に従い次に選択される他の音声フレームバッファについて、判定手段により転送が完了していないと判定された場合には、ダミーデータに基づき音声を出力し、判定手段により該転送が完了したと判定されると、該ダミーデータに基づく音声の出力を終了し、該他の音声フレームバッファを選択する。
【０００８】
ここで、ダミーデータとは、転送手段により音声データバッファに転送される正常な音声データを構成する離散値の代わりとなるデータである。このダミーデータは、音声の出力が行われていない離散値が音声データバッファに記憶されていない状態となる前に、音声出力手段が出力した音声に係る離散値に類似するデータであると良い。
【０００９】
こうすることにより、音声出力装置は、音声データが枯渇した場合、ダミーデータに基づく音声を出力することが可能となる。そして、ダミーデータに基づく音声の出力中に正常な音声データを取得した場合は、ダミーデータに基づく音声の出力をすぐに中止し、正常な音声データに基づき音声を出力することができる。したがって、音声データが枯渇した際に音声フレーム単位で代替となる音声データを転送し、音声を再生する場合に比べ、正常でない音声を出力する期間を短縮することが可能となり、ユーザに与える違和感をより低減させることができる。
【００１０】
また、ＰＣＭにより音声データを生成する際は、およそ数十キロＨｚのサンプリング周波数で音声のサンプリングが行われており、音声データは膨大な数の離散値から構成される。このような音声データを記憶媒体から読み出して音声を出力する場合や、圧縮された音声データをデコードして音声を出力する場合等、音声フレーム単位で音声データの転送やデコード等の処理を行ったほうが、効率よく音声を出力することができる。
【００１２】
これに対し、請求項１に記載の音声出力装置によれば、音声フレーム単位で音声データを音声フレームバッファに転送する場合であっても、音声フレームの転送が間に合わない場合に正常でない音声を出力する期間を短縮することが可能となり、ユーザに与える違和感をより低減させることができる。
【００１３】
また、一般的に、上述した音声データバッファは二つの音声フレームバッファから構成される場合が多く、音声出力装置は、以下のような構成を有していても良い。
そこで、請求項２に記載の音声出力装置では、音声フレームバッファは、二つ備えられており、転送手段は、二つの音声フレームバッファに対し、交互に、音声フレームを転送し、音声出力手段は、交互に音声フレームバッファを選択し、選択中の音声フレームバッファに記憶されている音声フレームに基づき音声を出力する。
【００１４】
こうすることにより、二つの音声フレームバッファから構成される音声データバッファを有する音声出力装置において、音声フレームの転送が間に合わない場合にユーザに与える違和感をより低減させることができる。
【００１５】
また、請求項３に記載の音声出力装置では、音声出力手段は、音声フレームを構成するそれぞれの離散値を順次選択すると共に、選択した離散値に基づき音声を出力し、選択中の音声フレームバッファに記憶されている音声フレームに基づく音声の出力が完了した後、次に選択される他の音声フレームバッファについての転送が完了していないと判定された場合には、該音声フレームを構成するいずれかの離散値をダミーデータとして用いる。
こうすることにより、音声データが枯渇した際にユーザに与える違和感を低減させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施形態について図面を用いて説明する。尚、本発明の実施の形態は、下記の実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態を採りうる。
【００１７】
［構成の説明］
図１は、音声出力装置１０の構成を示すブロック図である。音声出力装置１０は、メモリ２０と、ＤＭＡＣ３０と、バス４０と、音声出力部５０と、ＤＡＣ６０と、アンプ７０と、スピーカ８０等とから構成されている。音声出力装置１０を構成する各部位について説明する。
【００１８】
メモリ２０とは、ＲＡＭ等から構成されており、ＰＣＭにより生成された音声データが記憶されている部位である。
ＤＭＡＣ３０とは、メモリ２０に記憶されている音声データを、バス４０を介して音声フレーム単位で音声出力部５０に転送する部位である。尚、この音声フレームとは、８サンプル分の音声データから構成されている。
【００１９】
バス４０は、メモリ２０、ＤＭＡＣ３０、及び音声出力部５０等、音声出力装置１０の構成要素を互いに接続する部位である。これらの構成要素は、バス４０を介して種々のデータの通信を行う。
【００２０】
音声出力部５０とは、ＤＭＡＣ３０により転送された音声フレームを構成する音声データを、この音声フレームに係る音声データのサンプリング周期と同一の周期でＤＡＣ６０に対し送信する部位である。
【００２１】
ＤＡＣ６０とは、音声出力部５０から受信した音声データを順次アナログ電圧に変換することによりアナログ音声信号を生成し、アンプ７０に出力する部位である。
アンプ７０とは、ＤＡＣ６０から入力されたアナログ音声信号を増幅し、スピーカ８０に出力する部位である。
【００２２】
スピーカ８０は、アンプ７０から入力されたアナログ音声信号に基づき音声を出力する部位である。
次に、音声出力部５０の構成について説明する。音声出力部５０は、データ書込み部５１、音声出力制御部５２、書込みバッファ切替部５３、第一のバッファ５４ａ、第二のバッファ５４ｂ、及び出力データ制御部５５等から構成されている。
【００２３】
データ書込み部５１は、ＤＭＡＣ３０により転送される音声フレームを一時的に記憶し、記憶した音声フレームを、第一のバッファ５４ａ又は第二のバッファ５４ｂのいずれかに転送する部位である。データ書込み部５１は、音声フレームを構成する８サンプル分の音声データに対応するデータ１からデータ８というブロックから構成されている。
【００２４】
音声出力制御部５２は、第一のバッファ５４ａ及び第二のバッファ５４ｂの状況に応じて、メモリ２０からデータ書込み部５１への音声フレームの転送を開始するタイミングを制御する部位である。
【００２５】
第一のバッファ５４ａ及び第二のバッファ５４ｂは、音声フレームを記憶する部位である。第一のバッファ５４ａは、記憶する音声フレームを構成する８サンプル分の音声データに対応する８個のブロックから構成されており、各ブロックに記憶される音声データには、それぞれデータ１１からデータ１８という名前が与えられる。また、第二のバッファ５４ｂも、記憶する音声フレームを構成する８サンプル分の音声データに対応する８個のブロックから構成されており、各ブロックに記憶される音声データには、それぞれデータ２１からデータ２８という名前が与えられる。
【００２６】
出力データ制御部５５は、第一のバッファ５４ａ又は第二のバッファ５４ｂのいずれか一方を選択し、選択したバッファに記憶されている音声フレームを構成する各音声データを、この音声データのサンプリング周期と同一の周期でＤＡＣ６０に対し送信する部位である。出力データ制御部５５は、第一のバッファ５４ａを選択した場合、データ１１からデータ１８の順番で、各ブロックに対応する音声データを送信する。また、第二のバッファ５４ｂを選択した場合、データ２１からデータ２８の順番で、各ブロックに対応する音声データを送信する。
【００２７】
［動作の説明］
次に、音声出力装置１０が音声を出力する処理について説明する。音声出力装置１０は、図示しない操作部を介してユーザから音声の出力を開始する旨の操作を受け付けた際に、メモリ２０に記憶されている音声データに基づく音声を出力する処理を開始する。
【００２８】
（１）音声フレーム転送処理について
まず、メモリ２０に記憶されている音声データを、音声フレーム単位でデータ書込み部５１に転送する処理である音声フレーム転送処理について説明する。この処理は、図示しない操作部を介して、ユーザから、メモリ２０に記憶されている音声データに基づく音声の出力を開始する旨の操作を受け付けた際に開始される。
【００２９】
Ｓ１０５では、音声出力制御部５２は、ＤＭＡＣ３０に対し、メモリ２０に記憶されている音声データのうち、先頭の８サンプル分の音声データを音声フレームとしてデータ書込み部５１に転送するよう指示する。そして、Ｓ１１０に処理が移行される。
【００３０】
Ｓ１１０では、データ書込み部５１は、ＤＭＡＣ３０による音声フレームの転送が終了したか否かを判定する。ＤＭＡＣ３０による音声フレームの転送が終了していない場合（Ｓ１１０：Ｎｏ）、再度Ｓ１１０に処理が移行される。ＤＭＡＣ３０による音声フレームの転送が終了した場合（Ｓ１１０：Ｙｅｓ）、Ｓ１１５に処理が移行される。
【００３１】
Ｓ１１５では、データ書込み部５１は、転送された音声フレームを第一のバッファ５４ａに転送する。転送が終了すると、データ書込み部５１は、第一のバッファ５４ａへの音声フレームの転送が終了した旨を、音声出力制御部５２に通知する。そして、Ｓ１２０に処理が移行される。
【００３２】
Ｓ１２０では、音声出力制御部５２は、出力データ制御部５５に対し、第一のバッファ５４ａに記憶されている音声フレームを構成する音声データの、ＤＡＣ６０への送信開始を指示する。そして、Ｓ１２５に処理が移行される。
【００３３】
Ｓ１２５では、音声出力制御部５２は、ＤＭＡＣ３０に対し、メモリ２０に記憶されている未転送の音声データのうち、先頭の８サンプル分の音声データを音声フレームとしてデータ書込み部５１に転送するよう指示する。そして、Ｓ１３０に処理が移行される。
【００３４】
Ｓ１３０では、データ書込み部５１は、ＤＭＡＣ３０による音声フレームの転送が終了したか否かを判定する。ＤＭＡＣ３０による音声フレームの転送が終了していない場合（Ｓ１３０：Ｎｏ）、再度Ｓ１３０に処理が移行される。ＤＭＡＣ３０による音声フレームの転送が終了した場合（Ｓ１３０：Ｙｅｓ）、Ｓ１３５に処理が移行される。
【００３５】
Ｓ１３５では、データ書込み部５１は、転送された音声フレームを第二のバッファ５４ｂに転送する。転送が終了すると、データ書込み部５１は、第二のバッファ５４ｂへの音声フレームの転送が終了した旨を、音声出力制御部５２に通知する。そして、Ｓ１４０に処理が移行される。
【００３６】
Ｓ１４０では、音声出力制御部５２は、出力データ制御部５５に対し、第二のバッファ５４ｂを更新した旨を通知する。そして、Ｓ１４５に処理が移行される。
Ｓ１４５では、音声出力制御部５２は、第一のバッファ５４ａの音声フレームを構成する音声データの送信が終了したか否かを判定する。具体的には、前回Ｓ１１５又はＳ１６０にて音声フレームを第一のバッファ５４ａに転送した後、第一のバッファ５４ａから第二のバッファ５４ｂに切り替える旨の通知を受けた場合、第一のバッファ５４ａの音声フレームを構成する音声データの送信が終了したと判定する。第一のバッファ５４ａの音声データの送信が終了している場合（Ｓ１４５：Ｙｅｓ）、Ｓ１５０に処理が移行される。第一のバッファ５４ａの音声データの送信が終了していない場合（Ｓ１４５：Ｎｏ）、再度Ｓ１４５に処理が移行される。
【００３７】
Ｓ１５０では、音声出力制御部５２は、ＤＭＡＣ３０に対し、メモリ２０に記憶されている未転送の音声データのうち、先頭の８サンプル分の音声データを音声フレームとしてデータ書込み部５１に転送するよう指示する。そして、Ｓ１５５に処理が移行される。
【００３８】
Ｓ１５５では、データ書込み部５１は、ＤＭＡＣ３０による音声フレームの転送が終了したか否かを判定する。ＤＭＡＣ３０による音声フレームの転送が終了していない場合（Ｓ１５５：Ｎｏ）、再度Ｓ１５５に処理が移行される。ＤＭＡＣ３０による音声フレームの転送が終了した場合（Ｓ１５５：Ｙｅｓ）、Ｓ１６０に処理が移行される。
【００３９】
Ｓ１６０では、データ書込み部５１は、転送された音声フレームを第一のバッファ５４ａに転送する。転送が終了すると、データ書込み部５１は、第一のバッファ５４ａへの音声フレームの転送が終了した旨を、音声出力制御部５２に通知する。そして、Ｓ１６５に処理が移行される。
【００４０】
Ｓ１６５では、音声出力制御部５２は、出力データ制御部５５に対し、第一のバッファ５４ａを更新した旨を通知する。そして、Ｓ１７０に処理が移行される。
Ｓ１７０では、音声出力制御部５２は、第二のバッファ５４ｂの音声フレームを構成する音声データの送信が終了したか否かを判定する。具体的には、前回Ｓ１３５にて音声フレームを第二のバッファ５４ｂに転送した後、第二のバッファ５４ｂから第一のバッファ５４ａに切り替える旨の通知を受けた場合、第二のバッファ５４ｂの音声フレームを構成する音声データの送信が終了したと判定する。第二のバッファ５４ｂの音声データの送信が終了している場合（Ｓ１７０：Ｙｅｓ）、Ｓ１２５に処理が移行される。第二のバッファ５４ｂの音声データの送信が終了していない場合（Ｓ１７０：Ｎｏ）、Ｓ１７０に処理が移行される。
【００４１】
（３）音声データ送信処理について
次に、第一のバッファ５４ａ又は第二のバッファ５４ｂに記憶されている音声フレームを構成する音声データを送信する処理について説明する。以下に説明する音声データ送信処理とは、音声出力装置１０が、ＤＡＣ６０に対し、音声フレームを構成する音声データをサンプリング周波数と同一の周期にて送信する処理である。ＤＡＣ６０は、受信した音声データを順次アナログ信号に変換して出力することにより、アンプ７０に対しアナログ音声信号を出力する。そして、アンプ７０は、アナログ音声信号を増幅してスピーカ８０に出力し、スピーカ８０から音声が出力される。音声データ送信処理について、以下に説明する。この処理は、音声フレーム転送処理において、出力データ制御部５５が、音声出力制御部５２から、第一のバッファ５４ａに記憶されている音声フレームを構成する音声データの、ＤＡＣ６０への送信開始の指示を受け付けた際に開始される。
【００４２】
Ｓ２０５では、出力データ制御部５５は、第一のバッファ５４ａに記憶されている音声フレームを構成する音声データであるデータ１１からデータ１８を、この音声データのサンプリング周波数と同じ周期にて、データ１１からデータ１８の順番でＤＡＣ６０に送信する。尚、出力データ制御部５５は、本処理を開始後、既に第二のバッファ５４ｂに記憶されている音声フレームを構成する音声データの送信を行っている場合は、Ｓ２４０又はＳ２５０においてデータ２８を送信した後からサンプリング周期分の時間が経過した際に、データ１１を送信する。出力データ制御部５５がデータ１８を送信すると、Ｓ２１０に処理が移行される。
【００４３】
Ｓ２１０では、出力データ制御部５５は、第二のバッファ５４ｂが更新済であるか否かを判定する。具体的には、出力データ制御部５５は、前回第二のバッファ５４ｂの音声フレームを構成する音声データをＤＡＣ６０に送信した後、音声出力制御部５２から第二のバッファ５４ｂを更新した旨が通知された場合、第二のバッファ５４ｂは更新済であると判定する。また、本処理の開始後、最初にＳ２１０に処理が移行した場合は、音声出力制御部５２から第二のバッファ５４ｂを更新した旨が通知された場合、第二のバッファ５４ｂは更新済であると判定する。第二のバッファ５４ｂが更新済であると判定された場合（Ｓ２１０：Ｙｅｓ）、Ｓ２２０に処理が移行される。第二のバッファ５４ｂが更新済でないと判定された場合（Ｓ２１０：Ｎｏ）、Ｓ２１５に処理が移行される。
【００４４】
Ｓ２１５では、出力データ制御部５５は、前回送信した音声データ、つまり、第一のバッファ５４ａのデータ１８を、ＤＡＣ６０に送信する。この時、出力データ制御部５５は、Ｓ２０５又はＳ２１５にて前回データ１８を送信した後サンプリング周期分の時間が経過した際に、データ１８を送信する。そして、Ｓ２１０に処理が移行される。
【００４５】
Ｓ２２０では、出力データ制御部５５は、音声データの送信を行うバッファを第一のバッファ５４ａから第二のバッファ５４ｂに切り替える。そして、Ｓ２２５に処理が移行される。
【００４６】
Ｓ２２５では、出力データ制御部５５は、音声データの送信を行うバッファを第二のバッファ５４ｂに切り替えた旨を、音声出力制御部５２に通知する。そして、Ｓ２３０に処理が移行される。
【００４７】
Ｓ２３０では、出力データ制御部５５は、第二のバッファ５４ｂに記憶されている音声フレームを構成する音声データであるデータ２１からデータ２８を、この音声データのサンプリング周波数と同じ周期にて、データ２１からデータ２８の順番でＤＡＣ６０に送信する。尚、出力データ制御部５５は、Ｓ２０５又はＳ２１５においてデータ１８を送信した後からサンプリング周期分の時間が経過した際に、データ２１を送信する。出力データ制御部５５がデータ２８を送信すると、Ｓ２３５に処理が移行される。
【００４８】
Ｓ２３５では、出力データ制御部５５は、第一のバッファ５４ａが更新済であるか否かを判定する。具体的には、出力データ制御部５５は、前回第一のバッファ５４ａの音声フレームを構成する音声データをＤＡＣ６０に送信した後、音声出力制御部５２から第一のバッファ５４ａを更新した旨が通知された場合、第一のバッファ５４ａは更新済であると判定する。第一のバッファ５４ａが更新済であると判定された場合（Ｓ２３５：Ｙｅｓ）、Ｓ２４５に処理が移行される。第一のバッファ５４ａが更新済でないと判定された場合（Ｓ２３５：Ｎｏ）、Ｓ２４０に処理が移行される。
【００４９】
Ｓ２４０では、出力データ制御部５５は、前回送信した音声データ、つまり、第二のバッファ５４ｂのデータ２８を、ＤＡＣ６０に送信する。この時、出力データ制御部５５は、Ｓ２３０又はＳ２４０にて前回データ２８を送信した後サンプリング周期分の時間が経過した際に、データ２８を送信する。そして、Ｓ２３５に処理が移行される。
【００５０】
Ｓ２４５では、出力データ制御部５５は、音声データの送信を行うバッファを第二のバッファ５４ｂから第一のバッファ５４ａに切り替える。そして、Ｓ２５０に処理が移行される。
【００５１】
Ｓ２５０では、出力データ制御部５５は、音声データの送信を行うバッファを第一のバッファ５４ａに切り替えた旨を、音声出力制御部５２に通知する。そして、Ｓ２０５に処理が移行される。
【００５２】
［効果］
本実施形態の音声出力装置１０は、メモリ２０に記憶されている音声データを、音声フレーム単位で第一のバッファ５４ａ又は第二のバッファ５４ｂに転送し、この音声フレームに基づき音声を出力するという構成を有している。出力データ制御部５５は、第一のバッファ５４ａ又は第二のバッファ５４ｂの更新が間に合わない場合（Ｓ２１０：Ｎｏ、Ｓ２３５：Ｎｏ）、前回ＤＡＣ６０に送信した音声データであるデータ１８、又はデータ１８を、正常な音声データの代替として再度ＤＡＣ６０に送信する。そして、第一のバッファ５４ａ又は第二のバッファ５４ｂが更新されるまで、ＤＡＣ６０に対しデータ１８又はデータ２８の送信を継続する。したがって、例えば、音声出力装置１０において、音声の出力と並行して行われている他の処理の影響によりバス４０の通信負荷が高くなり、第一のバッファ５４ａ等への音声フレームの転送が遅延した場合に、ユーザに与える違和感を低減することができる。
【００５３】
また、従来技術では、音声フレーム単位で代替となる音声データをＤＡＣに送信しているため、音声フレームの転送の遅延が発生すると、その後に音声フレームがバッファに転送されても、直ちに代替となる音声データの転送が中止され、正常な音声データの送信が開始されなかった。図４に記載の第一のタイミングチャート３００は、従来技術において、音声フレームの転送が遅延し、遅延の発生後に正常な音声フレームがバッファに転送されたにもかかわらず、代替となる音声データがＤＡＣに送信されてしまう様子を示している。
【００５４】
一方、音声出力装置１０では、第一のバッファ５４ａ又は第二のバッファ５４ｂが更新された際は、直ちにデータ１８又はデータ２８の送信を中止し、新たに転送された音声フレームを構成する音声データをＤＡＣ６０に送信する。図４に記載の第二のタイミングチャート４００は、第一のタイミングチャートと同様のタイミングで音声出力装置１０にて音声フレームの転送の遅延が発生し、遅延の発生後に正常な音声フレームが第二のバッファ５４ｂに転送された場合に、ＤＡＣ６０に音声データが送信される様子を示している。音声出力装置１０は、音声フレームの転送の遅延が発生した場合には、遅延が発生する直前に送信した音声データをＤＡＣ６０に送信する。そして、正常な音声フレームが第二のバッファ５４ｂに転送された際は、第二のバッファ５４ｂに記憶されている音声データをＤＡＣ６０に送信する。
【００５５】
第二のタイミングチャート４００では、第一のタイミングチャート３００と比較すると、音声フレームの転送の遅延が発生した際、ＤＡＣ６０に送信される代替である音声データの数が半分となっていることがわかる。したがって、音声出力装置１０では、従来技術と比較し、音声フレームの転送の遅延が発生した際にユーザに与える違和感を大幅に低減させることが可能となることがわかる。
【００５６】
また、第一のタイミングチャート３００では、音声フレームの転送の遅延が発生した際、第一のバッファ５４ａの音声フレームの最終データであるデータ１８が送信された後、第一のバッファ５４ａの音声フレームの先頭データであるデータ１１が送信されている。この音声フレームはＰＣＭにより生成されており、隣り合う音声データは互いに似た値であることが予想されるが、データ１８とデータ１１は似た値ではない可能性がある。したがって、データ１８に基づき音声を出力した後にデータ１１に基づき音声を出力すると、ユーザに違和感を与えてしまう可能性がある。一方、音声出力装置１０は、第一のバッファ５４ａ又は第二のバッファ５４ｂの音声フレームの更新が間に合わない場合、前回ＤＡＣ６０に送信した音声データであるデータ１８に基づき音声を出力している。したがって、音声出力装置１０を用いることにより、ユーザに与える違和感をより低減させることが可能となる。
【００５７】
［他の実施形態］
（１）本実施形態の音声出力装置１０は、第一のバッファ５４ａ又は第二のバッファ５４ｂの音声フレームの更新が間に合わない場合に、前回ＤＡＣ６０に送信した音声データであるデータ１８又はデータ２８を再度送信している。しかし、音声出力装置１０は、前々回にＤＡＣ６０に送信した音声データであるデータ１７又はデータ２７や、更にその前に送信したデータ１６又はデータ２６等を、再度ＤＡＣ６０に送信しても良い。このような音声データであれば、新たに第一のバッファ５４ａ又は第二のバッファ５４ｂに転送される音声フレームを構成する音声データと似た値であることが予想される。したがって、ユーザに与える違和感を低減させることが可能である。
【００５８】
（２）本実施形態の音声出力装置１０は、第一のバッファ５４ａ及び第二のバッファ５４ｂという二つのバッファを交互に選択し、これらのバッファに記憶されている音声フレームに基づき音声を出力している。しかし、音声出力装置１０は、三つ以上のバッファを有し、これらのバッファを順番に選択し、これらのバッファに記憶されている音声フレームに基づき音声を出力しても良い。このような構成を有する場合であっても、バッファの更新が間に合わない場合に、前回ＤＡＣ６０に送信した音声データを再度送信することにより、バッファへの音声フレームの転送が間に合わない場合にユーザに与える違和感を低減させることが可能である。
【００５９】
（３）本実施形態の音声出力装置１０では、８サンプル分の音声データから構成される音声フレームをメモリ２０からデータ書込み部５１に転送しているが、この音声フレームを構成する音声データのサンプル数は、８以外の数であっても良い。このような音声フレームを用いた場合であっても、同様の効果を得ることができる。尚、データ書込み部５１、第一のバッファ５４ａ、及び第二のバッファ５４ｂを構成するブロック数は、音声フレームを構成する音声データのサンプル数と同一の数とする必要がある。したがって、サンプル数を変更する場合は、データ書込み部５１、第一のバッファ５４ａ、及び第二のバッファ５４ｂを構成するブロック数も変更する必要がある。
【００６０】
（４）本実施形態の音声出力装置１０では、８サンプル分の音声データから構成される音声フレーム単位で、メモリ２０から第一のバッファ５４ａ及び第二のバッファ５４ｂへ音声データを転送している。しかし、音声データ毎に、メモリ２０から第一のバッファ５４ａ及び第二のバッファ５４ｂへの転送を行っても良い。このような構成を有する場合であっても、同様の効果を得ることができる。
【００６１】
［特許請求の範囲との対応］
上記実施形態の説明で用いた用語と、特許請求の範囲の記載に用いた用語との対応を示す。
【００６２】
第一のバッファ５４ａ及び第二のバッファ５４ｂは音声データバッファに、第一のバッファ５４ａと、第二のバッファ５４ｂとは、それぞれ音声フレームバッファに相当する。
また、第一のバッファ５４ａに記憶される音声フレームのデータ１１からデータ１８と、第二のバッファ５４ｂに記憶される音声フレームのデータ２１からデータ２８は、それぞれ離散値に相当する。
【００６３】
また、データ書込み部５１は転送手段に、出力データ制御部５５、ＤＡＣ６０、アンプ７０、及びスピーカ８０は、音声出力手段に相当する。
また、音声データのサンプリング周期が所定のタイミングに、第一のバッファ５４ａ又は第二のバッファ５４ｂに記憶される音声フレームのデータ１８及びデータ２８が、ダミーデータに相当する。
【図面の簡単な説明】
【００６４】
【図１】音声出力装置１０の構成を示すブロック図である。
【図２】音声フレーム転送処理のフローチャートである。
【図３】音声データ送信処理のフローチャートである。
【図４】ＤＡＣ６０に対し音声データが送信されるタイミングを説明するためのタイミングチャートである。
【符号の説明】
【００６５】
１０…音声出力装置、２０…メモリ、３０…ＤＭＡＣ、４０…バス、５０…音声出力部、５１…データ書込み部、５２…音声出力制御部、５３…書込みバッファ切替部、５４ａ…第一のバッファ、５４ｂ…第二のバッファ、５５…出力データ制御部、６０…ＤＡＣ、７０…アンプ、８０…スピーカ。
【図１】
0005119933.tif 000002
【図２】
0005119933.tif 000003
【図３】
0005119933.tif 000004
【図４】
0005119933.tif 000005