がんばらない日常のためのヒント - an effortless life

日々をゆるーく生きるためのモノ・コトを紹介しています

オーディオファイルを複数のトラックに分割する

こんにちは、本ブログの管理人のえるです。

オーディオファイルがトラックごとに分かれていないと、ミュージック管理アプリケーションに取り込むとき困ってしまいますね。トラックごとに分割するのはQuickTime PlayerとかAudacityとか同様のアプリケーションを使えば特に難しいことではありませんが、トラック数が多いと手作業で分割するポイントを指定したりトラック名を入力するのが大変です。

まして、複数トラックの情報が「HH:MM:SS トラック名」という形式のテキストファイルのリストで与えられているならば、それをまた手作業でコピペするのは本当に無駄!

日常的に使わないアプリケーションをトラック分割のためだけにインストールするのもなんだか嫌な気持ちがします。

というわけで、Pythonを使って、トラックリストのテキストファイルに基づいてオーディオファイルを分割する簡単なスクリプトを用意してみました。(正確にはChatGPTに質問して生成してもらったコードを手直ししただけです。いい時代になったものですね。)

なお、このスクリプトを使用するには、Pythonとpydubをインストールする必要があります。Python(とpip)のインストールは他の情報源を参照してください。pydubはpipをインストールした後に以下のコマンドでインストールできます。

pip install pydub

スクリプト本体

'''
split_audio.py - Split an audit file into tracks
'''

import os
import argparse
from pydub import AudioSegment
from datetime import datetime, timedelta

def hms_to_milliseconds(hms):
    td = datetime.strptime(hms, '%H:%M:%S') - datetime.strptime("00:00:00", '%H:%M:%S')
    return td.total_seconds()*1000

if __name__ == '__main__':
    # コマンドライン引数の解析
    parser = argparse.ArgumentParser(description='Split an audio file into tracks.')
    parser.add_argument('audio_file', help='path to the audio file to split')
    parser.add_argument('track_list', help='path to the text file containing track start times and names')
    parser.add_argument('output_dir', help='path to the output directory for the split tracks')
    args = parser.parse_args()
    
    # オーディオファイルを読み込む
    audio = AudioSegment.from_file(args.audio_file)
    
    # トラックリストを読み込む
    with open(args.track_list) as f:
        track_times = [line.strip().split('\t') for line in f]
    
    # トラックを切り出す
    for i, (start_time, track_name) in enumerate(track_times):
        start_time = hms_to_milliseconds(start_time)
        if i == len(track_times) - 1:
            end_time = len(audio)
        else:
            end_time = hms_to_milliseconds(track_times[i+1][0])
        track = audio[start_time:end_time]
        output_path = os.path.join(args.output_dir, track_name + '.mp3')
        track.export(output_path, format='mp3')

コマンドラインから実行する場合は、上記のコードをsplit_audio.pyという名前のファイルに保存し、以下のように実行します。

python split_audio.py audio_file.mp3 track_list.txt output_dir/

ここで、audio_file.mp3は分割するオーディオファイルのパス、track_list.txtはトラックの開始時間とトラック名が書かれたテキストファイルのパス、output_dir/はトラックを書き込むディレクトリのパスです。

オーディオファイルのフォーマットはmp3決め打ちにしていますが、pydubが解釈できる他のフォーマットでも大丈夫なはずです。その場合、コードの'mp3'の部分は適当に書き換えてください。 トラックリストは次の形式で与えてください。*1

HH:MM:SS トラック名

00:00:00    トラック01
00:02:55    トラック02
00:05:11    トラック03
00:07:35    トラック04
...

開始時間とトラック名はタブで区切ります。pydubは時間をミリ秒で扱っていますが、人間の読むトラックリストにミリ秒が表記されていることはないと思うので、スクリプトの中では秒未満の位置をすべて000ミリ秒としています。

えるのところではこれで無事に100トラック近くが含まれたmp3ファイルを分割できました。こんなの手作業でがんばってやりたくないよー。

*1:トラック名が出力されるファイル名になりますが、ファイルシステムで使用できない文字が含まれているかどうかのチェックはさぼっているので注意してくださいね。

僕ビール君ビール

 こんにちは、本ブログの管理人のえるです。

 えるがよく行くジムの隣にはローソンがあります。夏のジム帰りにローソンに寄り道していつも買っていくのがこれ。

