(57)【特許請求の範囲】
【請求項１】
音声データファイルの編集装置において、
録音に関連したデータを記憶するデータヘッダと、
一定のデータサイズからなる複数のセクタを有し、
更に、各セクタは、符号化された音声データの記録情報からなるセクタヘッダを有する音声データファイルを作成する音声データファイル作成手段と、
前記音声データファイルを複数のデータを１単位としたブロック単位で管理するとともに、各ブロックの先頭から現在のブロックまでの録音時間を管理する情報を記憶する音声データファイル管理テーブルを作成する音声データファイル管理テーブル作成手段と、
前記音声データファイルの編集位置を指示する編集位置指示手段と、
上記編集位置を含むデータブロックのうち該データブロックの先頭から上記編集位置までの音声データか、または上記編集位置より該データブロックの終端までの音声データのうちの少なくとも一方を含み、上記音声データファイルとは別の一時的な音声データファイルを一時ファイルとして作成する一時ファイル作成手段と、
前記一時ファイルの音声データをブロック単位で管理するとともに、前記一時ファイルのブロック数と、各ブロックの先頭からブロック録音時間を管理する情報を記憶する一時ファイル管理テーブルを作成する一時ファイル管理テーブル作成手段と、
を有し、
前記音声データファイル管理テーブルは、編集時の編集位置のブロックに対応して作成された前記一時ファイルの一時ファイル管理テーブルへリンクするリンク情報を記憶し、
前記一時ファイル管理テーブルは、編集位置のブロックのリンク情報として前記音声データファイル管理テーブルへのリンク情報を記憶することを特徴とする編集装置。
【請求項２】
前記音声データファイル管理テーブル及び一時ファイル管理テーブルは、編集に伴って編集開始位置ブロック以降のブロックのブロック録音時間を加算してテーブルデータを更新することを特徴とする請求候１記載の編集装置。
【請求項３】
音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
録音に関連したデータを記憶するデータヘッダと、
一定のデータサイズからなる複数のセクタを有し、
更に、各セクタは、符号化された音声データの記録情報からなるセクタヘッダを有する音声データファイルを作成する音声データファイル作成処理と、
前記音声データファイルを複数のデータを１単位としたブロック単位で管理するとともに、各ブロックの先頭から現在のブロックまでの録音時間を管理する情報を記憶する音声データファイル管理テーブルを作成する音声データファイル管理テーブル作成処理と、
編集位置指示手段によって前記音声データファイルの編集位置が指示されたときに、
上記編集位置を含むデータブロックのうち該データブロックの先頭から上記編集位置までの音声データか、または上記編集位置より該データブロックの終端までの音声データのうちの少なくとも一方を含み、上記音声データファイルとは別の一時的な音声データファイルを一時ファイルとして作成する一時ファイル作成処理と、
前記一時ファイルの音声データをブロック単位で管理するとともに、前記一時ファイルのブロック数と、各ブロックの先頭からブロック録音時間を管理する情報を記憶する一時ファイル管理テーブルを作成する一時ファイル管理テーブル作成処理と、
を有し、
前記音声データファイル管理テーブルは、編集時の編集位置のブロックに対応して作成された前記一時ファイルの一時ファイル管理テーブルへリンクするリンク情報を記憶し、
前記一時ファイル管理テーブルは、編集位置のブロックのリンク情報として前記音声データファイル管理テーブルへのリンク情報を記憶することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は編集装置及び編集プログラムを格納した記録媒体に関するものである。
【０００２】
【従来の技術】
近年、パソコンがマルチメディア化されることにより、パソコン本体にＡ／ＤおよびＤ／Ａ変換ボードが搭載されるようになり、マイク入力やライン入力、ライン出力等の入出力端子、スピーカーが搭載されるようになった。そこで、この入力端子に入力デバイスを接続する事により、例えば、マイク端子にマイクを接続する事で、簡単にマイクから入力した音声をハードディスク上にファイルとして記録する事が可能になり、記録された音声データは簡単なユーザーインターフェースでデータの一部を削除したり、指定した位置から音声データを挿入したりといった編集作業が出来るようになった。
【０００３】
【発明が解決しようとする課題】
しかし、マイク入力端子やライン入力端子から入力されたアナログ信号はＡ／Ｄ変換器によってディジタル信号に変換され、ＰＣＭデータとしてハードディスクに記録しているため、ハードディスクに長時間のデータを記録すると非常に膨大なファイルサイズになってしまい、編集操作を行うと、編集処理に膨大な時間がかかり、使い勝手が非常に悪くなってしまうという問題があった。
【０００４】
本発明はこのような課題に着目してなされたものであり、その目的とするところは、入力デバイスにより長時間記録した音声データに対しても一部のデータを削除したり、指定した位置から挿入記録したり上書き記録したりする編集作業をスムーズに行うことが可能な編集装置及び編集プログラムを格納した記録媒体を提供することにある。
【０００５】
【課題を解決するための手段】
上記の目的を達成するために、本発明の第１の態様に係る録音装置は、音声データファイルの編集装置において、録音に関連したデータを記憶するデータヘッダと、一定のデータサイズからなる複数のセクタを有し、更に、各セクタは、符号化された音声データの記録情報からなるセクタヘッダを有する音声データファイルを作成する音声データファイル作成手段と、前記音声データファイルを複数のデータを１単位としたブロック単位で管理するとともに、各ブロックの先頭から現在のブロックまでの録音時間を管理する情報を記憶する音声データファイル管理テーブルを作成する音声データファイル管理テーブル作成手段と、前記音声データファイルの編集位置を指示する編集位置指示手段と、上記編集位置を含むデータブロックのうち該データブロックの先頭から上記編集位置までの音声データか、または上記編集位置より該データブロックの終端までの音声データのうちの少なくとも一方を含み、上記音声データファイルとは別の一時的な音声データファイルを一時ファイルとして作成する一時ファイル作成手段と、前記一時ファイルの音声データをブロック単位で管理するとともに、前記一時ファイルのブロック数と、各ブロックの先頭からブロック録音時間を管理する情報を記憶する一時ファイル管理テーブルを作成する一時ファイル管理テーブル作成手段と、を有し、前記音声データファイル管理テーブルは、編集時の編集位置のブロックに対応して作成された前記一時ファイルの一時ファイル管理テーブルへリンクするリンク情報を記憶し、前記一時ファイル管理テーブルは、編集位置のブロックのリンク情報として前記音声データファイル管理テーブルへのリンク情報を記録する。
【０００６】
また、本発明の第２の態様に係る録音装置は、本発明の第１の態様に係る録音装置において、前記音声データファイル管理テーブル及び一時ファイル管理テーブルは、編集に伴って編集開始位置ブロック以降のブロックのブロック録音時間を加算してテーブルデータを更新する。
【０００７】
また、本発明の第３の態様は、音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、前記編集処理は、録音に関連したデータを記憶するデータヘッダと、一定のデータサイズからなる複数のセクタを有し、更に、各セクタは、符号化された音声データの記録情報からなるセクタヘッダを有する音声データファイルを作成する音声データファイル作成処理と、前記音声データファイルを複数のデータを１単位としたブロック単位で管理するとともに、各ブロックの先頭から現在のブロックまでの録音時間を管理する情報を記憶する音声データファイル管理テーブルを作成する音声データファイル管理テーブル作成処理と、編集位置指示手段によって前記音声データファイルの編集位置が指示されたときに、上記編集位置を含むデータブロックのうち該データブロックの先頭から上記編集位置までの音声データか、または上記編集位置より該データブロックの終端までの音声データのうちの少なくとも一方を含み、上記音声データファイルとは別の一時的な音声データファイルを一時ファイルとして作成する一時ファイル作成処理と、前記一時ファイルの音声データをブロック単位で管理するとともに、前記一時ファイルのブロック数と、各ブロックの先頭からブロック録音時間を管理する情報を記憶する一時ファイル管理テーブルを作成する一時ファイル管理テーブル作成処理と、を有し、前記音声データファイル管理テーブルは、編集時の編集位置のブロックに対応して作成された前記一時ファイルの一時ファイル管理テーブルへリンクするリンク情報を記憶し、前記一時ファイル管理テーブルは、編集位置のブロックのリンク情報として前記音声データファイル管理テーブルへのリンク情報を記憶する。
【０００９】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態を詳細に説明する。
【００１０】
図１は、本発明の一実施形態に係る編集装置を適用した音声記録編集システムの全体構成図である。
【００１１】
この音声記録編集システムは、主に、音声記録再生装置１９と、パーソナルコンピュータ（以下、パソコンという）３０本体とから構成される。
【００１２】
音声記録再生装置１９は、音声データを圧縮して記録媒体に記録したり圧縮した音声データをパソコン３０に転送するためのもので、マイクロホン１より得られるアナログ信号を、増幅器（ＡＭＰ）２により増幅し、低減通過フィルタ（ＬＰＦ）３を通した後、ＣＯＤＥＣ４によってディジタル信号に変換して、ＤＳＰ５に入力する。
【００１３】
このＤＳＰ５は、録音動作時には音声データを圧縮し、また再生動作時には音声データを伸長する。ここでの音声の圧縮方式としては例えば、ハイブリッド符号化で携帯電話に採用されているＣＥＬＰ（Code Excited Linear Prediction）符号化を用いる。この圧縮方式は波形符号化であるＡＤＰＣＭやスペクトル符号化方式であっても良い。本実施形態で用いるＣＥＬＰ符号化方式はサンプリング周波数を１２ＫＨｚ、解析フレーム長を２４ｍｓ、１フレーム毎の符号化データのビットストリームを４１バイトとする。
【００１４】
ＤＳＰ５は２４ｍｓ毎に符号化した４１バイトデータを主制御回路であるＣＰＵ６に渡すと、ＣＰＵ６は受け取ったデータを記録媒体（ＦＭ）７に記録する。記録媒体７に記録された音声データはＣＰＵ６によって読み出された後、ＤＳＰ５で音声データに伸張され、ＣＯＤＥＣ４によってＤ／Ａ変換された後、ローパスフィルタ８（ＬＰＦ）を通って増幅器（ＡＭＰ）９で増幅されてスピーカー１０に出力される。
【００１５】
インターフェース回路（ＩＦ）１８はパソコン３０と通信するためのインターフェース回路で、例えば、ＵＳＢインターフェース回路で構成される。また、表示装置（ＬＣＤ）１１は現在の状態を表示する表示装置である。操作ボタンとしては録音ボタン（ＲＥＣ）１３、ストップボタン（ＳＴ）１４、再生ボタン（ＰＬ）１５、早戻しボタン（ＲＥＷ）１６、早送りボタン（ＦＦ）１７があり、これらのボタンのうち特定のボタンが操作されるとインターフェース回路１２を通じてどのボタンが押されたかがＣＰＵ６に通知される。
【００１６】
パソコン３０本体は、主制御回路としてのＣＰＵ２１、ＲＡＭ２２（Random Access Memory）、ハードディスク記録媒体（ＨＤ）２３、インターフェース回路２０，２４，２６，２８等から構成される。ユーザーがマウス（ＭＳ）２７やキーボード（ＫＢ）２５を操作することによりその状況を表示装置２９上に表示する。
【００１７】
ハードディスク記録媒体２３にはオペレーティングシステム（ＯＳ）と、音声記録再生装置１９より転送されてくる音声データをファイルに記録したり、既に記録されている音声データを編集するための後述する音声データ編集プログラムと、パソコン３０と音声記録再生装置１９とがデータ通信するための通信ドライバーと、音声記録再生装置１９が接続されたことを検出するデバイス検出プログラムとがインストールされている。
【００１８】
インターフェース回路２０は音声記録再生装置１９と通信を行うためのインターフェース回路で、例えば、ＵＳＢインターフェース回路で構成される。また、オーディオインターフェース回路２８は、Ａ／Ｄ変換およびＤ／Ａ変換を行うオーディオ回路であり、ハードディスク記録媒体２３に記録されている音声データをＣＰＵ２１で伸張し、Ｄ／Ａ変換し、信号を増幅してスピーカー１３１に出力する。
【００１９】
図２は、ハードディスク記録媒体２３に記録されている音声データ編集プログラム１３０により表示される表示画面を示している。この音声データ編集プログラム１３０による表示画面は主に、ツールバーボタン３１〜３４と操作ボタン３５〜４０と現在位置インジケーター４１と音量調節スライダー４２と上書き／挿入切り替えコントロール４３とで構成される。
【００２０】
ユーザーは、この画面のボタン等をマウス２７やキーボード２５で操作して音声記録再生装置１９からの音声データをハードディスク記録媒体２３に記録したり、記録した音声データを編集したりする事ができる。
【００２１】
次に、図２の音声データ編集プログラム１３０により表示される表示画面を操作して、音声記録再生装置１９からの音声データをハードディスク記録媒体２３に記録する動作について説明する。
【００２２】
ハードディスク記録媒体２３には音声データ編集プログラム１３０とは別に音声記録再生装置１９がパソコン３０に接続された事を検出して音声データ編集プログラム１３０を起動するためのデバイス検出プログラムがインストールされている。このプログラムは常駐プログラムであり、パソコン３０にインストールされているＯＳの起動直後に起動される。操作者がインターフェース回路１８、インターフェース回路２０間を接続ケーブルで接続すると、ＯＳにより、ＵＳＢデバイスが接続された事を示すイベントがデバイス検出プログラムに通知される。
【００２３】
一方、音声記録再生装置１９はインターフェース回路１８よりパソコン３０に接続された事を示す信号をＣＰＵ６に出力する。ＣＰＵ６はこの信号を受け取るとパソコン３０との通信モード状態に入り、表示装置１１に“ＲＥＭＯＴＥ”を図３（Ａ）に示すように表示する。
【００２４】
上記デバイス検出プログラムは上記通信ドライバーを介してインターフェース回路２０、インターフェース回路１８を通じて音声記録再生装置１９のＩＤ情報を取得する。取得したＩＤが音声記録再生装置１９のＩＤであると判定すると、音声データ編集プログラム１３０を起動し、表示装置２９上に音声データ編集プログラム１３０の画面が表示される。
【００２５】
図４は音声データの新規録音の動作を説明するためのフローチャートである。表示画面中の録音ボタン３５がマウス２７でクリックされると、ステップＳ１において、まず、カウンターやバッファーがクリア（初期化）され、新しく音声ファイルが作成される。ファイル名はプログラムによって自動的に生成された名前が付けられ、拡張子は“dss”という拡張子が付けられる（以降dssファイルと呼ぶ）。
【００２６】
このdssファイルの構造は図５の４０に示すように、先頭に１セクター（５１２バイト）分のヘッダー領域があり、このヘッダー領域には図５の４０Ａに示すように、録音日時や録音終了日時、ファイルの優先度等様々なエントリーが存在する。
【００２７】
図５の４０に示すように音声データはヘッダー以降から記録される。音声データはセクター単位に管理されており、各セクターの音声データにはセクターヘッダー（ＳＨ）として４０Ｂがあり、２バイトで構成される。最初の１バイトはそのセクターに記録されている符号化データのフレーム数を記録するフレーム数のエントリーであり、次の１バイトは最初のフレームデータの最初のデータが記録されている位置へのオフセット値をバイナリーデータで記録するオフセットエントリーである。
【００２８】
例えば、図４０Ｃは符号化データが記録されているバイト毎のデータ列（バイトＮＯ．２〜ＮＯ．５１１）を示しており、Ｄｎ−ｍのｎは０から始まるｎフレーム目を表し、ｍは０から始まる符号化データのｍバイト目のデータを表している。例えばＤ10-38〜Ｄ10-40は前のセクターの最後のフレームの符号化データの３８から４０バイト目のデータを表し、このデータをセクターバウンダリデータと呼ぶ。なお、バイトＮＯ．０と１は４０Ｂのセクターヘッダーとなる。
【００２９】
従って、Ｄ0-0がこのセクターの先頭データであり、オフセットエントリーには３が記録される。そこで、ステップＳ１において新規作成したdssファイルに４０Ａに示すヘッダー情報を記録する。各エントリーのデータはデフォルトのデータがセットされ、録音開始日、録音開始時間のエントリーには現在パソコン３０にセットされている日付と時間が記録される。
【００３０】
そして、新規作成されたdssファイルとは別に、新たにnew.tmpというテンポラリファイルを作成する。このテンポラリファイルは音声記録再生装置１９から受信した符号化データを４０に示す音声データ領域のデータとして記録するためのものである。
【００３１】
ファイルの作成に成功すると、ステップＳ２に進み、ＣＰＵ２１は通信ドライバーを介し、インターフェース回路２０、インターフェース回路１８を通じて音声データ取得コマンドを発行する。音声記録再生装置１９のＣＰＵ６はこのコマンドを受け取ると、ＤＳＰ５に音声圧縮開始のコマンドを発行し、ＤＳＰ５は音声圧縮処理を開始し、２４ｍｓ毎に符号化した４１バイトデータをＣＰＵ６に送信する。
【００３２】
一方、パソコン３０では、通信ドライバーが定期的にＣＰＵ６から符号化データを受信し、ＲＡＭ２２上に割り当てたバッファー（ReceiveBuffer）に記録すると同時に、音声データ編集プログラム１３０に符号化データを受信した事を通知する。ステップＳ３において音声データ編集プログラム１３０がこの通知を受け取るとステップＳ４に進み、ステップＳ３でReceiveBufferが記録したデータをＲＡＭ２２上に割り当てたバッファー（SectorBuffer）にコピーする。
【００３３】
このバッファー（SectorBuffer）は先頭の２バイト分を図５の４０Ｂに示すセクターヘッダー領域（SectorHeader）とし、上記セクターバウンダリデータの次の位置から続けてコピーして行き、以前にコピーされた符号化データがあればその次の位置からコピーを行う。
【００３４】
ステップＳ５においてSectorBufferにコピーされた符号化データが５１２バイトを越えたかどうかを判断し、越えた場合にはステップＳ６に進み、そうでない場合はステップＳ８に進む。ステップＳ６では、SectorBufferにコピーされた符号化データのフレーム数とセクターバウンダリのバイト数をSectorHeaderに記録し、SectorBufferの５１２バイト分のデータをテンポラリファイルnew.tmpに記録する。
【００３５】
そして、５１２バイトを越えたセクターバウンダリデータについてはSectorBufferのSectorHeader領域の次の位置からコピーする。次にステップＳ７に進みカウンターｉをインクリメントする。ステップＳ８に進み、ＲＡＭ２２上に割り当てられた変数TimeDetaに受信した符号化データのフレーム長２４ｍｓを加算して受信した符号化データの録音時間を更新する。
【００３６】
次に、ステップＳ９においてステップＳ７のカウンターｉが５００かどうかを判断し、５００であればステップＳ１０に進み、そうでない場合はステップＳ１２に進む。ステップＳ１０ではテンポラリファイルnew.tmpのデータを管理するための管理テーブル（ManagementTable）がＲＡＭ２２上に作成される。既に作成されていた場合は、末尾に追加される。
【００３７】
この管理テーブルは５００セクターを１ブロックとし、ブロック毎の録音時間をデーターベース化してテンポラリファイルを管理する。この管理テーブルの構造を図６に示す。図６においてNumOfBlockはテンポラリファイルnew.tmpのブロック数を登録するエントリーである。lpSMTableはこの管理テーブルにリンクしているリンク元の管理テーブルへのポインタを記憶するエントリーであり、テンポラリファイルnew.tmpの場合はＮＵＬＬがセットされる。EditBlockNumberは最後に編集のあったブロックの０から始まるブロック番号を記憶するエントリーである。BlockTimeData[0]〜BlockTimeData[n-1]は先頭から各ブロックまでの録音時間を記憶するエントリーである。lpLMTable[0]〜lpLMTable[n-1]は各ブロックがリンクしている管理テーブルへのポインタを記憶するエントリーで、初期値はＮＵＬＬが格納される。
【００３８】
そこで、管理テーブルがＲＡＭ２２上に作成されていなかった場合は、図６におけるNumOfBlockエントリーと、lpSMTableエントリーと、EditBlockNumberエントリーと、BlockTimeData[0]エントリーと、lpLMTable[0]エントリーが作成され、NumOfBlockは１が、lpSMTableはＮＵＬＬが、EditBlockNumberは０が、BlockTimeData[0]はステップＳ８で更新されたTimeDeta変数の値が、lpLMTable[0]はＮＵＬＬがそれぞれセットされる。
【００３９】
一方、管理テーブルがすでに作成されていた場合は、現在、NumOfBlockエントリーの値がｎであるとするとｎ＋１をセットし、BlockTimeData[n-1]とlpLMTable[n-1]の次にBlockTimeData[n], lpLMTable[n]をそれぞれ追加し、BlockTimeData[n]はTimeData変数の値をセットし、lpLMTable[n]にはＮＵＬＬをセットする。ステップＳ１１に進みカウンタｉをクリアする。
【００４０】
そして、ステップＳ１２において音声データ編集プログラム１３０のストップボタン３７が押されたかどうかを確認し、押されていた場合はステップＳ１３に進み、押されていなかった場合はステップＳ３に戻り上記処理を繰り返す。ステップＳ１３では、まず、カウンタｉの値を確認し、０である場合は既に管理テーブルが更新済みであると判定してステップＳ１４に進む。０でない場合は上記ステップＳ１０と同様の処理を行い管理テーブルの新規作成あるいは更新を行う。
【００４１】
ステップＳ１４において符号化データ受信の処理を停止するために音声記録再生装置１９に対して停止(Stop)コマンドを送信する。この停止コマンドは通信ドライバーを介して、ＵＳＢインターフェース回路２０、ＵＳＢインターフェース回路１８を通じて音声記録再生装置１９のＣＰＵ６に送られる。ＣＰＵ６はこの停止コマンドを受信するとＤＳＰ５に対して現在の符号化処理停止のコマンドを送信し、ＤＳＰ５は符号化処理を停止する。そして、この音声データ新規録音処理から抜け出す。
【００４２】
以下に上記したテンポラリファイルの作成の具体例を図３（Ｂ）〜図３（Ｅ）を参照して説明する。図において番号はブロック番号を示すものとする。例えば通常録音の場合にはまず図３（Ｂ）に示すようなnew.tmpという名前のテンポラリファイルが作成される。次に１００で示す位置に挿入録音をすると図３（Ｃ）に示すような4.tmpという名前のテンポラリファイルが新たに作成される。さらにこのテンポラリファイルの１０１で示す位置に挿入録音すると図３（Ｄ）に示すような4.2.tmpという名前のテンポラリファイルが新たに作成される。
【００４３】
図３（Ｅ）は作成された３つのテンポラリファイルのリンク関係を示している。ファイル4.tmpはリンク元のファイルnew.tmpのブロック４の１００で示す位置にリンクされ、ファイル4.2.tmpはリンク元のファイル4.tmpのブロック２の１０１で示す位置にリンクされる。言い換えると、ファイルnew.tmpのブロック４のリンク先はファイル4.tmpであり、ファイル4.tmpのブロック２のリンク先はファイル4.2.tmpということになる。
【００４４】
上記３つのテンポラリファイルは録音あるいは編集等を終えて保存されるときに１つのファイルにまとめられ、同時にファイルヘッダーが作成されて保存される。
【００４５】
次に、図１０のフローチャートを用いて、新規録音したファイルの一部のデータを削除する、部分消去編集の処理について説明する。まず、図２における音声データ編集プログラム１３０で既に新規録音処理が行われ、図７と図８に示すテンポラリファイルnew.tmpと、その管理テーブルが作成されているものとする。また、編集処理を行うに際して必要となる図９に示すグローバル変数４２がＲＡＭ２２上に割り当てられている。
【００４６】
音声編集プログラム１３０により部分消去編集を行うには、図２の現在位置インジケーター４１と、部分消去開始ボタン３３と、部分消去実行ボタン３４とを使用する。マウス（ＭＳ）２７を使用して現在位置インジケーター４１を部分消去する位置（Edit Start）まで移動させた後、部分消去開始ボタン３３を押す。これによって部分消去の開始位置が設定される。
【００４７】
この状態で再びマウス（ＭＳ）２７を使用して現在位置インジケーター４１を所望の消去終了位置（EditEnd）まで移動させると、上記部分消去の開始位置から現在位置インジケーター４１の現在位置までの区間が反転表示され、この反転表示された区間が部分消去の対象となる。したがって部分消去の終了位置まで現在位置インジケーター４１を移動させて反転表示させた後、部分消去実行釦３４を押すと、当該反転表示の区間の消去が実行される。部分消去実行釦３４を押すと、ステップＳ２０において、まず、ステップＳ２１の消去開始位置ブロック検索処理を行うための入力パラメータのセットを行う。
【００４８】
入力パラメータとしては部分消去開始点の時間と、テンポラリファイルnew.tmpの管理テーブルのポインタをセットする。そして、ステップＳ２１の処理を実行する事で、指定の部分消去開始点の管理テーブルのポインタと、新規作成するテンポラリファイルのファイル名と、編集開始点のブロックのブロック番号と、編集開始点ブロックの一つ前のブロックの録音時間データがグローバル変数の４２ａ〜４２ｄにセットされる。
【００４９】
以下にステップＳ２１の処理の詳細を図１１のフローチャートを用いて説明する。この処理へは入力パラメーターとして、編集位置の時間と、管理テーブルへのポインタが渡される。これらのパラメーターはステップＳ５０において変数EditTimeにセットされ、ステップＳ５１において管理テーブルのポインタがグローバル変数４２ａ（lpEditStartTable）あるいは４２ｅ（lpEditEndTable）にセットされる。lpEditStartTableにセットされるのは、編集点が部分消去開始点や挿入録音開始点の場合で、lpEditEndTableにセットされるのは部分消去終了点の場合である。
【００５０】
次に進みステップＳ５２においてブロック番号をカウンタとするカウンタｉをクリアする。次のステップＳ５３では、ブロックの録音時間BlockTimeData[i]と編集位置の時間EditTimeとを比較し、BlockTimeData[i]が大きい場合は、ステップＳ５４に進み、そうでない場合はステップＳ６４に進む。ステップＳ５４では、現在読み出し用にセットされている管理テーブルのEditBlockNumberメンバーにｉをセットする。次にステップＳ５５に進み、同じ管理テーブルのリンク先ブロックlpLMTable[i]にリンク先があるかどうかを確認する。
【００５１】
リンク先がある場合はステップＳ６１に進み、無い場合はステップＳ５６に進む。ここで、リンク先が無かった場合のステップＳ５６で、編集位置の指定が開始点か終了点かによってセットするグローバル変数４２を変える。開始点の場合はステップＳ５７に進み、終了点の場合はステップＳ５９に進む。ステップＳ５７ではグローバル変数４２ｃ（StartBlockNum）にｉをセットし、ステップＳ５９では４２ｇ（EndBlockNum）にｉをセットする。
【００５２】
次にステップＳ５８およびステップＳ６０では、リンク先のファイル名をそれぞれグローバル変数４２ｂ（EditStartName）、４２ｆ（EditEndName）にセットする。ファイル名の生成は、現在、EditStartNameあるいはEditEndNameに何も文字が入っていなければ、カウンタｉを文字列に変換し、拡張子“.tmp”を付ける。例えばｉが１であればファイル名は“１.tmp”となる。既に文字が入っている場合は、ｉを文字列に変換し、“．”で結合し、更に拡張子“.tmp”を付けてファイル名を生成する。
【００５３】
例えば、EditStartNameあるいはEditEndNameに文字“１．３”が入っていたとし、ｉが２であればファイル名は“１．３．２.tmp”というファイル名になる。そして、この処理から抜け出る。上記ステップＳ５５においてリンク先テーブルがある場合は、ステップＳ６１においてリンク先のファイル名を作成する。このファイル名の作成方法はステップＳ５８およびステップＳ６０の生成と全く同じ方法で行う。
【００５４】
次に、リンク先のブロックを検索するために、ステップＳ６３で自分自身の処理を実行する。この処理を実行する前にステップＳ６２において、入力パラメーターのセットを行う。編集点としては、現在EditTimeにセットされている編集時間をセットし、管理テーブルのポインタとしてはグローバル変数４２のlpEditStartTableかlpEditEndTableの変数をセットする。
【００５５】
lpEditStartTableをセットする場合は編集点が部分消去開始点や挿入録音開始点の場合で、lpEditEndTableにセットされるのは部分消去終了点の場合である。入力パラメーターがセットされると、ステップＳ６３に進み、自分自身の処理をステップＳ５０から実行する。実行が終了し、処理から抜け出ると、ステップＳ６３の処理が終了し、次のステップでこの処理から抜け出る。
【００５６】
上記ステップＳ５３において現在ブロックの録音時間BlockTimeData[i]が編集点EditTimeよりも小さい場合は、ステップＳ６４に進み、ブロック番号ｉが０で無い、且つ、現在のブロックの録音時間BlockTimeData[i]が０で無ければ、ステップＳ６５に進み、この条件が満たされない場合は、ステップＳ６７に進む。ステップＳ６５は編集点が開始点か終了点かで、セットするグローバル変数を変えている。編集点が開始点の場合はBlockTimeData[i]をStartPreBlockTimeDataにセットし（ステップＳ６６）、終了点の場合はEndPreBlockTimeDataにセットする（ステップＳ６８）。次にステップＳ６７に進み、現在ブロックのカウンタｉをインクリメントし、ステップＳ５３に進み上記処理を繰り返す。
【００５７】
図１０のステップＳ２１に戻り、上記処理を行う事で、消去開始位置の情報がグローバル変数４２にセットされる。次のステップＳ２２およびステップＳ２３も、ステップＳ２０およびステップＳ２１の処理と同様に行うことで、消去終了点の情報をグローバル変数の４２ｅから４２ｈにセットされる。
【００５８】
次にステップＳ２４において、消去開始点と消去終了点のブロックが同じブロック内にあるかどうかを判定する。この判定方法は、現在グローバル変数４２にセットされている、lpEditStartTableとlpEditEndTableの値が等しいか、且つ、StartBlockNumとEndBlockNumの値が等しいか否かにより判定する。この条件が満たされると、同一のブロックに編集位置がある事になりステップＳ２５に進み、そうでない場合は、それぞれ別々のブロックに編集点があるとしてステップＳ３２に進む。
【００５９】
図７は部分消去の消去範囲を表す図であり、４１ａと４１ｂ間の消去の場合は単一ブロック内での部分消去でありステップＳ２５以下の処理となり、４１ｃと４１ｄ間の消去は複数ブロックにまたがる部分消去でステップＳ３２以下の処理を行う事を示している。
【００６０】
そして、ステップＳ２５では、新規にテンポラリファイルを作成すると同時にこのテンポラリファイルの管理テーブルを作成する。このファイル名はグローバル変数のEditStartNameにセットされているファイル名が使用される。次にステップＳ２６に進み、消去開始点をセクターレベルで検索し、更にそのセクター内の何フレーム目に位置するかを計算し、セクターをその位置で分割する処理を行う。
【００６１】
以下にこの分割処理（ステップＳ２６）の詳細について図１２のフローチャートを用いて説明する。まず、ステップＳ７０において、編集位置のブロックのデータをＲＡＭ２２に割り当てられたBufferに読み込む。このブロックデータの情報はグローバル変数にセットされている。例えば、編集点が開始点であった場合は、EditStartNameよりファイル名を取得する。このファイル名は、部分消去編集のために新規作成されるテンポラリーファイルの名前であるため、そのリンク元のファイル名に変換しなければならない。
【００６２】
この変換方法は、例えば、ファイル名が“１．３．２.tmp”であれば、拡張子を取り外し、ピリオドで区切られている末尾の数字を取り外し、再び拡張子をつける事で変換できる。即ち、“１．３.tmp”というファイル名になる。但し、ピリオドで区切られていないファイル名“１.tmp”の場合は“new.tmp”というファイル名に変換する。この変換によって得られたファイル名をオープンし、編集点のブロックデータの位置に移動する。移動するバイト数は、グローバル変数４２のStartBlockNumあるいはEndBlockNumを読み出し、この変数にブロックのバイト数２５００００を掛ける事で求める事が出来る。このようにしてファイルの読み出しポインタを編集点ブロックの先頭に移動し、ここからブロックデータをBufferに読み出す。
【００６３】
次に、ステップＳ７１に進み、セクター数をカウントするカウンタｉをクリアし、ステップＳ７２においてBufferに読み込まれたブロックデータの最初のセクターヘッダーフレーム数エントリーのオフセット値０をFrameDataOffsetにセットする。次にステップＳ７３において編集点が開始点か終了点かによって編集点ブロックの前のブロックの録音時間データを読み出すグローバル変数を変える。開始点の場合はStartPreBlockDataから読み出し、EditDataにセットする（ステップＳ７４）。終了点の場合はEndPreBlockDataをEditDataにセットする（ステップＳ７５）。次に進み、ステップＳ７６では前ブロックの録音時間EditDataセクター毎の録音時間を加算していく。
【００６４】
そして、ステップＳ７７において、このEditDataが編集点よりも大きくなった場合はステップＳ８０に進み、小さい場合は、セクターカウンターをインクリメント（ステップＳ７８）し、FrameDataOffsetを次のセクターの位置に変更するため、５１２を加算（ステップＳ７９）し、ステップＳ７６に戻る。ステップＳ８０では、現在のセクターまでの録音時間EditDataから編集点の時間EditTimeを差し引き、誤差Errorを計算する。この誤差をフレーム数に変換するために２４で割り（ステップＳ８１）、現在のセクターのフレーム数Buffer[FrameDataOffset]から誤差のフレーム数（Frame）を引く（ステップＳ８２）ことにより、編集点の位置がフレーム数（Frame）レベルで求められた事になる。この編集点のセクターをFrameの位置で分割し、先頭からFrameまでのデータをPreSectorにコピーし（ステップＳ８３）、Frame以降のデータをPostSectorにコピー（ステップＳ８４）してこの処理から抜け出る。
【００６５】
上記分割処理の様子を図１５に示す。４３は編集点のセクターを表し、編集点４３ｃが４フレームと５フレームの位置にある。セクターヘッダー４３ａにはフレーム数１０とセクターバウンダリのオフセット５が記録されている。４４はPreSectorを表し、セクターヘッダー４４ａのフレーム数エントリーは編集点までのフレーム数５がセットされる。４５はPostSectorを表し、編集点以降のフレームデータＦ４からＦ９がコピーされ、セクターヘッダー４５ａのフレーム数エントリーにはコピーしたフレーム数５がセットされ、セクターバウンダリのオフセットは２がセットされる。
【００６６】
ここで図１０のフローチャートに戻り、ステップＳ２７において、編集点のブロックのデータをＲＡＭ２２に読み出し、ステップＳ２５で作成したテンポラリファイルにコピーし、続けて、ステップＳ２６の内部で作成したPostSectorのデータをコピーする。次に、ステップＳ２８において消去終了位置の計算をセクターレベルで行う。この処理はステップＳ２６と同様に、図１２のフローチャートを実行する事でセクターレベルでの終了点が求められ、PreSectorとPostSectorが作成される。
【００６７】
そしてステップＳ２９に進み、ステップＳ２７でテンポラリーファイルにコピーしたデータに続けて、PostSectorのデータをコピーし、更に、終了点のセクターより以降のブロックデータをコピーする。そして、テンポラリファイルの管理テーブルのブロックの録音時間BlockTimeDataを更新する。次に、部分消去編集をしたことによって変更される各ブロックの録音時間データを更新する。この更新処理を行う前にステップＳ３０において入力パラメータのセットを行う。
【００６８】
入力パラメータとしては編集終了点の管理テーブルのポインタ４２ｅ（lpEditEndTable）とブロックデータを加算して更新する値をセットする。更新する値は削除した時間のマイナス値をセットする。即ち編集開始点から編集終了点を差し引いた値をセットする。そして、ステップＳ３１において、ブロックの録音時間の更新を行う。
【００６９】
以下に、このブロックの録音時間の更新処理について図１３、図１４のフローチャートを参照して説明する。まず、図１３のステップＳ９０において、入力されるパラメータを内部の変数にセットする。編集点における管理テーブルはlpManagementTableにセットし、ブロックの録音時間の更新値はUpDateTimeにセットする。次にlpManagementTableから編集ブロック番号EditBlockNumberを読み出し、変数ｉにセットする（ステップＳ９１）。
【００７０】
次にブロックｉの録音時間BlockTimeData[i]の値をチェック（ステップＳ９２）し、０でなければステップＳ９３によってUpDateTimeの更新値だけ録音時間を更新する。０の場合は更新せずステップＳ９４に進む。ステップＳ９４ではブロック番号ｉをインクリメントし、ｉ以降のブロックの録音時間の更新をステップＳ９６で行う。
【００７１】
この録音時間の更新を行う前にステップＳ９５にて管理テーブルを入力パラメーターとしてセットする。この管理テーブルはlpManagementTableをセットする。そして、ステップＳ９６を実行する事で、ブロック番号ｉ以降のブロックの録音時間が更新される。
【００７２】
図１４はこのブロックの録音時間を更新するためのフローチャートである。まず、ステップＳ１００およびステップＳ１０１では入力パラメータを内部変数にセットするが、ステップＳ１００では録音時間を更新するブロック番号をｉにセットし、ステップＳ１０１では更新する管理テーブルのポインタをlpManagementTableにセットする。次に、lpManagementTableのブロック数NumOfBlockとブロック番号ｉとを比較して（ステップＳ１０２）、NumOfBlockの方が大きい場合は、更新が終了したものとしてこの処理から抜け出す。
【００７３】
NumOfBlockの方が小さい場合には、ステップＳ１０３においてブロック番号ｉの録音時間が０であるかどうかをチェックし、０でない場合はステップＳ１０４に進み、録音時間を更新値UpDateTimeだけ更新する。０の場合は更新せずにステップＳ１０５に進みブロック番号ｉのリンク先管理テーブルlpLMTable[i]がＮＵＬＬかどうかをチェックする。ＮＵＬＬの場合はステップＳ１０９に進み、ＮＵＬＬでない場合はリンク先の管理テーブルの録音時間を更新するためにステップＳ１０８において自分自身の処理を実行する。
【００７４】
その前にステップＳ１０６とステップＳ１０７で入力パラメータのセットを行う。ステップＳ１０６では更新するブロックの開始番号を０にセットし、ステップＳ１０７では管理テーブルとしてlpLMTable[i]をセットする。そして、ステップＳ１０９においてブロック番号ｉをインクリメントし、ステップＳ１０２からの処理を繰り返す。
【００７５】
ここで図１０のフローチャートに戻り、ステップＳ３１において、録音の処理が終了するとこの処理から抜け出る。
【００７６】
一方、ステップＳ２４において消去開始位置と消去終了位置が別のブロックであった場合には、ステップＳ３２に進み、ステップＳ２５と同様に新しくテンポラリファイルを作成すると同時にこのテンポラリファイルの管理テーブルを作成する。
【００７７】
次に、消去開始点をセクターレベルで検索し、検索したセクターを上記PreSectorとPostSectorに分割する（ステップＳ３３）。この処理は図１２のフローを実行する事で得ることが出来る。次に進み、ステップＳ３４ではステップＳ３２において新規作成したテンポラリファイルに消去開始点のブロックデータを消去開始点セクターの１つ手前までコピーし、続けてPreSectorのデータをコピーする。
【００７８】
そして、テンポラリファイルの管理テーブルのブロックの録音時間を更新する。ステップＳ３５に進み、ステップＳ３２と同様に終了点のテンポラリファイルを新規作成し、管理テーブルを作成する。そして、図１２のフローを実行して、消去終了点をセクターレベルで検索し、消去終了点のセクターをPreSectorとPostSectorに分割する（ステップＳ３６）。その後、ステップＳ３５で作成したテンポラリファイルにPostSectorのデータをコピーし、続けて、消去終了点のブロックデータを消去終了点セクターの次のセクターからコピーする（ステップＳ３７）。
【００７９】
そして、管理テーブルのブロックの録音時間を更新する。次に部分消去編集をしたことによって変更される各ブロックの録音時間データを図１３のフローを実行して更新する。この更新処理を行う前にステップＳ３８において入力パラメータのセットを行う。入力パラメータとしては編集終了点の管理テーブルのポインタ４２ｅ（lpEditEndTable）とブロックデータを加算して更新する値をセットする。更新する値は削除した時間のマイナス値をセットする。即ち編集開始点から編集終了点を差し引いた値をセットする。
【００８０】
そして、ステップＳ３９において、ブロックの録音時間の更新を行う。最後に、消去開始点と消去終了点の間のデータを削除する処理を行う（ステップＳ４０）。このデータ削除処理は管理テーブルのブロックの録音時間BlockTimeDataを０にセットする事でそのブロックが削除されたものとする。そして、この部分消去編集処理から抜け出る。
【００８１】
次に、任意の位置に挿入録音する処理方法を図１６のフローチャートを用いて説明する。図１７に示すのが、挿入録音の概念図である。４６は、挿入対象の２０ブロックより大きいテンポラリファイルnew.tmpをブロック毎に区切った図であり、４６ｂの位置に挿入する事を表している。４６ａは挿入位置のセクターの前のセクターまでのブロックデータであり、４６ｃは挿入位置のセクターの次のセクター以降のブロックデータである。４６ｄは挿入されるデータであり、このデータが挿入されると４７の様になる。
【００８２】
また、４８は、挿入対象の２０ブロック以下のテンポラリファイルnew.tmpをブロック毎に区切った図であり、４８ｂの位置に挿入する事を表している。４８ａは挿入位置のセクターの前のセクターまでのブロックデータであり、４８ｃは挿入位置のセクターの次のセクター以降のブロックデータである。４８ｄは挿入されるデータであり、このデータが挿入された図が４９であり、丁度、４８に直接挿入した形になる。
【００８３】
挿入録音を行うために、まず、音声データ編集プログラム１３０で新規録音がなされており、図７、図８に示すテンポラリファイルと、その管理テーブルがすでに作成されているものとし、このデータに挿入録音を行う場合について説明する。マウス２７を使用して図２に示す現在位置インジケーター４１を挿入したい位置に移動させるかあるいは、再生ボタン３８を押してテンポラリファイルnew.tmpのデータを再生させながら挿入したい位置でストップボタン３７を押すことにより挿入位置を決定する。次に上書き／挿入切り替えコントロール４３をマウス２７でクリックしてチェックマークを付ける。そして録音ボタン３５が押されると挿入録音モードとなり、図１６のフローチャートを実行する。なお、挿入録音された区間は反転表示される。
【００８４】
まず、挿入位置のブロックを検索するためにステップＳ１１０にて入力パラメーターのセットを行う。この入力パラメータとしては挿入録音位置の時間と、テンポラリファイルnew.tmpの管理テーブルのポインタをセットする。そして、ステップＳ１１１を図１１のフローチャートに従って実行することで、挿入位置のテンポラリファイルの管理テーブルのポインタと、新規作成するテンポラリファイルのファイル名と、挿入位置のテンポラリファイルにおけるブロックのブロック番号と、挿入位置ブロックの一つ前のブロックの録音時間データがグローバル変数の４２ａ〜４２ｄにセットされる。
【００８５】
そして、挿入する録音データを記録するためのテンポラリファイルを新規作成する（ステップＳ１１２）。このテンポラリファイルのファイル名は４１ｂのEditStartNameにセットされている名前が使用される。次に、挿入位置をセクターレベルで検索を行い、挿入位置のセクターをPostSectorとPreSectorに分割する（ステップＳ１１３）。この検索は図１２のフローを実行することで可能である。ステップＳ１１４に進み、挿入位置ブロックのテンポラリファイルにおける管理テーブルからブロック数EditBlockNumberを読み出し、２０以下であるか否かをチェックする。
【００８６】
２０以下であると判定した場合はステップＳ１１５に進み直接挿入する方法をとる。２０以上の場合はＳ１１７に進む。２０以下であった場合は、ステップＳ１１２で新規作成したテンポラリファイルに、挿入位置の手前のセクターまでのテンポラリファイルのデータを先頭からコピーし、続けてPreSectorデータをコピーする（ステップＳ１１５）。そして、新規作成したテンポラリファイルの管理テーブルを作成し、挿入位置のブロックの手前までの各ブロックの録音時間BlockTimeDataと、リンク先の管理テーブルへのポインタlpLMTableのデータをコピーする（ステップＳ１１６）。
【００８７】
一方、ステップＳ１１７ではステップＳ１１２で作成した新規テンポラリファイルに挿入位置セクターの手前のセクターまでのブロックデータをコピーし、続けてPreSectorデータをコピーする。そして、ステップＳ１１８において、音声記録再生装置１９から符号化データを受け取り、順次、新規テンポラリファイルに記録していく。この処理は、図５のフローチャートのステップＳ２からステップＳ１２までに相当する。
【００８８】
ストップボタン３２が押されて、挿入録音が停止されると、ステップＳ１１９に進み、新規テンポラリファイルにPostSectorデータをコピーし、続けて、挿入位置セクターの次のセクターからブロックデータのコピーを行う。但し、挿入位置ブロックのテンポラリファイルが２０ブロック以下の場合は、テンポラリファイルの終端のデータまでをコピーする。このコピーで、ブロックを越えるデータがコピーされれば、同時に管理テーブルにブロックの録音時間BlockTimeDataと、リンク先管理テーブルlpLMTableを追加して行く。
【００８９】
次に挿入されたことにより、挿入されたブロックの以降のブロックの録音時間が狂ってしまうためにステップＳ１２１においてブロックの録音時間の更新を行う必要がある。この更新処理は図１３のフローチャートを実行することで可能である。この処理を行う前に、入力パラメータのセット（ステップＳ１２０）が必要となる。この入力パラメータとしては更新する値をセットする事になり、ここでは挿入されたデータの録音時間をセットする。その後、ステップＳ１２１を実行する事で、挿入点のブロック以降のブロックの録音時間が更新される。
【００９０】
次に、ステップＳ１２２で、再度、挿入位置ブロックのテンポラリファイルが２０ブロック以下であるか否かを判定し、２０ブロック以下である場合は、ステップＳ１２３において新規テンポラリファイルに直接挿入されたために、挿入位置ブロックのテンポラリファイルが必要無くなり、削除される。そして、新規テンポラリファイルは削除されたテンポラリファイルのファイル名に変更される。そしてこの挿入録音処理から抜け出す。またステップＳ１２２で２０ブロックより大きい場合はそのまま挿入録音処理から抜け出す。
【００９１】
次に、上書き録音の編集方法があるが、この上書き録音に関しては特別な処理は行わず、挿入録音と部分消去編集を組み合わせることによって実現する。つまり、上書きしたい位置から挿入録音していき、停止したときに、挿入した時間分のデータだけ、挿入後のデータから部分消去編集する事で実現出来る。
【００９２】
次に、編集によって作成された複数のテンポラリファイルを１つの音声ファイルにするための処理を図１８のフローチャートを用いて説明する。この処理を実行する場合は、既に、新規録音されたテンポラリファイルnew.tmpと音声ファイルにヘッダー部のみ作成されている音声ファイルが少なくとも存在し、また、部分消去編集や挿入録音する事により、複数のテンポラリファイルが存在していることを仮定する。
【００９３】
まず、音声データ編集プログラム１３０の保存ボタン３２が押されると、ステップＳ２２０においてnew.tmpファイルの管理テーブルのポインタを変数lpManagement Tableにセットする。次に、現在ブロックのブロック番号ｉをクリアする（ステップＳ２２１）。ステップＳ２２２に進み、音声ファイルへの書き込み位置をヘッダーの次の位置にセットし、lpManagementTableにおける現在ブロックｉのリンク先lpLMTable[i]が存在するかどうかをチェックする（ステップＳ２２３）。リンク先がある場合はリンク先ブロックのデータを音声ファイルにコピーするためにステップＳ２２５を実行する。この処理は図１９のフローに従って実行される。
【００９４】
この処理を行う前に、ステップＳ２２４において入力パラメータのセットを行う必要がある。入力パラメータとしては、リンク先の管理テーブルへのポインタlpLMTable[i]と、リンク先テンポラリファイルのファイル名を生成するための情報として現在のブロック番号ｉと空のファイル名“”がセットされ、ステップＳ２２５が実行される。この処理の詳細は、図１９のフローチャートを用いて説明する。
【００９５】
まず、ステップＳ２３０において入力されてくるリンク先の管理テーブルへのポインタを変数lpManagementTableにセットし、ステップＳ２３１において入力されてくるファイル名生成情報より、lpManagementTableのテンポラリファイルのファイル名を生成する。この生成方法は、例えば、ファイル名生成情報として、リンク元であったブロックのブロック番号が３として入力され、ファイル名が“２．３”であれば、このファイル名の最後のピリオドを接続子としてブロック番号を追加して“２．３．３”というファイル名を生成する。そして拡張子“.tmp”をつけて最終的に“２．３．３.tmp”というファイル名を生成する。
【００９６】
ファイル名が空の場合は“３.tmp”というファイル名が生成される。次に進み、ステップＳ２３２において現在ブロックのブロック番号ｉをクリアし、ステップＳ２３３において、lpManagementTableにおける現在ブロックｉのリンク先lpLM Table[i]が存在するかどうかをチェックする。リンク先が存在する場合は、リンク先のブロックデータを音声ファイルにコピーするために、ステップＳ２３５において自分自身の処理を実行する。この処理を実行するためには、ステップＳ２３４において入力パラメータをセットする必要が生じる。
【００９７】
入力パラメーターとしては、リンク先の管理テーブルへのポインタlpLMTable[i]と、リンク先テンポラリファイルのファイル名を生成するための情報として現在のブロック番号ｉとステップＳ２３１で生成したファイル名のうち拡張子“.tmp”をとったファイル名がセットされ、ステップＳ２３５が実行され、処理が返されるとこのリンク先のブロックデータのコピー処理から抜け出る。
【００９８】
また、ステップＳ２３３においてリンク先が無かった場合は、ステップＳ２３６において現在ブロックｉのブロックの録音時間BlockTimeData[i]が０であるかどうかを確認する。０である場合はコピーを行わずに、ステップＳ２３８に進み、そうで無い場合は、ステップＳ２３９においてステップＳ２３１で生成したファイルをオープンし、現在ブロックの位置からブロックデータを読み出し、音声ファイルにコピーする。
【００９９】
そして、ステップＳ２３８において現在ブロックのブロック番号ｉをインクリメントし、ステップＳ２３９において現在のブロック番号ｉがテンポラリファイルのブロック数EditBlockNumberより大きいかどうかを判定する。大きい場合はこの処理から抜け出て、そうでない場合はステップＳ２３３に戻り、同様の処理を繰り返す。
【０１００】
ここで図１８のステップＳ２２３に戻り、lpLMTable[i]にリンク先が無い場合は、ステップＳ２２６において現在ブロックｉのブロックの録音時間BlockTimeData[i]が０であるかどうかを確認する。０である場合はコピーを行わずに、ステップＳ２２８に進み、そうで無い場合は、ステップＳ２２９においてステップＳ２２１で生成したファイルをオープンし、現在ブロックの位置からブロックデータを読み出し、音声ファイルにコピーする。
【０１０１】
そして、ステップＳ２２８において現在ブロックのブロック番号ｉをインクリメントし、ステップＳ２２９において現在のブロック番号ｉがテンポラリファイルのブロック数EditBlockNumberより大きいかどうかを判定する。大きい場合はこの処理から抜け出て、そうでない場合はステップＳ２２３に戻り、同様の処理を繰り返す。
【０１０２】
上記した実施形態によれば、一時ファイル（テンポラリファイル）を作成することで音声データを管理するようにしたので、入力デバイスにより長時間記録した音声データに対しても一部のデータを削除したり、指定した位置から挿入記録したり上書き記録したりする編集作業をスムーズに行うことができる。
【０１０３】
なお、上記した具体的実施形態から以下のような構成の発明を抽出することが可能である。
【０１０４】
１．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
音声データファイルの編集開始位置を指示する編集開始位置指示手段（現在位置インジケーター４１）と、
音声データファイルの編集終了位置を指示する編集終了位置指示手段（現在位置インジケーター４１）と、
少なくとも、上記編集開始位置を含むデータブロックのうち、上記編集開始位置より前の音声データか、または上記編集終了位置を含むデータブロックのうち上記編集終了位置より後の音声データのうちどちらか一方を含む上記音声データファイルとは別の一時的な音声データファイルを作成する一時ファイル作成手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１０５】
（１．の構成は、図１０のステップＳ２５〜Ｓ３１、Ｓ３２〜Ｓ３９で示される部分消去処理と、図１６のステップＳ１１７〜Ｓ１２１、Ｓ１１５〜Ｓ１２１で示される挿入録音処理に対応する。）
２．データファイルの管理を行うための管理テーブルを各音声データファイル毎に作成する管理テーブル作成手段（音声データ編集プログラム１３０）を具備し、
上記管理テーブルは上記編集開始位置を含むデータブロックおよび上記編集終了位置を含むデータブロックと関連付けられている音声データファイルに関する位置情報を有することを特徴とする１．に記載の編集装置。
【０１０６】
（図６のリンク元あるいはリンク先に関連する情報を位置情報として持っている。）
３．上記管理テーブルは上記編集開始位置を含むデータブロックおよび上記編集終了位置を含むデータブロックと関連付けられている音声データファイルの管理テーブルの位置情報を有することを特徴とする２．に記載の編集装置。
【０１０７】
（図６のリンク元管理テーブルへのポインタを位置情報として持っている。）
４．データファイルの管理を行うための管理テーブルを各音声データファイル毎に作成する管理テーブル作成手段（音声データ編集プログラム１３０）を具備し、
上記管理テーブルは対応する音声データファイルのデータブロック毎に、音声データファイルの先頭から該データブロック内までの録音時間情報を有することを特徴とする１．に記載の編集装置。
【０１０８】
（図６のブロックｎの録音時間（ファイル先頭から当該ブロック先頭までの時間）を録音時間情報として持っている。）
５．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
音声データファイルのデータの消去開始位置を指示する消去開始位置指示手段（現在位置インジケーター４１）と、
上記消去開始位置を含むデータブロックのうち上記消去開始位置よりも前のデータを含む第１のデータファイルを作成する第１のデータファイル作成手段（音声データ編集プログラム１３０）と、
音声データファイルのデータの消去終了位置を指示する消去終了位置指示手段（現在位置インジケーター４１）と、
上記消去終了位置を含むデータブロックのうち上記消去終了位置よりも後のデータを含む第２のデータファイルを作成する第２のデータファイル作成手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１０９】
（５．の構成は、図１０のステップＳ２５〜Ｓ３１、Ｓ３２〜Ｓ３９で示される部分消去処理に対応する。）
６．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
音声データファイルのデータの消去開始位置を指示する消去開始位置指示手段（現在位置インジケーター４１）と、
音声データファイルのデータの消去終了位置を指示する消去終了位置指示手段（現在位置インジケーター４１）と、
一時的な新規データファイルを作成する新規データファイル作成手段（音声データ編集プログラム１３０）と、
上記消去開始位置を含むデータブロックのうち上記消去開始位置よりも前のデータを上記新規データファイルにコピーする第１のコピー手段（音声データ編集プログラム１３０）と、
上記消去終了位置を含むデータブロックのうち上記消去終了位置よりも後のデータを上記新規データファイル中の上記消去開始位置よりも前のデータの後にコピーする第２のコピー手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１１０】
（６．の構成は、図１０のステップＳ２５〜Ｓ３１で示される部分消去処理に対応する。）
７．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
音声データファイルのデータの消去開始位置を指示する消去開始位置指示手段（現在位置インジケーター４１）と、
音声データファイルのデータの消去終了位置を指示する消去終了位置指示手段（現在位置インジケーター４１）と、
上記消去開始位置および上記消去終了位置が同一のデータブロック内であるか否かを検出する検出手段（音声データ編集プログラム１３０）と、
一時的な新規データファイルを作成する新規データファイル作成手段（音声データ編集プログラム１３０）と、
上記検出手段により、上記消去開始位置および上記消去終了位置が同一のデータブロック内であることが検出された場合には、上記消去開始位置または上記消去終了位置を含むデータブロックのうち上記消去開始位置から上記消去終了位置までのデータを除く部分のデータを同一の上記新規データファイルにコピーし、上記検出手段により、上記消去開始位置および上記消去終了位置が同一のデータブロック内にはないことが検出された場合には、上記消去開始位置を含むデータブロックのうち上記消去開始位置よりも前のデータと上記消去終了位置を含むデータブロックのうち上記消去終了位置よりも後のデータとをそれぞれ別の新規データファイルにコピーするコピー手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１１１】
（図１０のステップＳ２４で消去開始位置と消去終了位置が同一のデータブロック内であるか否かを検出し、ステップＳ２５〜Ｓ３１により新規データファイルの作成を行うとともに、上記消去開始位置および上記消去終了位置が同一のデータブロック内であることが検出された場合の処理を行い、ステップＳ３２〜Ｓ３９により上記消去開始位置と上記消去終了位置が同一のデータブロック内にはないことが検出された場合の処理を行う。）
８．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
音声データファイルの編集位置を指示する編集位置指示手段（現在位置インジケーター４１）と、
少なくとも、上記編集位置を含むデータブロックのうち該データブロックの先頭から上記編集位置までの音声データか、または上記編集位置より該データブロックの終端までの音声データのうちどちらか一方を含む上記音声データファイルとは別の一時的な音声データファイルを作成する一時ファイル作成手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１１２】
（８．の構成は、図１６のステップＳ１１７〜Ｓ１２１、Ｓ１１５〜Ｓ１２１で示される挿入録音処理に対応する。）
９．データファイルの管理を行うための管理テーブルを各音声データ毎に作成する管理テーブル作成手段（音声データ編集プログラム１３０）を具備し、
上記管理テーブルは上記編集位置を含むデータブロックと関連付けられている音声データファイルに関する位置情報を有することを特徴とする請求項８に記載の編集装置。
【０１１３】
（９．の構成と実施形態との対応関係は２．と同様である。）
１０．上記管理テーブルは上記編集位置を含むデータブロックと関連付けられている音声データファイルの管理テーブルの位置情報を有することを特徴とする９．に記載の編集装置。
【０１１４】
（１０．の構成と実施形態との対応関係は３．と同様である。）
１１．データファイルの管理を行うための管理テーブルを各音声データファイル毎に作成する管理テーブル作成手段（音声データ編集プログラム１３０）を具備し、
上記管理テーブルは対応する音声データファイルのデータブロック毎に、音声データファイルの先頭から該データブロック内までの録音時間情報を有することを特徴とする８．に記載の編集装置。
【０１１５】
（１１．の構成と実施形態との対応関係は４．と同様である。）
１２．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
新規データファイルを作成する新規データファイル作成手段（音声データ編集プログラム１３０）と、
第１の音声データファイルのデータの編集位置を指示する編集位置指示手段（現在位置インジケーター４１）と、
上記編集位置を含むデータブロックの先頭から上記編集位置までのデータと、上記第１の音声データファイルとは異なる第２の音声データファイルのデータと、上記編集位置から上記編集位置を含むデータブロックの終端までのデータと、を上記新規データファイル作成手段により作成された新規データファイルにコピーするデータコピー手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１１６】
（１２．の構成は図１７を参照して説明される挿入録音に対応する。）
１３．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集装置において、
新規データファイルを作成する新規データファイル作成手段（音声データ編集プログラム１３０）と、
第１の音声データファイルのデータの編集位置を指示する編集位置指示手段（現在位置インジケーター４１）と、
第２の音声データファイルの大きさを判別する判別手段（音声データ編集プログラム１３０、図１６のステップＳ１１４）と、
上記第２の音声データファイルが所定の値よりも大きい場合には、上記編集位置を含むデータブロックの先頭から上記編集位置までのデータと、上記第１の音声データファイルとは異なる第２の音声データファイルのデータと、上記編集位置から上記編集位置を含むデータブロックの終端までのデータと、を上記新規データファイル作成手段により作成された新規データファイルにコピーし、上記第２の音声データファイルが所定の値よりも小さい場合には、上記第１の音声データファイルの先頭から上記編集位置までのデータと、上記第２の音声ファイルのデータと、上記編集位置から上記第１の音声ファイルの終端までのデータをコピーするコピー手段（音声データ編集プログラム１３０）と、
を具備することを特徴とする編集装置。
【０１１７】
（１３．の構成は図１７を参照して説明される挿入録音に対応する。）
１４．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
編集開始位置指示手段により音声データファイルの編集開始位置が指示され、編集終了位置指示手段により音声データファイルの編集終了位置が指示されたときに、
少なくとも、上記編集開始位置を含むデータブロックのうち、上記編集開始位置より前の音声データか、または上記編集終了位置を含むデータブロックのうち上記編集終了位置より後の音声データのうちどちらか一方を含む上記音声データファイルとは別の一時的な音声データファイルを作成する一時ファイル作成処理を含むことを特徴とする記録媒体。
【０１１８】
１５．データファイルの管理を行うための管理テーブルを各音声データファイル毎に作成する管理テーブル作成処理を含み、
上記管理テーブルは上記編集開始位置を含むデータブロックおよび上記編集終了位置を含むデータブロックと関連付けられている音声データファイルに関する位置情報を有することを特徴とする１４．に記載の記録媒体。
【０１１９】
１６．上記管理テーブルは上記編集開始位置を含むデータブロックおよび上記編集終了位置を含むデータブロックと関連付けられている音声データファイルの管理テーブルの位置情報を有することを特徴とする１５．に記載の記録媒体。
【０１２０】
１７．データファイルの管理を行うための管理テーブルを各音声データファイル毎に作成する管理テーブル作成処理を含み、
上記管理テーブルは対応する音声データファイルのデータブロック毎に、音声データファイルの先頭から該データブロック内までの録音時間情報を有することを特徴とする１４．に記載の記録媒体。
【０１２１】
１８．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
消去開始位置指示手段により音声データファイルのデータの消去開始位置が指示されたときに、上記消去開始位置を含むデータブロックのうち上記消去開始位置よりも前のデータを含む第１のデータファイルを作成する第１のデータファイル作成処理と、
消去終了位置指示手段により音声データファイルのデータの消去終了位置が指示されたときに、上記消去終了位置を含むデータブロックのうち上記消去終了位置よりも後のデータを含む第２のデータファイルを作成する第２のデータファイル作成処理と、
を具備することを特徴とする記録媒体。
【０１２２】
１９．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
消去開始位置指示手段により音声データファイルのデータの消去開始位置が指示され、消去終了位置指示手段により音声データファイルのデータの消去終了位置が指示されたときに、
一時的な新規データファイルを作成する新規データファイル作成処理と、
上記消去開始位置を含むデータブロックのうち上記消去開始位置よりも前のデータを上記新規データファイルにコピーする第１のコピー処理と、
上記消去終了位置を含むデータブロックのうち上記消去終了位置よりも後のデータを上記新規データファイル中の上記消去開始位置よりも前のデータの後にコピーする第２のコピー処理と、
を具備することを特徴とする記録媒体。
【０１２３】
２０．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
消去開始位置指示手段により音声データファイルのデータの消去開始位置が指示され、消去終了位置指示手段により音声データファイルのデータの消去終了位置が指示されたときに、
上記消去開始位置および上記消去終了位置が同一のデータブロック内であるか否かを検出する検出処理と、
一時的な新規データファイルを作成する新規データファイル作成処理と、
上記検出処理により、上記消去開始位置および上記消去終了位置が同一のデータブロック内であることが検出された場合には、上記消去開始位置または上記消去終了位置を含むデータブロックのうち上記消去開始位置から上記消去終了位置までのデータを除く部分のデータを同一の上記新規データファイルにコピーし、上記検出処理により、上記消去開始位置および上記消去終了位置が同一のデータブロック内にはないことが検出された場合には、上記消去開始位置を含むデータブロックのうち上記消去開始位置よりも前のデータと上記消去終了位置を含むデータブロックのうち上記消去終了位置よりも後のデータとをそれぞれ別の新規データファイルにコピーするコピー処理と、
を具備することを特徴とする記録媒体。
【０１２４】
２１．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
編集位置指示手段により音声データファイルの編集位置が指示されたときに、少なくとも、上記編集位置を含むデータブロックのうち該データブロックの先頭から上記編集位置までの音声データか、または上記編集位置より該データブロックの終端までの音声データのうちどちらか一方を含む上記音声データファイルとは別の一時的な音声データファイルを作成する一時ファイル作成処理を具備することを特徴とする記録媒体。
【０１２５】
２２．データファイルの管理を行うための管理テーブルを各音声データ毎に作成する管理テーブル作成処理を含み、
上記管理テーブルは上記編集位置を含むデータブロックと関連付けられている音声データファイルに関する位置情報を有することを特徴とする２１．に記載の記録媒体。
【０１２６】
２３．上記管理テーブルは上記編集位置を含むデータブロックと関連付けられている音声データファイルの管理テーブルの位置情報を有することを特徴とする２２．に記載の記録媒体。
【０１２７】
２４．データファイルの管理を行うための管理テーブルを各音声データファイル毎に作成する管理テーブル作成処理を含み、
上記管理テーブルは対応する音声データファイルのデータブロック毎に、音声データファイルの先頭から該データブロック内までの録音時間情報を有することを特徴とする２１．に記載の記録媒体。
【０１２８】
２５．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
新規データファイルを作成する新規データファイル作成処理と、
編集位置指示手段により第１の音声データファイルのデータの編集位置が指示されたときに、上記編集位置を含むデータブロックの先頭から上記編集位置までのデータと、上記第１の音声データファイルとは異なる第２の音声データファイルのデータと、上記編集位置から上記編集位置を含むデータブロックの終端までのデータと、を上記新規データファイル作成処理により作成された新規データファイルにコピーするデータコピー処理と、
を具備することを特徴とする記録媒体。
【０１２９】
２６．音声データが一定サイズ単位で記録される複数のデータブロックを有する音声データファイルの編集処理をコンピュータに実行させる命令を含むプログラムを格納した、コンピュータが読み取り可能な記録媒体であって、
前記編集処理は、
新規データファイルを作成する新規データファイル作成処理と、
編集位置指示手段により第１の音声データファイルのデータの編集位置が指示されたときに、第２の音声データファイルの大きさを判別し、
上記第２の音声データファイルが所定の値よりも大きい場合には、上記編集位置を含むデータブロックの先頭から上記編集位置までのデータと、上記第１の音声データファイルとは異なる第２の音声データファイルのデータと、上記編集位置から上記編集位置を含むデータブロックの終端までのデータと、を上記新規データファイル作成処理により作成された新規データファイルにコピーし、上記第２の音声データファイルが所定の値よりも小さい場合には、上記第１の音声データファイルの先頭から上記編集位置までのデータと、上記第２の音声ファイルのデータと、上記編集位置から上記第１の音声ファイルの終端までのデータをコピーするコピー処理と、
を具備することを特徴とする記録媒体。
【０１３０】
【発明の効果】
本発明によれば、入力デバイスにより長時間記録した音声データに対しても一部のデータを削除したり、指定した位置から挿入記録したり上書き記録したりする編集作業をスムーズに行うことが可能な編集装置及び編集プログラムを格納した記録媒体が提供される。
【図面の簡単な説明】
【図１】本発明の一実施の形態にかかる、音声編集システム全体の構成図である。
【図２】音声データ編集プログラム１３０を起動したときの表示画面を示す図である。
【図３】（Ａ）は音声記録再生装置をパソコンに接続したときにＬＣＤに表示される内容を示す図であり、（Ｂ）〜（Ｅ）はテンポラリファイルの作成の具体例を説明するための図である。
【図４】音声データの新規録音の動作を説明するためのフローチャートである。
【図５】本実施形態で記録する音声ファイルのファイル構造を示す図である。
【図６】音声ファイルを管理する管理テーブルの構成を示す図である。
【図７】新規録音したファイルに対して部分消去を行う時の部分消去の範囲を説明するための図である。
【図８】新規録音ファイルの具体的な管理テーブルを示す図である。
【図９】編集処理を行う場合に必要となるグローバル変数を説明するための図である。
【図１０】部分消去編集の動作を説明するためのフローチャートである。
【図１１】リンク先ブロックの検索の動作を説明するためのフローチャートである。
【図１２】編集−セクターの検索とセクター分割する動作を説明するためのフローチャートである。
【図１３】部分録音時間の更新の動作を説明するためのフローチャートである。
【図１４】リンク先ブロック録音時間の更新の動作を説明するためのフローチャートである。
【図１５】編集位置セクターをPostSectorとPreSectorに分割するための動作説明に用いる図である。
【図１６】挿入録音の動作を説明するためのフローチャートである。
【図１７】挿入録音の動作を説明するための概念図である。
【図１８】音声ファイル生成の動作を説明するためのフローチャートである。
【図１９】リンク先ブロックデータのコピーの動作を説明するためのフローチャートである。
【符号の説明】
１  マイクロホン
２  増幅器（ＡＭＰ）
３  低域通過フィルタ（ＬＰＦ）
４  ＣＯＤＥＣ
５  ＤＳＰ
６  ＣＰＵ
７  記録媒体（ＦＭ）
８  ローパスフィルタ（ＬＰＦ）
９  増幅器（ＡＭＰ）
１０  スピーカ
１１  表示装置（ＬＣＤ）
１２  インターフェース回路
１３  録音ボタン（ＲＥＣ）
１４  ストップボタン（ＳＴ）
１５  再生ボタン（ＰＬ）
１６  早戻しボタン（ＲＥＷ）
１７  早送りボタン（ＦＦ）
１８，２０  インターフェース回路（ＩＦ）
１９  音声記録再生装置
２１  ＣＰＵ
２２  ＲＡＭ
２３  ハードディスク記録媒体（ＨＤ）
２４，２６，２８  インターフェース回路
２５  キーボード（ＫＢ）
２７  マウス（ＭＳ）
２９  表示装置
３０  パーソナルコンピュータ（パソコン）
３１〜３４  ツールバーボタン
３３  部分消去開始ボタン
３４  部分消去実行ボタン
３５〜４０  操作ボタン
３５  録音ボタン
３７  ストップボタン
３８  再生ボタン
４１  現在位置インジケーター
４２  音量調節スライダー
４３  上書き／挿入切り替えコントロール
１３０  音声データ編集プログラム（表示画面）
１３１  スピーカー
【図１】
0004307697.tif 000002
【図２】
0004307697.tif 000003
【図３】
0004307697.tif 000004
【図４】
0004307697.tif 000005
【図５】
0004307697.tif 000006
【図６】
0004307697.tif 000007
【図７】
0004307697.tif 000008
【図８】
0004307697.tif 000009
【図９】
0004307697.tif 000010
【図１０】
0004307697.tif 000011
【図１１】
0004307697.tif 000012
【図１２】
0004307697.tif 000013
【図１３】
0004307697.tif 000014
【図１４】
0004307697.tif 000015
【図１５】
0004307697.tif 000016
【図１６】
0004307697.tif 000017
【図１７】
0004307697.tif 000018
【図１８】
0004307697.tif 000019
【図１９】
0004307697.tif 000020