Cohere Transcribe 03の使い方:2026実践ガイド(オールインワン代替としてのBibiGPTも)
ガイド

Cohere Transcribe 03の使い方:2026実践ガイド(オールインワン代替としてのBibiGPTも)

公開日 · 著者: BibiGPT チーム

Cohere Transcribe 03の使い方:2026実践ガイド(オールインワン代替としてのBibiGPTも)

TL;DR: Cohere Transcribe 03を使うには4つ——pip install transformers torchaudioHugging Face CohereLabs/cohere-transcribe-03-2026 からモデル取得 → 同梱 processor で音声をテンソル化 → model.generate() で単語レベル文字起こし。 本ガイドではコマンド、よくある落とし穴、パフォーマンス調整、SRT結合まで通します。最後の判断表で、自前ホスティングが合うときと、BibiGPTのオールインワンSaaSの方が速いときを分けます。

BibiGPT 製品画面

BibiGPT AI 要約デモ

BibiGPT 音声・動画処理

BibiGPT 機能スクリーンショット

目次

Cohere Transcribe 03とは

Cohereが2026年4月にオープンソース化した、2Bパラメータのエンドツーエンド音声→テキストモデル。14言語対応(英語、中国語、スペイン語、日本語、韓国語、フランス語、ドイツ語、ポルトガル語、アラビア語、ヒンディー語、ロシア語、トルコ語、ベトナム語、タイ語)。ONNXとHugging Face Transformersの両方のランタイムが最初から同梱。商用無料、重みダウンロード可、売りは単語レベルのタイムスタンプ。

向いている場合

  • GPU+エンジニアリングチームがあり、プライベートASRをデプロイしたい
  • ネットワーク外に出せない機密データ
  • 自前ホスティングがSaaSより経済的になる十分なボリューム
  • ファインチューンや拡張をしたい

向かない場合

  • たまにASRを使う個人クリエイター
  • DevOps余力がない
  • 要約 / マインドマップ / バイリンガル字幕が欲しい(Transcribe 03は字幕まで——下流処理なし)

Step 1: 環境構築

# Python 3.10+, CUDA 12.1+ 推奨
python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install transformers torch torchaudio onnxruntime-gpu soundfile

落とし穴1: torchはCUDAと一致させる。 CUDA 12.1ビルドは pip install torch --index-url https://download.pytorch.org/whl/cu121 で強制。

落とし穴2: macOSではtorchaudioがCUDA非対応。 AppleシリコンはMetal(device="mps")——CPUより4〜5倍速いがNVIDIA GPUより約3倍遅い。

Step 2: モデル取得と初期化

from transformers import AutoProcessor, AutoModelForSpeechSeq2Seq
import torch

MODEL_ID = "CohereLabs/cohere-transcribe-03-2026"
device = "cuda" if torch.cuda.is_available() else "mps" if torch.backends.mps.is_available() else "cpu"

processor = AutoProcessor.from_pretrained(MODEL_ID)
model = AutoModelForSpeechSeq2Seq.from_pretrained(
    MODEL_ID,
    torch_dtype=torch.float16 if device == "cuda" else torch.float32,
).to(device)
model.eval()

落とし穴3: 初回ダウンロードは約4GB。 HF_HUB_ENABLE_HF_TRANSFER=1 とカスタム HF_HOME でシステムディスクを埋めないように。

Step 3: 音声前処理

Transcribe 03は16 kHzモノラルWAV入力が必要:

import torchaudio

def load_audio(path: str) -> torch.Tensor:
    waveform, sr = torchaudio.load(path)
    if waveform.shape[0] > 1:
        waveform = waveform.mean(dim=0, keepdim=True)
    if sr != 16000:
        waveform = torchaudio.functional.resample(waveform, sr, 16000)
    return waveform.squeeze(0)

audio = load_audio("interview.mp3")  # mp3 / wav / m4a / flac いずれもOK

落とし穴4: 長い音声はスライス。 30秒超は30秒間隔でチャンクしないとアテンションメモリが爆発。本番ではVAD(silero-vad)で無音分割の方が賢い。

Step 4: 推論実行

def transcribe(audio_tensor: torch.Tensor, language: str = "en") -> dict:
    inputs = processor(
        audio_tensor,
        sampling_rate=16000,
        return_tensors="pt",
        language=language,
        return_timestamps="word",  # 単語レベルタイムスタンプ
    ).to(device)

    with torch.no_grad():
        outputs = model.generate(
            **inputs,
            max_new_tokens=448,
            num_beams=5,
        )

    return processor.batch_decode(outputs, skip_special_tokens=False, output_offsets=True)[0]