僕ビール君ビール

 最近(最近でもないか)クラフトビールをスーパーやコンビニで見かけることが多くなりました。えるクラフトビールの定義*1についてはあまりよくわかっていない勢なのですが、ビールはラガーよりもエールが好きなので、手近なところでエールの選択肢が色々増えた昨今の状況は歓迎しています。

 コエドビールの毬花-Marihana-とかインドの青鬼とかもそれぞれ好きなのですが、1番のお気に入りがヤッホーブルーイングの僕ビール君ビール。フルーティな香りと爽やかな飲みごごちがこれからの季節にぴったり。黄色いポップな缶のデザインと薄めの色も明るい夕方にすごく合います。

 別な記事に書いたと思いますが、えるは仕事の関係でカリフォルニアのベイエリアでしばらく暮らしていたことがあります。夏至の頃はサマータイムが敷かれていることもあって、夜の9時近くまでは明るく、戸外で活動できるくらいでした。そういう夏の日は仕事が終わった後、テラスに食卓を持ち出してオープンエアでの夕食を楽しんでいたものです。えるが住んでいたところは夏季は乾燥するので蚊がほとんどいないのもありがたかった。外で食事をしていても一度も蚊に刺されたことはありませんでした。僕ビール君ビールを飲んでいるとそんな幸せだった夏の日を思い出します。

 ……。何がクラフトビールかというのは一般消費者からすればどうでも良い話なのですが、マイクロブルワリーが「クラフト」というブランドイメージを作り上げてきたのであるならば、そのブランドイメージに大手がフリーライドするようなことは商道徳として自重して欲しいなとは思います。

Father Christmasと階段の音楽

クリスマスの習慣

 こんにちは、本ブログの管理人のえるです。

 季節外れのトピックスを一つ。

 えるはクリスチャンではありませんが普通にクリスマスはお祝いします。キリスト教の祝祭というよりも、家族愛、隣人愛、人類愛を世界中の人たちと確認しあう日としてお祝いしています。

 えるのところではクリスマスのとき、恒例としている二つのことがあります。それはクリスマスイブの夜に「ファーザー・クリスマス」を観ることと、クリスマスの日の朝に「ジークフリート牧歌」で目覚めることです。

ファーザー・クリスマス

 「ファーザー・クリスマス」は「スノーマン」や「風が吹くとき」で知られるレイモンド・ブリッグズの絵本を原作としたアニメーション作品。「スノーマン」のDVDにカップリングで入っていたのをみてすっかり好きになりました。Amazon Primeビデオにあるので、プライム会員は無料で吹替版を視聴することができます。ただえるはオリジナルのメル・スミスのナレーションの方が好きです。

 江戸時代の都々逸に「一年を十日でくらすいい男」*1とありますが、かたや一年に1日しか働かない白髭のおじいさんの364日間の日常とは何か?(いやいや、その日以外にも手紙の返信を書いたりして働いていますから!)

 そんなサンタクロースの一年をユーモアとちょっとした皮肉を交えて描くこの作品を見ながら、えるは子どもたちの幸せを願ってボランティアでサンタの仕事の代行をしている世界中の無名の人たちの苦労を偲んでいます。

ジークフリート牧歌

 「ジークフリート牧歌 - Wikipedia」はリヒャルト・ワーグナーが妻コジマのために作った作品。初めて聴いたのはルキノ・ヴィスコンティの映画「ルートヴィヒ」に挿入された美しいシーンでした。ジークフリートの名前を使っていますが多分「指環」の内容とは直接関係はない*2穏やかで幸福感に満ちた曲です。クリスマスの早朝に駆り出された楽団員はさぞかし大変だったでしょうが、現代では誰にも手間をかけることなくこの美しい音楽をクリスマスの朝に楽しむことができます。

 カナダ出身のピアニスト、グレン・グールドはこの曲がお気に入りだったと見えて、ピアノアレンジ版の演奏を残しているほか、自らタクトを振ってオリジナル版の十三重奏の録音も行っています。普段はオーケストラ版で聴くことが多いのですが、グールドのピアノ版や十三重奏版も素朴でクリスマスらしい味わいがあって素敵です。Apple Musicにあるのでサブスクリプション会員の方は聞いてみてください。

 ところでヴィスコンティの「ルートヴィヒ」といえば、映画の前半部分でルートヴィヒが天井に夜空の雲を投影しながらオルゴールで「夕星の歌」を聴いているところに弟のオットーが来訪して会話するシーンがあります。あのオルゴールとプロジェクター、すごく素敵なので欲しいんですけど、どこか作ってくれないかなあ。

「ルートヴィヒ/神々の黄昏」より

家の整理をしていて「スノーマン/ファーザー・クリスマス」のDVDを見つけたのでこの記事を書いてみました。

*1:年間6場所90日制の現代の相撲と違い、江戸時代には相撲の試合は1年に10日ほどしかなかった

*2:一部素材は共用している

ポイント貯める派、貯めない派?

 こんにちは、本ブログの管理人のえるです。

 いろんなショップで買い物をするともらえるポイント。えるはポイント貯めない派です。もらったポイントは次の買い物で支払い金額に充当して全部使い切るようにしています。

ポイントを貯めない理由

