この記事には「英検3級文で覚える単熟語」(以下「文単」と略記)の1枚のCDまるごとの音声ファイルを文の単位に自動で分割する方法が書いてあります。
大雑把な流れとしては
1.文単の音声ファイルをmp3としてPCに取り込む。
2.mp3音声をmp3DirectCutで分割する。
3.バッチファイルを実行してファイルをフォルダに振り分ける
です。
以下で細かく説明していきます。
何で文に分割するか
長良川の英語学習法は長文の音声の聞き取りです。そのときに文単位でのリピートを使います。アプリの区間リピートの機能を使えば文単位でのリピートも可能ですがこれは結構手間がかかります。文のリピート再生の一番簡単な方法は文に分割することです。
文単の音声ファイルをmp3としてPCに取り込む
分割にはmp3DirectCutというソフトを使うので、文単のCDをmp3として取り込みます。
やり方は以下のページで説明しています。なおこの記事では文単のCD1を取り込んでの作業について書いています。
注意点としては取り込んだmp3ファイルのファイル名が「01 トラック 1.mp3」など先頭が0埋めされた2桁の数字であることが必要です。上のページのやり方をすればそうなると思います。
mp3DirectCutのインストール
mp3DirectCutをインストールされてない方は以下のページを参考にしてインストールしてください。
無音区間を使った自動分割
mp3DirectCutを使ってmp3を分割していきます。テキストの音声には一瞬無音になるところ(長文の音声なら文末とか文意の切れ目など)があります。この無音区間を自動で検出し、そこでファイルを分割します。「無音区間を使った自動分割」を使って分割しますので、以下のページの説明を読んできてください。
文単mp3ファイルに適用する音圧レベルと長さ
文で分割される(ピリオドやクエストマーク)ように「音圧レベル」「長さ」を色々変えて何回か分割してみました。全部が思った通りには分割できませんでしたが一番いいと思った値は以下です。
・音圧レベル:-18.1db
・長さ ;0.5sec
だいたい文で分割されます。
この値でCDまるごとのmp3ファイルを分割します。
「バッチ処理」で「無音区間を使った自動分割」を複数のファイルに適用する
↑の記事で実行した「無音区間を使った自動分割」はある一つのmp3ファイルに対しての操作です。この操作を複数のファイルに適用することを考えます。
バッチ処理のための準備①
ctr + shift + Pで「無音区間の検出」を開きます。「音圧レベル」を「-18.1」、「長さ」を「0.5」「無音区間の検出後のスキップ」を「0」に設定し、そのまま「閉じる」ボタンをクリックして閉じます。
バッチ処理のための準備②
分割されたファイルにつける名前のルールを指定しておきます。ctr + T で「ファイルの分割」を開きます。「作成ファイル名」は「%F-%N」にします。そうしたら「キャンセル」をクリックしてそのまま閉じます。
バッチ処理を実行する
ctr + B で「バッチ処理」ダイアログを開きます。左上の「ソース」の下の「…」をクリックして自動分割を適用するファイルが保存されているフォルダを選択します。次に右側の「動作」で「無音区間の検出」にチェックを入れます(「注意」ダイアログが出るので「OK」をクリック)。さらに下の「出力先」で「選択フォルダ/現在のフォルダ」をクリックし、分割されたファイルの保存先を指定します。「開始」をクリックすると処理が始まります。(途中で停止するときは「開始」右の「停止」を押してください。処理が大量なので間違えたときに処理が終わるまで待っていると時間がかかります。)
全部のmp3ファイルが分割されると指定した保存フォルダは以下の画像のようになっていると思います。
このままでは使いにくいのでファイル名「01」から始まるファイルは「01」というフォルダに移動し、ファイル名も連番になるように変更します。この操作を「バッチファイル」を作成し、実行することで行います(上で書いたバッチ処理とは別のことです)。
バッチファイルの作成
メモ帳(などエディタ)を起動します。以下のコードをコピペし、ファイル名を「move_rename.bat」などと拡張子を「bat」にして保存します。保存先は分割したmp3ファイルのあるフォルダです(上の画像のフォルダ)。
@echo off
setlocal enabledelayedexpansion
for /L %%i in (1, 1, 76) do (
set num=%%i
if %%i lss 10 (
set num=0!num!
)
mkdir !num!
for %%f in (!num!*) do move "%%f" !num!
cd !num!
set fnm=1
for %%g in (*.mp3) do (
if !fnm! lss 10 (
set fnm=0!fnm!
ren "%%g" !fnm!.mp3
set fnm=!fnm:~1!
)else (
ren "%%g" !fnm!.mp3
)
set /a fnm=fnm+1
)
cd ..
)
endlocal
pause
このバッチファイルでやっていることのおおざっぱな説明は次の通りです。
・01から76という名前のフォルダを作成する(76は文単のCD1のファイル数です。CD2は74です)
・各フォルダにそのフォルダと同じファイル名で始まるファイルを移動する。
・ファイル名を連番になるように変更する。
バッチファイルを実行
このバッチファイルをダブルクリックして実行します。このバッチファイルは大量のファイルを処理します。もしものときのために実行前にバックアップを取っておいてください。
バッチファイルの実行によって連番を振られたフォルダが作成され、その中に連番に変名されたmp3ファイルができます。
この記事は以上です。