result = transcribe(audio, language="en")
print(result["text"])
for word in result["offsets"]:
    print(f"[{word['timestamp'][0]:.2f}-{word['timestamp'][1]:.2f}] {word['text']}")

落とし穴5: num_beams=5num_beams=1 より精度約3%向上だが4倍遅い。 SLAに合わせて調整。

Step 5: SRT字幕の結合

単語レベルタイムスタンプは、文単位のSRT行に自分で結合する必要があります:

def words_to_srt(offsets, max_chars_per_line: int = 42) -> str:
    lines = []
    current = {"start": None, "end": None, "text": ""}
    idx = 1

    for w in offsets:
        if current["start"] is None:
            current["start"] = w["timestamp"][0]
        current["end"] = w["timestamp"][1]
        current["text"] += w["text"]

        if len(current["text"]) >= max_chars_per_line or w["text"].endswith((".", "?", "!", "。", "!", "?")):
            start = format_time(current["start"])
            end = format_time(current["end"])
            lines.append(f"{idx}\n{start} --> {end}\n{current['text'].strip()}\n")
            idx += 1
            current = {"start": None, "end": None, "text": ""}

    return "\n".join(lines)

def format_time(seconds: float) -> str:
    h = int(seconds // 3600)
    m = int((seconds % 3600) // 60)
    s = seconds % 60
    return f"{h:02d}:{m:02d}:{s:06.3f}".replace(".", ",")

srt = words_to_srt(result["offsets"])
open("interview.srt", "w").write(srt)

Step 6: スループット向けONNXデプロイ

本番はONNXを——素のPyTorchより2〜3倍のスループット:

# ONNXへエクスポート
optimum-cli export onnx \
  --model CohereLabs/cohere-transcribe-03-2026 \
  --task automatic-speech-recognition-with-past \
  ./cohere-onnx

# ONNX Runtimeで実行
pip install optimum[onnxruntime-gpu]
from optimum.onnxruntime import ORTModelForSpeechSeq2Seq

model = ORTModelForSpeechSeq2Seq.from_pretrained("./cohere-onnx", provider="CUDAExecutionProvider")

落とし穴6: ONNXエクスポートでモデルが4GBから6〜7GBに膨らむ(動的軸の分)。ディスクを確保。

いつBibiGPTの方が速いか

Cohere Transcribe 03がカバーするのは「音声 → 字幕」まで。下流すべてを自作すると、オールインワンSaaSを使うより高くつくことが多いです:

ニーズ 自前ホスト Cohere Transcribe 03 BibiGPT
音声/動画→字幕 ✅ ただしパイプライン全体を書く ✅ 内蔵
動画要約(字幕だけではない) ❌ LLM後処理を重ねる必要 ✅ 内蔵
マインドマップ ✅ 内蔵
バイリンガル字幕(例:EN↔ZH) ❌ 翻訳レイヤが必要 ✅ 内蔵
ソース追跡付きAIダイアログ ❌ ベクトルDB + RAGが必要 ✅ 内蔵
ニュースレター画像、ショート動画台本 ❌ 画像+テキスト生成モデルが必要 ✅ 内蔵
Notion / Obsidian同期 ❌ カスタムコネクタが必要 ✅ 内蔵
クロスプラットフォーム(YouTube / Bilibili / ポッドキャスト) ❌ URL抽出が必要 ✅ 30以上のプラットフォーム

判断基準

  • 字幕のみ、専用チーム、月10万分超 → Cohere Transcribe 03を自前ホスト
  • 下流成果物が必要、個人または少人数チーム、DevOps予算なし → そのままBibiGPT。無料動画要約 ですぐ使える
  • 多言語/バイリンガル → AI YouTube summary がi18nパイプライン全体を省く

BibiGPTを無料で試す — デプロイなし、運用なし、SRT結合なし。リンクを貼れば30秒で字幕+要約+マインドマップ+バイリンガル出力。

FAQ

Q: Cohere Transcribe 03の中国語精度は? A: 2026年4月ローンチ時の公式ベンチでは、標準中国語のWERがWhisper Large v3より1.2ポイント良好——標準普通話は強いが、方言・アクセントはファインチューンが必要。

Q: 10分音声にどのくらいかかる? A: A100単卡・num_beams=5・float16で約18〜22秒;MPSで約70秒;CPUは非推奨。

Q: Cohere Transcribe 03はYouTube URLを直接処理できる? A: いいえ——音声ファイル入力のみ。先に yt-dlp で音声取得が必要。BibiGPTはURLをネイティブ対応し、この層を省きます。

Q: プライベートデプロイの総コストは? A: A100単卡(クラウドレンタル約$900/月)+エンジニアの立ち上がり+継続メンテ。月約10万分未満ならBibiGPTの方が安いことが多い。