ポイントは時間が経つほど価値が低減するから

 いうまでもなくポイントは値引きの後払いです。そして後でもらうお金は今もらえるお金より価値がありません。その理由はお分かりですね。

  • インフレ率がマイナスでない以上、お金の価値は少しづつ毀損している

  • 将来もらえるかどうかには不確実性がある。ショップが倒産するかもしれないし、自分が死ぬかもしれない

 もらえるものは今すぐもらうか、できるだけ早いタイミングでもらうのがお得に決まっています。

値引きをダブルカウントする錯覚に陥ってしまうから

 一般に10,000円のものを購入して「10%のポイント還元があります」と言われた時、「実質1割引の9,000円で購入するのだ」という価値判断をしていると思います。

 そういう買い物を10回くらい続けて貯めた10,000ポイントを10,000円の買い物の充当に当てると「実質タダだからお得」みたいに感じてしまいますが、そのお得感はすでに最初の購入の時にカウントしたものです。本来最初の購入の時に現金で割引してもらうべきものを後払いでもらっているに過ぎないのですから。

 ポイントで買っていてもそれは実際には新たに身銭を切って買っているのと同じなのですが、なんだかタダでもらっているみたいに感じてしまいますね?え、そんなのえるだけ?

 いずれにせよそういう錯覚に陥らないよう、ポイントは貯めない様にしています。

ショップの選択は自由でありたいから

 ポイントが貯まってくると、さらに貯めようという動機が働いてポイントの貯められるショップばかり使うようになりがちです。でもえるはいつでもどんな時でも買い物をする場所は自由に選びたい。だからポイントは貯まる前にさっさと手仕舞いして、さらに貯めようという気が起きないようにしています。

 結局ポイント制というのは値引き分を後払いにすることでキャッシュフローを改善し、かつ顧客のロイヤリティを高めるためのショップ有利な戦略な訳です。だからえるはポイント制がなく、その分現金で値引きしてくれるショップを贔屓するように心がけています。

海外で仕事できるレベルの英語を身につけるために行ったたった2つのこと

 こんにちは、本ブログの管理人のえるです。

 えるは勤め先の仕事の関係で累計5年ほど海外(北米)で暮らしました。「英語ができるんでしょう」と言われますが、そんなことは全然ありません。学生時代、英語の成績はあまり良くなかったし、英語のクラスでネイティブっぽい発音をするとクスクス笑われるようなそんな学校に通っていました。社会人になって「海外のグループ企業に行ってこい」と言われて初めてまともに英語の勉強を始めたような人です。

 そんなえるですが、たった2つのことを半年ほど続けた結果、海外に行って困らない程度には英語力を上げることができました。勉強を始める前は英検2級にも受からないくらいだったと思いますが、半年後に初めて受けたTOEICのスコアは885でした。(TOEICを受けたのはこの一度きり)最近の意識高い系の新入社員は900+のスコアを持っている人がわんさかいるので、885なんて会社の中では全然大したことはないのですが、高校卒業程度の英語力しかなかったえるにしては頑張った方だと思います。

 えるがやった2つの勉強法とはディクテーション英語の小説を読むことだけです。(もちろん、TOEIC受験直前には過去問を解くとかの一応の対策はしましたよ。)

ディクテーション

 ディクテーションは、耳から英語を聞き取り、それを書き起こすという方法です。この方法は、リスニングとスペルの練習に非常に効果的であり、英語のスキルを向上させるのに役立つと言われています。

 えるの場合、CDプレーヤーで英語の音声を流してこれをノートに書き取り、1センテンスごとにテキストと比較して完全に一致するまで、同じセンテンスを何度も何度もリピートして繰り返し聞いてノートに書き取るというトレーニングをしました。

  1. 一つのセンテンスをプレーヤーで流す
  2. 聞いたセンテンスを覚えてノートに書きとる
  3. 書き取った内容と正解のテキストを比較する
  4. 1箇所でも間違えていたら(聞き落とした単語があった、スペルを間違えていた、複数形の-sを聞き落としていた、etc.)1に戻る
  5. これを書き取った内容と正解のテキストが一致するまで何度でも繰り返す
  6. 以下、エンドレス(笑)

 これを朝晩の通勤電車の中で往復2時間、半年間やりました。すごーく地道な作業です。でもこれが一番効くんです。

 多くの人は中学、高校と英語を学んできているので英語の文章を「目で見て」理解する力はあります。英語のグラマーに関する体系的な知識では日本人の方が平均的米国人より上かもしれません。問題は耳で聞いた音と字面がつながらないということなんです。日本語と英語では発音の体系がかなり違って日本人には子音の多い音声は聞き取りにくいですし、英語は発音と表記の乖離が大きい言語としても知られています。「ボーゥ」が"ball"のことだというのは知らないと絶対わかりません。この発音と文字のつながりをつけるトレーニングがディクテーションなのです。

 よく「英語を聞くだけで話せるようになる」みたいな本がありますが、あれは嘘です。聞くだけでは絶対に理解できるようにはなりません。聞いた音を自分の手で文字にして目で見えるものにしてみて、発音と文字のつながりを体で覚えて初めて相手の言っていることがわかるようになります。

 使うテキストはなんでもいいと思います。必要なのはCDやダウンロードできる音声ファイルがあって、その内容が正確に記載されたテキストブックだけです。あとは5秒、10秒とか巻き戻しがワンタップでできるミュージックプレーヤーがあればディクテーションの練習は始められます。

