概要
以前に以下のような記事を作成しました
その際、動画の内容を文字起こししたいというような願望を書いていたのですが、実際に上記の記事ではやらないというよくわからないことをしてしまっておりましたので、今回は将来的にやりたいことにつながるような形にできるように学習も兼ねて遊んでいきたいと思います
本題
改めて最終的にやりたいことを整理すると、動画のなかで話している内容について「こういう話していたけど、どの動画だっけな、、」や「確かこの話はこの動画で話していたはず」みたいなことを知りたいというところがゴールになります
さらにいうとAIエージェントにこれなんの動画?って聞くと多分これかもみたいな感じで検索して探してくれるみたいなことができればなお良しという感じです
開発環境
- OS
- Macbook Air M1
- 言語
- Python 3.14
- パッケージ管理
- uv
以前の記事では「openai-whisper」を使っていたのですが、faster-whisperというものがあるそうで、そちらはもっと早いことや正確性が高いそうです
なので、今回はそれを使ってみようと思います
各種ファイル
[project]
name = "whi"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.14"
dependencies = [
"faster-whisper>=1.2.1",
"yt-dlp>=2026.6.9",
]
処理の流れとしてはyt-dlpで動画ダウンロードして、その内容をfaster-whisperで文字起こしするという内容になります
- 文字起こしするスクリプト
import os
import sys
import json
import argparse
import yt_dlp
from faster_whisper import WhisperModel
def download_audio(url, output_dir="downloads"):
"""
YouTube動画から音声をダウンロードして情報を返す
"""
print(f"Downloading audio from {url}...")
os.makedirs(output_dir, exist_ok=True)
ydl_opts = {
'format': 'm4a/bestaudio/best',
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'm4a',
}],
'outtmpl': os.path.join(output_dir, '%(id)s.%(ext)s'),
'quiet': True,
'no_warnings': True,
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info = ydl.extract_info(url, download=True)
video_id = info.get('id')
title = info.get('title')
duration = info.get('duration')
audio_path = os.path.join(output_dir, f"{video_id}.m4a")
return {
'video_id': video_id,
'title': title,
'duration': duration,
'audio_path': audio_path,
'url': url
}
def transcribe_audio(audio_path, model_size="small", language="ja"):
"""
音声ファイルをWhisperで文字起こしする
"""
print(f"Loading Whisper model '{model_size}'...")
# CPUで動作させ、メモリとCPU使用量を抑えるためにint8を指定
model = WhisperModel(model_size, device="cpu", compute_type="int8")
print(f"Transcribing audio file '{audio_path}'...")
# beam_size=5でビームサーチを行い、精度を上げる
segments, info = model.transcribe(audio_path, beam_size=5, language=language)
print(f"Detected language: {info.language} (probability: {info.language_probability:.2f})")
result_segments = []
full_text_parts = []
for segment in segments:
print(f"[{segment.start:6.2f}s -> {segment.end:6.2f}s] {segment.text}")
result_segments.append({
"start": round(segment.start, 2),
"end": round(segment.end, 2),
"text": segment.text.strip()
})
full_text_parts.append(segment.text.strip())
return result_segments, " ".join(full_text_parts)
def main():
parser = argparse.ArgumentParser(description="YouTube動画をダウンロードしてWhisperで文字起こしを行います。")
parser.add_argument("url", help="YouTube動画のURL")
parser.add_argument("--model", default="small", choices=["tiny", "base", "small", "medium", "large-v3"], help="使用するWhisperモデルのサイズ (デフォルト: small)")
parser.add_argument("--lang", default="ja", help="文字起こし対象の言語 (デフォルト: ja)")
parser.add_argument("--out-dir", default="transcripts", help="結果JSONの出力先ディレクトリ (デフォルト: transcripts)")
parser.add_argument("--keep-audio", action="store_true", help="文字起こし後にダウンロードした音声ファイルを残す")
args = parser.parse_args()
# 1. 音声ダウンロード
try:
video_info = download_audio(args.url)
except Exception as e:
print(f"Error downloading audio: {e}", file=sys.stderr)
sys.exit(1)
audio_path = video_info['audio_path']
video_id = video_info['video_id']
# 2. 文字起こし
try:
segments, full_text = transcribe_audio(audio_path, model_size=args.model, language=args.lang)
except Exception as e:
print(f"Error during transcription: {e}", file=sys.stderr)
# エラー時でもダウンロードした音声ファイルを削除する(--keep-audioがなければ)
if not args.keep_audio and os.path.exists(audio_path):
os.remove(audio_path)
sys.exit(1)
# 3. 結果の保存
os.makedirs(args.out_dir, exist_ok=True)
output_path = os.path.join(args.out_dir, f"{video_id}.json")
result_data = {
"video_id": video_id,
"title": video_info['title'],
"url": video_info['url'],
"duration": video_info['duration'],
"full_text": full_text,
"segments": segments
}
with open(output_path, "w", encoding="utf-8") as f:
json.dump(result_data, f, ensure_ascii=False, indent=2)
print(f"\nTranscription completed successfully!")
print(f"Saved result to: {output_path}")
# 4. 音声ファイルのクリーンアップ
if not args.keep_audio:
if os.path.exists(audio_path):
os.remove(audio_path)
print(f"Removed temporary audio file: {audio_path}")
if __name__ == "__main__":
main()
- 文字起こしした内容から検索する用のスクリプト
import os
import sys
import json
import argparse
def format_time(seconds):
"""
秒数を hh:mm:ss または mm:ss 形式にフォーマットする
"""
h = int(seconds // 3600)
m = int((seconds % 3600) // 60)
s = int(seconds % 60)
if h > 0:
return f"{h:02d}:{m:02d}:{s:02d}"
return f"{m:02d}:{s:02d}"
def search_transcripts(query, transcripts_dir="transcripts"):
"""
文字起こしデータからクエリを検索する
"""
if not os.path.exists(transcripts_dir):
print(f"Error: Directory '{transcripts_dir}' does not exist. Please transcribe some videos first.", file=sys.stderr)
return
files = [f for f in os.listdir(transcripts_dir) if f.endswith(".json")]
if not files:
print(f"No transcription data found in '{transcripts_dir}'.", file=sys.stderr)
return
print(f"Searching for '{query}' across {len(files)} video(s)...\n")
hits = []
for filename in files:
filepath = os.path.join(transcripts_dir, filename)
with open(filepath, "r", encoding="utf-8") as f:
data = json.load(f)
video_id = data.get("video_id")
title = data.get("title")
base_url = data.get("url")
segments = data.get("segments", [])
video_hits = []
for segment in segments:
# 大文字小文字を区別せずに部分一致検索
if query.lower() in segment["text"].lower():
# タイムスタンプ付きURLを生成 (t=秒数)
start_sec = int(segment["start"])
# 通常のYouTube URLからvideo_idを使ってクリーンなURLを作成
t_url = f"https://youtu.be/{video_id}?t={start_sec}"
video_hits.append({
"start": segment["start"],
"end": segment["end"],
"text": segment["text"],
"url": t_url
})
if video_hits:
hits.append({
"title": title,
"url": base_url,
"hits": video_hits
})
if not hits:
print("No matches found.")
return
print(f"Found {len(hits)} matching video(s):\n")
for idx, hit in enumerate(hits, 1):
print(f"{idx}. {hit['title']}")
print(f" Original URL: {hit['url']}")
print(f" Matches:")
for segment in hit['hits']:
time_str = format_time(segment['start'])
print(f" - [{time_str}] {segment['text']}")
print(f" Link: {segment['url']}")
print()
def main():
parser = argparse.ArgumentParser(description="文字起こし結果からキーワードを検索します。")
parser.add_argument("query", help="検索キーワード")
parser.add_argument("--dir", default="transcripts", help="文字起こしデータが保存されているディレクトリ (デフォルト: transcripts)")
args = parser.parse_args()
search_transcripts(args.query, args.dir)
if __name__ == "__main__":
main()
実行の流れ
uv run python transcribe.py "動画リンク"
上記を実行すると、動画のダウンロードから文字起こしまで完了します
3分ほどの動画で体感3,4分で処理が完了しました
まずは音楽の動画を流した結果になります(modelはtiny)
Loading Whisper model 'small'...
Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
Transcribing audio file 'downloads/zISjtVTuv70.m4a'...
Detected language: ja (probability: 1.00)
[ 0.00s -> 15.00s] BGM
[ 45.00s -> 48.50s] But it's wrong with another sin
[ 48.50s -> 52.00s] The bitch is hungry, she needs to tell
[ 52.00s -> 56.00s] So give her inches and feed her well
[ 56.00s -> 60.00s] Four days to come, new places to go
[ 60.00s -> 66.00s] I've got to leave it double to show
[ 67.00s -> 69.00s] Here I am
[ 69.00s -> 73.00s] Rock you like a hurricane
[ 74.00s -> 77.00s] Here I am
[ 77.00s -> 81.00s] Rock you like a hurricane
[ 84.00s -> 88.00s] My body's burning, it's off to shout
[ 88.00s -> 92.00s] Desire is coming, it breaks out loud
[ 92.00s -> 96.00s] Lust is in cages, the storm breaks loose
[ 96.00s -> 100.00s] Just have to make it with someone I choose
[100.00s -> 103.00s] Night is coming, I have to go
[103.00s -> 107.00s] The wolf is hungry, he wants to show
[107.00s -> 111.00s] It's flicking his lips, he's ready to win
[111.00s -> 117.00s] On the hunt tonight for love and blessing
[118.00s -> 120.00s] Here I am
[120.00s -> 124.00s] Rock you like a hurricane
[124.00s -> 126.00s] I leave it double to show
[126.00s -> 128.00s] Here I am
[128.00s -> 133.00s] Rock you like a hurricane
[134.00s -> 138.00s] Rock you like a hurricane
[138.00s -> 140.00s] Here I am
[140.00s -> 144.00s] Rock you like a hurricane
[144.00s -> 146.20s] Round-Round-Round-Round-Round
[146.20s -> 147.80s] Killer-A
[148.80s -> 153.70s] Walk-A-Walk the hurricane
[155.80s -> 158.00s] Killer-A
Transcription completed successfully!
精度が良くなかったのでmediumとlarge-v3というモデルも試してみましたが、最終的に良さそうだったのはmediumでした(large-v3は時間がかかる割に、そこまで良い制度ではありませんでした)
medium
[ 0.00s -> 2.00s] This is the final version of the video.
[ 2.00s -> 4.00s] Thanks for watching.
[ 4.00s -> 6.00s] If you like this video, please subscribe.
[ 6.00s -> 8.00s] And if you want to see more,
[ 8.00s -> 10.00s] please click the like button.
[ 10.00s -> 12.00s] See you next time.
[ 30.00s -> 36.00s] It's early in the morning, the sun comes out
[ 36.00s -> 40.00s] Last night was shakin', pretty loud
[ 40.00s -> 44.00s] My cat is purrin', it scratches my skin
[ 44.00s -> 48.00s] So what is wrong with another sin?
[ 48.00s -> 52.00s] The bitch is hungry, she needs to tell
[ 52.00s -> 56.00s] So give her inches, and feed her well
[ 56.00s -> 60.00s] More days to come, new places to go
[ 60.00s -> 66.00s] I've got to leave, it's time for the show
[ 67.00s -> 73.00s] Here I am, rock you like a hurricane
[ 75.00s -> 82.00s] Here I am, rock you like a hurricane
[ 83.00s -> 87.00s] My body's burning, it starts to shout
[ 87.00s -> 91.00s] Desire is coming, it breaks out loud
[ 91.00s -> 95.00s] Lust is in cages, the storm breaks loose
[ 95.00s -> 99.00s] Just have to make it with someone I choose
[ 99.00s -> 103.00s] The night is coming, I have to go
[103.00s -> 107.00s] The wolf is hungry, he runs to show
[107.00s -> 111.00s] He's licking his lips, he's ready to win
[111.00s -> 117.00s] On the hunt tonight for love and mercy
[118.00s -> 124.00s] Here I am, rock you like a hurricane
[126.00s -> 134.00s] Here I am, rock you like a hurricane
[134.00s -> 138.00s] Rock you like a hurricane
[138.00s -> 144.00s] Here I am, rock you like a hurricane
[146.00s -> 154.00s] Here I am, rock you like a hurricane
[156.00s -> 158.00s] Here I am
large-v3
[ 0.00s -> 10.00s] 🎵
[ 30.00s -> 36.52s] It's early morning, the sun comes out
[ 36.52s -> 40.34s] Last night was shaking, it ain't loud
[ 40.34s -> 44.18s] My cat is purring, this fetches my skin
[ 44.18s -> 48.20s] So what is wrong with another sin?
[ 48.20s -> 51.88s] The bitch is hungry, she needs to tell
[ 51.88s -> 55.84s] So give her inches and feed her well
[ 55.84s -> 59.82s] More days to come, new places to go
[ 59.82s -> 64.64s] I've got to leave, it's time for the show
[ 64.64s -> 71.64s] Here I am, rock you like a hurricane
[ 74.10s -> 79.86s] Here I am, rock you like a hurricane
[ 79.86s -> 87.72s] My body's burning, it's hard to shout
[ 87.72s -> 89.72s] Desire is coming
[ 89.72s -> 89.80s] 🎵
[ 89.82s -> 91.70s] It breaks out loud
[ 91.70s -> 95.46s] Lust is in cages, the storm breaks loose
[ 95.46s -> 99.44s] Just have to make it with someone I choose
[ 99.44s -> 103.32s] The night is calling, I have to go
[103.32s -> 107.26s] The wolf is hungry, he wants to show
[107.26s -> 111.10s] He's licking his lips, he's ready to win
[111.10s -> 114.60s] On the hunt tonight for love and prestige
[114.60s -> 119.60s] Here I am
[119.82s -> 120.82s] 🎵
[120.82s -> 123.82s] Rock you like a hurricane
[123.82s -> 125.26s] Only baby on the
[125.26s -> 128.08s] Here I am
[128.08s -> 128.10s] 🎵
[128.10s -> 134.20s] Rock you like a hurricane
[134.20s -> 137.28s] Rock you like a hurricane
[137.28s -> 137.82s] 🎵
[137.82s -> 139.14s] Here I am
[139.14s -> 140.98s] 🎵
[140.98s -> 143.46s] Rock you like a hurricane
[143.46s -> 144.92s] 🎵
[144.92s -> 145.76s] Come on come on
[145.76s -> 146.64s] 🎵
[146.64s -> 148.66s] Here I am
[148.66s -> 148.94s] 🎵
[148.94s -> 149.30s] 🎵
[149.30s -> 151.20s] You like a hurricane
[151.20s -> 156.40s] You
Apendix
最後に日本語の動画の精度を確認してから終わろうと思います
動画は15分くらいです、modelは先ほど比較してよかったmediumにしております
かなり良い精度かなというところと処理時間も許容できる範囲で、一通りの動画を取得するのにもそこまで時間はかからなさそうな印象でした
ループして全て動画を取得したのちに、検索できるようにできそうな希望が見えました
長いので興味ある方のみご覧ください
[ 0.00s -> 4.00s] 【オープニング】
[ 4.00s -> 7.00s] 【拍手】
[ 7.00s -> 8.00s] どうも、よろしくお願いします
[ 8.00s -> 9.00s] お願いします
[ 9.00s -> 11.00s] あのさ、もう俺も46歳で
[ 11.00s -> 14.00s] えー、全然見えへんって言いたかった
[ 14.00s -> 16.00s] 大丈夫、大丈夫、見えるから
[ 16.00s -> 17.00s] めっちゃ見える
[ 17.00s -> 20.00s] 46にもなってさ、40でも折り返しに来たときにも
[ 20.00s -> 21.00s] 折り返しですね
[ 21.00s -> 23.00s] もうちょっと落ち着いた人になりたいなと
[ 23.00s -> 25.00s] 確かにいい歳やから
[ 25.00s -> 27.00s] だからね、落ち着いた男になるためにも
[ 27.00s -> 29.00s] 朝活を始めようかと
[ 29.00s -> 30.00s] あ、そう、朝活
[ 30.00s -> 34.00s] あるいはそれ、楽屋で人のものを漁る活動
[ 34.00s -> 35.00s] 楽屋泥棒ですね
[ 35.00s -> 36.00s] 人のものを漁る
[ 36.00s -> 38.00s] ただの楽屋泥棒になるから、違う
[ 38.00s -> 42.00s] 朝を充実させてな、一日を良い日にするっていう活動や
[ 42.00s -> 45.00s] 確かにこの、大人としては良い趣味だもん
[ 45.00s -> 47.00s] いつもより早くちょっと起きて
[ 47.00s -> 49.00s] 例えば、順喫さんに行ってみたりさ
[ 49.00s -> 51.00s] で、そこでマスターと会話したり
[ 51.00s -> 53.00s] 常連さんと喋ってみる
[ 53.00s -> 55.00s] あと、読書なんかを楽しむ
[ 55.00s -> 56.00s] これちょっとやってみたいな
[ 56.00s -> 57.00s] これは大人としてかっこいいです
[ 57.00s -> 58.00s] じゃあちょっとこれやりたいからさ
[ 58.00s -> 59.00s] これちょっとマスターやってくれ
[ 59.00s -> 60.00s] 俺マスター
[ 60.00s -> 61.00s] で、俺行くから、頼むわ
[ 63.00s -> 64.00s] カランコロンカラーン
[ 64.00s -> 65.00s] カランコロンカラーン
[ 65.00s -> 66.00s] あ、挨拶ちゃうんだ
[ 66.00s -> 68.00s] カランコロンカラーン
[ 68.00s -> 69.00s] すごいやん
[ 69.00s -> 71.00s] いや、行ったことあるよね、順喫さん
[ 71.00s -> 72.00s] カランコロンカラーン
[ 72.00s -> 74.00s] だいたい店開けたらさ
[ 74.00s -> 76.00s] 音鳴るやん、挨拶じゃないから
[ 76.00s -> 77.00s] カラン
[ 77.00s -> 79.00s] カランでいいもん、見て
[ 79.00s -> 81.00s] ちゃんといらっしゃいませって言ってくれたから
[ 81.00s -> 82.00s] いらっしゃい
[ 82.00s -> 83.00s] 頼むわ
[ 85.00s -> 86.00s] カランコロンカラーン
[ 86.00s -> 87.00s] いらっしゃい、カラーン
[ 87.00s -> 88.00s] いや、カラン出てる
[ 88.00s -> 89.00s] カランが出てんの
[ 89.00s -> 91.00s] いらっしゃいませませませませ
[ 91.00s -> 92.00s] すごいエコー聞いてるよ
[ 92.00s -> 94.00s] カラオケボクさんか、ここは
[ 94.00s -> 95.00s] いらっしゃいませ
[ 95.00s -> 96.00s] マスター、おはよう
[ 96.00s -> 97.00s] おはようございます
[ 97.00s -> 98.00s] すごいな、おい
[ 98.00s -> 99.00s] なに、こいつ
[ 99.00s -> 101.00s] ありがとうございます
[101.00s -> 103.00s] すいません、いつもこんな汚い椅子
[103.00s -> 104.00s] いや、俺、金貸してんの
[104.00s -> 106.00s] どうぞ、お金貸して
[106.00s -> 108.00s] 金貸してないとおかしいぐらいの対応やねん
[108.00s -> 110.00s] いや、そう、顔なじみやから、もっとフランクでいいから
[110.00s -> 111.00s] わかる、わかる
[111.00s -> 112.00s] いらっしゃいませ
[112.00s -> 113.00s] マスター、おはよう
[113.00s -> 114.00s] ああ、おはよう
[114.00s -> 116.00s] いや、相変わらず、今日もムクんでるね
[116.00s -> 117.00s] 言うか
[117.00s -> 119.00s] 一応、接客受けるやつ、そんなこと言うわけない
[119.00s -> 120.00s] いらっしゃいませ
[120.00s -> 121.00s] マスター、いつものやつを
[121.00s -> 122.00s] かしこまりました
[122.00s -> 124.00s] いや、ほんとかっこいいね
[124.00s -> 126.00s] スタイルもよくて、足も長く
[126.00s -> 128.00s] 最高だよ
[128.00s -> 129.00s] じゃあ、ドリンクの方は
[129.00s -> 131.00s] いつもの褒め言葉を違うんだよ
[131.00s -> 134.00s] なんで俺、店行って、褒め言葉をもらいに行ってんの
[134.00s -> 135.00s] だいぶ痛いやろ、お前
[135.00s -> 136.00s] いつものやつは、それじゃない
[136.00s -> 137.00s] 全然違う、お前
[137.00s -> 139.00s] ドリンクや、いつものやつを言ったら
[139.00s -> 140.00s] あ、じゃあ、ドリンクの
[140.00s -> 141.00s] 当たり前やろが
[141.00s -> 142.00s] ドリンクの、いつものやつで
[142.00s -> 143.00s] 頼むわ
[143.00s -> 144.00s] かしこまりました
[144.00s -> 145.00s] 少々お待ちください
[146.00s -> 147.00s] いやー、マスター
[147.00s -> 149.00s] それにしても、あったかくなってきましたね
[150.00s -> 151.00s] 世間のメガですか
[151.00s -> 152.00s] そういうこと違うわ
[153.00s -> 154.00s] 気候の話
[154.00s -> 155.00s] ああ、ね、最近やっと
[155.00s -> 156.00s] 春っぽくなってきましたもんね
[156.00s -> 159.00s] ちょっと前までめちゃくちゃ寒かったやんが
[159.00s -> 160.00s] 井上さんの存在が
[160.00s -> 163.00s] 違うよ、気候の話やる
[163.00s -> 165.00s] 最近寒暖さがひどいですよね
[165.00s -> 166.00s] いや、でもほんまちょっと
[166.00s -> 168.00s] 花粉すごくない?
[168.00s -> 169.00s] もうちょっと、今年一と言っても
[169.00s -> 170.00s] 花粉にはないよね
[170.00s -> 172.00s] 俺はね、めん玉が取れるんやったら
[172.00s -> 173.00s] 取り出してボールで洗いたい
[173.00s -> 174.00s] ちょっと黙ってもらえますか
[174.00s -> 175.00s] 嘘やろ
[176.00s -> 177.00s] え、嘘やん
[177.00s -> 178.00s] 話しかけないでください
[178.00s -> 179.00s] お前、向いてないって
[179.00s -> 180.00s] 喫茶店のマスター
[180.00s -> 181.00s] 話しかけられると
[181.00s -> 182.00s] ドリンクが作れないんで
[182.00s -> 183.00s] マジかこいつ
[183.00s -> 184.00s] いや、大抵この喋りながら
[184.00s -> 185.00s] 作るやろ、お前
[185.00s -> 186.00s] 話しかけないでくださいよ
[186.00s -> 187.00s] こいつ
[187.00s -> 188.00s] はい、じゃあいつものやつを
[188.00s -> 189.00s] お待たせしました
[189.00s -> 190.00s] あ、ありがとう
[190.00s -> 191.00s] 風呂の残り湯です
[191.00s -> 192.00s] 誰が飲むの、そんなの
[192.00s -> 193.00s] 風呂の残り湯
[193.00s -> 194.00s] 飲むかい、バカたる
[195.00s -> 196.00s] じゃあいつもの
[196.00s -> 197.00s] ブレンドコーヒーです
[197.00s -> 198.00s] ありがとう
[198.00s -> 199.00s] これサービスなんですけど
[199.00s -> 200.00s] これよかったらね
[200.00s -> 202.00s] これもゴディバのチョコレート
[202.00s -> 204.00s] 染みに染み込んだ
[204.00s -> 205.00s] ウェットティッシュ
[205.00s -> 206.00s] 気持ち悪
[206.00s -> 207.00s] 寝ぶっててね
[207.00s -> 208.00s] なんでそんなもん
[208.00s -> 209.00s] 寝ぶらなあかんね
[209.00s -> 210.00s] 何がサービスだぜ
[210.00s -> 211.00s] もっとまともなもんだぜ
[211.00s -> 212.00s] 確かまりました
[212.00s -> 213.00s] こちら、オーミの漬けマグロです
[213.00s -> 214.00s] コーヒーだわんやろ
[214.00s -> 216.00s] 誰がコーヒーとマグロ食うねん
[216.00s -> 217.00s] もういいですじゃん
[217.00s -> 218.00s] はい
[219.00s -> 221.00s] あら、小林さん
[221.00s -> 223.00s] ちょうど井上くんも来てるんで
[223.00s -> 224.00s] あ、そう?
[224.00s -> 225.00s] あ、分かりました
[225.00s -> 226.00s] またのお越しを
[226.00s -> 227.00s] 嫌われてんのか、お前
[228.00s -> 230.00s] いや、常連とも仲良くやってるから
[230.00s -> 231.00s] 入ってこいよ、お前
[231.00s -> 232.00s] あ、井上さん
[232.00s -> 233.00s] あ、小林くん
[233.00s -> 234.00s] 小林さん
[234.00s -> 235.00s] 井上くんも来てますよ
[237.00s -> 238.00s] あらあら
[238.00s -> 240.00s] 井上くんなんか最近よく来てるね
[240.00s -> 241.00s] あ、そうなんですよ
[241.00s -> 242.00s] え、なになに
[242.00s -> 243.00s] 干されてる
[243.00s -> 244.00s] そんなわけないやろ
[244.00s -> 245.00s] また最近
[245.00s -> 246.00s] 朝活始めたんですよ
[246.00s -> 248.00s] 朝、朝新活動ね
[248.00s -> 249.00s] 殺しやと
[249.00s -> 252.00s] 朝を充実させる活動始めたんですよ
[252.00s -> 253.00s] あ、そうそう
[253.00s -> 254.00s] あ、分かりました
[254.00s -> 255.00s] あの、いつものやつ
[255.00s -> 256.00s] 貸し込まれました
[257.00s -> 258.00s] たか、お前は
[258.00s -> 260.00s] カレーシューがエグいんだよ
[260.00s -> 261.00s] お前、風呂入ってから来い
[261.00s -> 262.00s] お前、デキン寝せるぞ
[263.00s -> 264.00s] あ、ありがとう
[264.00s -> 266.00s] ののしりことも欲しい人おんの?
[266.00s -> 267.00s] すごいね
[267.00s -> 269.00s] ののしりことも欲しいんだ
[269.00s -> 270.00s] 死にわたるな
[270.00s -> 271.00s] だいぶエムやな、こいつ
[271.00s -> 272.00s] やっぱ、これがないと
[272.00s -> 273.00s] いちいち頑張れないから
[273.00s -> 274.00s] すごいね、この人
[274.00s -> 275.00s] あ、そうですか
[275.00s -> 276.00s] え、じゃあ、飲み物の風呂は
[276.00s -> 277.00s] あ、じゃあ、いつもの
[277.00s -> 278.00s] 風呂の残り湯で
[278.00s -> 279.00s] 飲む人おんねん
[279.00s -> 280.00s] この人のせいで
[280.00s -> 281.00s] この人のせいで
[281.00s -> 282.00s] 飲み人がんの
[282.00s -> 283.00s] いらっしゃいませ
[283.00s -> 284.00s] すごいね
[284.00s -> 285.00s] 変な方、もうちょっと
[285.00s -> 286.00s] 関わらんとこ
[286.00s -> 287.00s] はい、お待たせしました
[289.00s -> 290.00s] 見てください
[290.00s -> 291.00s] またですよ
[292.00s -> 293.00s] あ、ほんとだね
[295.00s -> 296.00s] 毎日だね
[296.00s -> 297.00s] よくもう
[297.00s -> 299.00s] あれだけ見れるね
[299.00s -> 300.00s] 鏡ね
[300.00s -> 301.00s] 読書してんねん
[301.00s -> 302.00s] ありがとうございました
[306.00s -> 307.00s] 今回の歌は
[307.00s -> 308.00s] アサカツです
[308.00s -> 309.00s] はい
[310.00s -> 311.00s] これね
[312.00s -> 313.00s] アサカツが
[313.00s -> 315.00s] やりたいわけではなくて
[315.00s -> 316.00s] 最近
[316.00s -> 317.00s] 喫茶店に
[317.00s -> 318.00s] よく行くんですよ
[318.00s -> 319.00s] 朝アイチでね
[320.00s -> 323.00s] 子供たちを送ったりした
[324.00s -> 325.00s] あと
[325.00s -> 326.00s] パッとちょっとだけ
[326.00s -> 327.00s] 喫茶店に
[327.00s -> 328.00s] 行ってみたいなんで
[328.00s -> 330.00s] そこで常連さんと話したりとか
[330.00s -> 332.00s] そういうのをして
[333.00s -> 336.00s] こういうのいいなと思って
[336.00s -> 337.00s] で、いいのよ
[337.00s -> 338.00s] そんな朝早く起きて
[339.00s -> 340.00s] 起きても
[340.00s -> 341.00s] イカ
[342.00s -> 343.00s] 最近年齢的に
[343.00s -> 344.00s] 歳とってきたから
[344.00s -> 345.00s] 早く起きるけど
[346.00s -> 347.00s] わざわざ
[347.00s -> 348.00s] 喫茶店に行こうとなるんだ
[348.00s -> 349.00s] そもそも俺
[349.00s -> 351.00s] コーヒーそんな好きちゃうし
[353.00s -> 354.00s] 飲むけど
[354.00s -> 355.00s] はいはい
[355.00s -> 356.00s] お前めっちゃ飲むよ
[356.00s -> 357.00s] めっちゃ飲みます
[357.00s -> 359.00s] 俺そこまで飲まへんから
[361.00s -> 362.00s] 俺もう引くぐらい飲みます
[362.00s -> 363.00s] お前飲んでるよな
[363.00s -> 364.00s] 飲んでます
[364.00s -> 365.00s] 俺の周りでも
[366.00s -> 367.00s] 現場変わるごとに
[367.00s -> 368.00s] コーヒー飲んでるやんって
[368.00s -> 369.00s] 言ってて
[369.00s -> 370.00s] おるやんか
[370.00s -> 371.00s] スタイリストさんとかも
[372.00s -> 373.00s] 俺コーヒー飲まなくて
[373.00s -> 375.00s] 喫茶店行かへんだよなと思うわ
[380.00s -> 382.00s] 渋い喫茶店行くのも好きなんで
[382.00s -> 383.00s] だからこれを
[384.00s -> 386.00s] 井上にやらせんのはいいな
[387.00s -> 389.00s] 言うとバーのネタの
[389.00s -> 391.00s] リバイバーじゃないですけど
[391.00s -> 393.00s] そんな雰囲気も
[393.00s -> 394.00s] ありつつ
[394.00s -> 397.00s] 常連に嫌われてる人って実はおんねんか
[398.00s -> 399.00s] 常連だから
[399.00s -> 400.00s] あー来た
[401.00s -> 402.00s] あの人話し長いね
[402.00s -> 403.00s] 悪い人じゃないね
[403.00s -> 404.00s] 話し長いね
[405.00s -> 406.00s] 喋りたい
[407.00s -> 408.00s] みたいなのがあって
[408.00s -> 409.00s] そういうお客さん来たら
[410.00s -> 413.00s] さっきまで普通に喋っててんけど
[414.00s -> 415.00s] マスターとかと
[415.00s -> 417.00s] 普通に喋っててんけど
[417.00s -> 420.00s] 急に一応その人が来た時に
[420.00s -> 421.00s] 本を置いてる人とか
[421.00s -> 423.00s] 新聞を置いてる人とか
[423.00s -> 425.00s] ちょっと逃げ終われるように
[426.00s -> 428.00s] そういう人が
[428.00s -> 429.00s] おったりするから
[429.00s -> 431.00s] じゃあこのよく喋るおじさんを
[431.00s -> 433.00s] 井上みたいな設定にしてみたいな
[434.00s -> 435.00s] やるといいなみたいな
[436.00s -> 437.00s] でもやっぱあいう
[437.00s -> 438.00s] 準喫茶の
[439.00s -> 441.00s] トーストってだんだんうまいやろな
[442.00s -> 443.00s] 厚焼きな
[443.00s -> 444.00s] ちょっと分厚いやつな
[444.00s -> 446.00s] あれ家でやってもあかんやん
[446.00s -> 447.00s] 同じサイズでやっても
[447.00s -> 449.00s] やっぱ雰囲気なんやろなやっぱ
[449.00s -> 450.00s] 雰囲気も
[450.00s -> 451.00s] あとゆでたまご
[451.00s -> 452.00s] ゆでたまごね
[454.00s -> 455.00s] なんやろあれほんま
[456.00s -> 457.00s] 腹立つはうまさ
[459.00s -> 460.00s] ね
[460.00s -> 461.00s] 俺あの金額でね
[461.00s -> 462.00s] 500円くらいでな
[462.00s -> 464.00s] いけるっていうのはやっぱいいっすよね
[465.00s -> 467.00s] まあ今どんどん減ってきてるからな
[468.00s -> 469.00s] そういう喫茶店も
[470.00s -> 471.00s] そうなんすか
[471.00s -> 472.00s] そうそうだってやっぱカフェの方が
[472.00s -> 474.00s] 断汰多いやんか
[475.00s -> 476.00s] でやっぱり
[476.00s -> 478.00s] 年齢的なことも含めて
[478.00s -> 480.00s] リタイアする人が多いからな
[481.00s -> 482.00s] まあね
[483.00s -> 484.00s] いやでも
[485.00s -> 486.00s] いいですよこれは
[486.00s -> 487.00s] この朝カツという
[488.00s -> 489.00s] テーマでね
[489.00s -> 492.00s] 俺だから最近朝カツはしてないけど
[492.00s -> 494.00s] 超カツは始めだからな
[495.00s -> 496.00s] 朝起きて
[497.00s -> 500.00s] 70度の左右を飲む
[501.00s -> 502.00s] 今まではそれしてなかったけど
[503.00s -> 505.00s] 年齢とともに超カツ始めようと思って
[506.00s -> 507.00s] 1個だけその1個だけですか
[508.00s -> 509.00s] 朝起きて飲むのがいいんやろだから
[510.00s -> 511.00s] その1個だけですか
[511.00s -> 513.00s] 俺らスタートラインやから
[513.00s -> 514.00s] いやびっくりした
[514.00s -> 515.00s] 超カツって言うから
[516.00s -> 517.00s] いろいろやってる
[517.00s -> 518.00s] まだその1個だけ
[518.00s -> 519.00s] まずそこから帰ってこうと思って
[519.00s -> 520.00s] まだ左右カツです
[521.00s -> 522.00s] 超カツや
[522.00s -> 523.00s] いや左右カツです
[523.00s -> 525.00s] いや左右カツは左右見カツに
[525.00s -> 526.00s] そうですだから今
[526.00s -> 528.00s] 左右カツ左右見カツで
[528.00s -> 529.00s] 今もうこれです
[529.00s -> 530.00s] これこれやしこれやし
[530.00s -> 531.00s] 一人で
[531.00s -> 532.00s] 一人でこれのこれです
[532.00s -> 533.00s] おいおいおいほんと
[533.00s -> 534.00s] ほんと
[534.00s -> 535.00s] 俺一人でそうなの
[536.00s -> 537.00s] 今左右カツですから
[538.00s -> 540.00s] つけてこうかな
[541.00s -> 542.00s] まだ超カツに入ってない
[542.00s -> 544.00s] もうちょっと超カツに入ったら
[544.00s -> 545.00s] 入ってから言ってください
[546.00s -> 548.00s] 超カツ入って朝カツに行けるように伝えるわ
[549.00s -> 550.00s] ということでいいね
[550.00s -> 551.00s] チャンネル登録お待ちしております
[551.00s -> 552.00s] また次回お会いしましょう
[552.00s -> 553.00s] さよなら
[553.00s -> 554.00s] さよなら
おわりに
以前、調べたOpenAIWhisperではなくfaster-whisperというものがあるということに驚きでした
色々調べた記事の日付的には、自分が記事を書いていたときにはすでに存在はしていたのでリサーチ不足だったなと反省しております
免責事項・注意事項
本記事で紹介した手法は、あくまで技術的な学習や検証を目的としたものです。YouTube等の動画共有サービスを利用する際は、各サービスの利用規約および各国の著作権法を遵守してください。特に、違法にアップロードされたコンテンツのダウンロードや、著作権者の許諾を得ていないコンテンツの保存・再配布は厳禁です。本記事の内容を利用して生じたトラブルや損害について、筆者は一切の責任を負いかねます。適切な利用をお願いいたします。