เซลล์ (โค้ด) ที่ 1
!nvidia-smi
เซลล์ (โค้ด) ที่ 2
!pip install faster-whisper -q
เซลล์ (โค้ด) ที่ 3
from faster_whisper import WhisperModel
import os
print("loading model...")
model = WhisperModel(
"large-v3",
device="cuda",
compute_type="float16"
)
เซลล์ (โค้ด) ที่ 4
from google.colab import drive
drive.mount("/content/drive", force_remount=True)
เซลล์ (โค้ด) ที่ 5
audio_file = "/content/drive/MyDrive/Colab Notebooks/untitled.flac"
srt_file = os.path.splitext(audio_file)[0] + ".srt"
เซลล์ (โค้ด) ที่ 6
print("start transcribing...")
segments, info = model.transcribe(
audio_file,
language="ja",
condition_on_previous_text=False,
temperature=0,
hallucination_silence_threshold=2,
compression_ratio_threshold=2,
word_timestamps=True,
beam_size=2
)
print("writing srt...")
def fmt(t):
h = int(t // 3600)
m = int((t % 3600) // 60)
s = int(t % 60)
ms = int((t - int(t)) * 1000)
return f"{h:02}:{m:02}:{s:02},{ms:03}"
with open(srt_file, "w", encoding="utf-8") as f:
i = 1
for segment in segments:
if segment.words:
first_word = segment.words[0]
last_word = segment.words[-1]
start = first_word.start
end = last_word.end
else:
start = segment.start
end = segment.end
text = segment.text.strip()
if not text:
continue
f.write(f"{i}\n")
f.write(f"{fmt(start)} --> {fmt(end)}\n")
f.write(text + "\n\n")
print(
f"[{i}] "
f"{fmt(start)} --> "
f"{fmt(end)} "
f"{text}"
)
i += 1
print("done!")
print("saved:", srt_file)
เซลล์ (โค้ด) ที่ 7
from google.colab import files
files.download(srt_file)