英語の小説を読む

 ディクテーションと並行してえるが行ったのは英語の小説の原書を読むことです。小説といっても小難しいのは読めないので、えるが読んでいたのは児童文学やジュブナイル小説とかです。ロアルド・ダールとかダレン・シャンとかを読んでいました。

 ネイティブにはネイティブ特有の発想があります。これは考えて身に付くものではありません。よく引き合いに出されるのが「人生は一度きりだ」というのを英語にすると"You can't live twice"になるという例です。「人生は一度きりだ」という日本語から発想して英訳を考えているうちは、決して"You can't live twice"には辿り着きません。これはたくさんの実例に触れて覚えていくしかないものです。

 だから「英作文」ではなく「英借文」をしろと言われますね。日本語を英語に翻訳するのではなく、ネイティブの書いた英語の文章をたくさん引き出しに持っておいてそれを組み合わせて会話するんです。ビジネスメールなんてほとんど「英借文」でかたがつきます。パクリ上等!

 英語の文章をたくさん読むことはそういうネイティブの感覚、表現のパターンに触れるのに役立ちます。小説は、ストーリーや文体が様々なため、読むことで様々な英語の表現に触れることができます。まずは、自分が興味のあるジャンルの小説を選び、楽しむことを優先しましょう。だから簡単に読める児童文学はおすすめです。児童文学でもダールのような優れた作家の書いたものは優れた言葉の選択、表現によって英語に関する感覚を磨くのに役立ってくれると思いますよ。

これ洗ったやつ?

 こんにちは、本ブログの管理人のえるです。

 仕事でも私生活でも、誰かに手伝ってもらおうと思うのなら「今・何が・どういう状態なのか」ということを一目でわかるようにしておくことは大切だと思います。

 そういうわけでえるは食洗機にこういう札を下げています。

バルブ開閉札

 緑の「開」の時は、汚れた食器を入れても良い状態。洗剤を入れて洗浄・乾燥サイクルをスタートしたら赤の「閉」に変えます。

 食洗機が止まっていて札が赤の「閉」なら洗い終わった状態なので、気が付いたひとは食器を食器棚に戻して食洗機の中を空にしてから札を緑の「開」に戻す。

 いちいち「これ洗ったやつ?」とか「これ食洗機に入れていい?」とか聞かなくても自発的に自分が何をすべきかわかります。

 洗濯機の給水蛇口にも使えますよ。

会社支給の PCで101配列(US)キーボードを使いたい

 こんにちは、本ブログの管理人のえるです。

 えるはなぜか昔からUS配列のキーボードを使っています。理由は忘れました。多分一番最初に使ったキーボードがUS配列だったからじゃないかな?

 会社勤めしていて不満なことの一つは、会社支給のラップトップPC(Windows)はほとんどJIS配列キーボードだということです。外付けでお気に入りのUS配列キーボードを接続してもJIS配列になってしまい、キートップの表示と打鍵して入力される文字が不一致になります。インターネットをちょっと探すとMS謹製のカスタマイズユーティリティ Powertoys*1 やChange Key *2などを使ってレジストリを書き換えるハックが見つかるのですが、会社のPCはセキュリティ対策でレジストリへのアクセスが禁止されているので、これらのハックはことごとく使えません。

 えるがどうしているかというと、いろいろ探してDvorakJというアプリケーションを見つけて使っています。レジストリにアクセスせず、アプリケーションのレベルでキーの再配置を実現してくれる優れものです。しかもインストーラを必要としないポータブルアプリケーション - Wikipediaなので、管理者権限でないとインストーラが起動できない会社PCでも使えるのが嬉しい。

 設定はとても簡単で、DvorakJを起動して設定画面を開き、「キーボード>入力全般>SandSなど」の「101キー(英語配列)のキーボードを使用している(U)」にチェックを入れて再起動するだけです。

DvrakJの設定画面

 DvorakJはその名の通りキーボードをDvrak配列に変更したり、親指シフトに変更したりもできる超高機能なアプリケーションです。えるもほとんどその機能を使いこなせていませんが、英語配列変換だけでも十分使う価値があると思います。

 ガチガチのセキュリティポリシーに悩まされているすべての民にこの福音が届いてほしい(笑)