TTSのまとめ

作成日時2026-02-04 18:07

AI TTSのAPIについて、AIにまとめさせました。
根拠の検索もAIがやっているので間違いがあるかも知れません。

個人的には、従量料金でやるなら「gemini-2.5-flash-preview-tts」、ガンガン使うなら「Aivis Cloud API(Aivisプレミアム)」がオススメかな。

gemini-2.5-flash-preview-ttsは自然言語で簡単に出力内容をコントロールできるのが強み。感情込めたり、話す速度を調整したり。

そしてAivisプレミアム(定額)には制限はあるけど、うまく使えば自分のサービスに組み込めそうですよね。Aivis Cloud APIの従量料金の方は高めだけど..


📋 前提条件の整理

調査対象モデル

重要な計算基準

  1. 日本語トークン換算: 約4文字で1トークン
  2. 音声出力トークン: 1秒あたり32トークン(固定レート)
  3. 読み上げ速度: 1分間に300〜350文字が標準
  4. 時間換算:
    • 10,000文字 ≈ 約30〜35分(約33分が目安)
    • 100万文字 ≈ 約3,300分(約55時間)

📊 Gemini 2.5 Flash Preview TTS 基本料金

公式料金表(Standard プラン)

項目料金(100万トークンあたり)
入力(テキスト)$0.50
出力(音声)$10.00

料金計算方法(日本語の場合)

例: 10,000文字を音声化する場合

  1. 入力トークン計算:
    • 10,000文字 ÷ 4文字/トークン = 2,500トークン
    • コスト: $0.50 × (2,500 / 1,000,000) = $0.00125(約0.2円)
  2. 出力トークン計算:
    • 10,000文字 ≈ 約33分 = 1,980秒
    • 1,980秒 × 32トークン/秒 = 63,360トークン
    • コスト: $10.00 × (63,360 / 1,000,000) = $0.634(約95円)
  3. 合計: $0.635(約95円)/ 10,000文字

💰 文字数別料金表(日本語)

文字数音声時間出力トークン料金(USD)料金(円)※
1,000文字約3.3分6,336$0.064約10円
5,000文字約16.7分31,680$0.318約48円
10,000文字約33分63,360$0.635約95円
50,000文字約2.8時間316,800$3.17約476円
100,000文字約5.5時間633,600$6.34約951円
100万文字約55時間6,336,000$63.50約9,525円

※1ドル=150円で計算


🔍 日本のTTSサービスとの完全比較

総合料金比較(100万文字あたり)

順位サービス名料金特徴
1VOICEVOX無料オープンソース、API提供なし、ローカル動作
2Google Cloud TTS(標準)約600円月100万文字まで無料、その後$4
3Amazon Polly(標準)約600円AWS統合、$4/100万文字
4AIVIS Cloud API(月額)月1,980円10req/分制限内で無制限
5Google Cloud TTS(Neural)約2,400円高品質、月100万文字まで無料、その後$16
6Amazon Polly(Neural)約2,400円高品質、$16/100万文字
7Azure TTS約2,400円感情表現可能、約$16/100万文字
8ElevenLabs(大量利用時)約18,000〜24,000円超高品質、感情表現豊か
9音読さん約4,900円月980円で20万文字(換算値)
10Gemini 2.5 Flash TTS約9,525円低遅延、プレビュー版
11AIVIS Cloud API(従量)44,000円超低遅延、日本語特化

🎤 ElevenLabs 詳細解説

料金プラン(月額)

プラン月額料金月間クレジット音声時間(目安)文字数換算
Free無料10,000約20分約10,000文字
Starter$530,000約60分約30,000文字
Creator$22(初月$11)100,000約200分約100,000文字
Pro$99500,000約1,000分約500,000文字
Scale$3302,000,000約4,000分約2,000,000文字
Business$1,32011,000,000約22,000分約11,000,000文字

クレジットシステム

基本換算:

追加購入:

100万文字利用時の実質料金

Proプラン使用の場合:

Businessプラン使用の場合:

主な特徴

圧倒的な音声品質:

多言語対応:

独自機能:

制限事項:


🎯 各サービス詳細解説

1️⃣ VOICEVOX

料金: 完全無料

特徴:

制限:

おすすめ用途: コストゼロで高品質な音声が必要な場合


2️⃣ Google Cloud Text-to-Speech

料金:

特徴:

おすすめ用途:


3️⃣ Amazon Polly

料金:

特徴:

おすすめ用途: AWS環境での利用


4️⃣ Azure Text-to-Speech

料金: 約$16/100万文字(約2,400円)

特徴:

おすすめ用途: Azure環境での利用、感情表現が必要な場合


5️⃣ AIVIS Cloud API(日本製)

料金プラン:

従量課金プラン

月額定額プラン(Aivis プレミアム)

主な特徴:

得意分野:


6️⃣ Gemini 2.5 Flash Preview TTS

料金: 約9,525円/100万文字

特徴:

注意点:


7️⃣ ElevenLabs

料金: プランにより変動(詳細は上記参照)

特徴:

注意点:


8️⃣ 音読さん

料金:

特徴:


9️⃣ CoeFont

料金: 月500円〜(制限あり)

特徴:


💡 AIVIS Cloud API 月額プランの損益分岐点

計算式

損益分岐点:

plain text
1,980円 ÷ 440円 = 4.5
4.5 × 10,000文字 = 45,000文字

結論: 月45,000文字以上使うなら月額プランがお得

利用文字数/月従量課金月額プランお得なプラン
10,000文字440円1,980円従量課金
30,000文字1,320円1,980円従量課金
45,000文字1,980円1,980円同額(分岐点)
50,000文字2,200円1,980円月額
100,000文字4,400円1,980円月額
100万文字44,000円1,980円月額

時間換算


🏆 用途別おすすめサービス

完全無料で使いたい

→ VOICEVOX

少量利用(〜10万文字/月)

→ Google Cloud TTS(無料枠)

中量利用(10万〜50万文字/月)

→ Google Cloud TTS Neural(約2,400円)

大量利用(50万文字以上/月)

→ AIVIS Cloud API 月額プラン(1,980円)

超高品質・感情表現重視

→ ElevenLabs(Creator以上)

リアルタイムAIチャット・日本語品質重視

→ AIVIS Cloud API 月額プラン

多言語対応必須

→ ElevenLabs or Google Cloud TTS

コンテンツクリエイター向け

→ ElevenLabs Creator

AWS/Azure環境での利用

→ Amazon Polly / Azure TTS


📈 価格帯別ランキング

100万文字あたりのコスト順

  1. VOICEVOX: 0円
  2. Google Cloud TTS標準: 約600円
  3. Amazon Polly標準: 約600円
  4. AIVIS月額: 1,980円(無制限)
  5. Google Cloud TTS Neural: 約2,400円
  6. Amazon Polly Neural: 約2,400円
  7. Azure TTS: 約2,400円
  8. 音読さん: 約4,900円
  9. Gemini 2.5 Flash TTS: 約9,525円
  10. ElevenLabs: 約18,000〜24,000円
  11. AIVIS従量: 44,000円

⚡ 実例:10,000文字(約33分音声)のコスト比較

サービス10,000文字の料金コメント
VOICEVOX0円無料
Google Cloud TTS標準約6円無料枠内
Google Cloud TTS Neural約24円無料枠内
AIVIS月額月1,980円で無制限45,000文字以上で得
Gemini 2.5 Flash TTS約95円中価格
ElevenLabs Free無料(月10,000文字まで)商用利用不可
ElevenLabs Creator月$22で100,000文字超高品質
AIVIS従量440円高額

📊 サービス別強み・弱み比較

ElevenLabs

強み:

弱み:


AIVIS Cloud API

強み:

弱み:


Gemini 2.5 Flash TTS

強み:

弱み:


Google Cloud TTS

強み:

弱み:


🎯 最終推奨(用途別ベスト選択)

用途第1選択第2選択理由
完全無料VOICEVOXGoogle Cloud(無料枠)コスト最優先
YouTubeコンテンツElevenLabs CreatorAIVIS月額品質・感情表現・音声クローニング
ポッドキャストElevenLabs ProAIVIS月額音声クローニング・高品質
AIチャットAIVIS月額Google Cloud Neural低遅延・日本語品質
ニュース読み上げAIVIS月額Google Cloud Neural固有名詞の正確性
大量バッチ処理AIVIS月額Google Cloudコスト効率
多言語展開ElevenLabsGoogle Cloud言語数・品質
企業サービス組込Google Cloud / AzureAIVIS安定性・サポート
キャラクター音声ElevenLabs-感情表現・音声クローニング
技術文書読み上げAIVIS月額Google Cloud Neural専門用語・英単語の読み

📝 総合まとめ

各サービスの位置づけ

品質ランキング: ElevenLabs > AIVIS > Google Cloud Neural > Azure > その他

コストランキング(安い順): VOICEVOX > Google Cloud > AIVIS月額 > Azure > Gemini > ElevenLabs > AIVIS従量

日本語品質ランキング: AIVIS > Google Cloud > ElevenLabs

多言語対応ランキング: Google Cloud (40+言語) > ElevenLabs (32+言語) > Azure


Gemini 2.5 Flash Preview TTS の総合評価

価格: 約9,525円/100万文字(日本語) 評価: ★★☆☆☆

ポジション:

推奨度: 低い(他に優れた選択肢が多数存在)

推奨するケース:


最もコスパが良い選択

無料〜低コスト重視

Google Cloud TTS(月100万文字まで無料)

月45,000文字以上の大量利用

AIVIS Cloud API 月額プラン(月1,980円)

最高品質・感情表現重視

ElevenLabs(Creator以上)

バランス重視

Google Cloud TTS Neural(約2,400円/100万文字)


📚 根拠となったURL一覧

Gemini API関連

  1. Gemini公式価格ページ: https://ai.google.dev/gemini-api/docs/pricing
    • Gemini 2.5 Flash Preview TTSの料金情報
  2. Geminiトークン計算ドキュメント: https://ai.google.dev/gemini-api/docs/tokens
    • 音声トークンの換算方法(1秒=32トークン)
    • 日本語トークン数の情報
  3. Gemini音声理解ドキュメント: https://ai.google.dev/gemini-api/docs/audio
    • 音声処理の詳細仕様

AIVIS Cloud API関連

  1. AIVIS Cloud API公式発表: https://note.com/aivis_project/n/nd7840ae2b903
    • 料金プラン(従量課金・月額)
    • サービス特徴・機能詳細
    • 日本語読み上げ精度の情報

ElevenLabs関連

  1. ElevenLabs公式価格ページ(日本語): https://elevenlabs.io/ja/pricing
    • 各プランの料金・クレジット数
    • 追加料金の情報
    • 機能比較

音声読み上げ速度・換算関連

  1. 一般的な音声読み上げ速度の情報:
    • 1分間に300〜350文字が標準的な読み上げ速度
    • 検索結果から複数の情報源を総合

その他参考情報

  1. Google Cloud Text-to-Speech: https://cloud.google.com/text-to-speech/pricing
    • 無料枠・料金情報
  2. Amazon Polly: https://aws.amazon.com/polly/pricing/
    • 料金情報
  3. Azure Text-to-Speech: https://azure.microsoft.com/pricing/details/cognitive-services/speech-services/
    • 料金情報

IPアドレスでもHTTPSが使えるようになった話

作成日時2026-01-21 12:33 TagVPS

まず前提知識.. なぜウェブに「証明書」が必要なのか

〜Let’s Encrypt が変えたインターネットの安全性〜

インターネットでブログやサービスを公開しようとすると、
**「SSL証明書」「HTTPS」「Let’s Encrypt」**といった言葉をよく目にします。

「よく分からないけど、入れないと危ないらしい…」

そんな状態のまま設定している人も多いでしょう。
この記事では、なぜ証明書が必要なのか、そして Let’s Encrypt がなぜ重要なのかを、初心者向けに解説します。


ウェブの通信はそのままだと「丸見え」

通常のウェブ通信(HTTP)は暗号化されていません

これはどういうことかというと:

これらが、途中で盗み見られる可能性があるということです。


通信の仕組みを考える

インターネットでサイトを見るとき、あなたのブラウザは 直接サーバーと会話しているように見えます

しかし実際には、その間にはたくさんの「通り道」があります。

例えば:

つまり、あなたとサーバーの間には、常に第三者が存在する可能性がある のです。


問題①:相手が「本物のサーバー」だと確認できない

証明書がない場合、ブラウザはこう思っています。

「このサーバーが本当に example.com なのか分からない…」

すると何が起きるかというと:

これが フィッシング攻撃中間者攻撃(Man-in-the-Middle)と呼ばれるものです。


問題②:通信内容が「そのまま流れている」

HTTP通信では、データは 封筒に入れずにハガキで送る ような状態です。

この状態で個人情報を扱うのは、現代のインターネットでは非常に危険 です。


証明書は「身分証+封印シール」

そこで登場するのが SSL/TLS証明書 です。

証明書は次の2つを証明します。

つまり、

「この相手は信用できる」

「この会話は誰にも読めない」

という状態を ブラウザが保証できる ようになります。


だから証明書がないと「危険」と表示される

現在のブラウザはとても正直です。

この条件が揃うと、

ユーザーに 強い警告 を出します。

これは意地悪ではなく、ユーザーを守るための安全装置 なのです。


HTTPS は「信頼できます」のサイン

URLが以下のようになっているサイトを見たことがあるでしょう。

💡
https://example.com

この httpsssecure(安全) の意味です。

という状態を表します。

今では Google も HTTPS をSEO評価の要素に含めている ため、技術的にもビジネス的にも必須になっています。


以前は証明書は「高価で面倒」だった

ところが少し前まで、SSL証明書は:

という 初心者やライトユーザーには非常にハードルが高いもの でした。

その結果、多くの個人サイトや小規模サービスが「安全ではない状態」のまま放置されていました。


Let’s Encrypt の登場で何が変わったのか

ここで登場するのが Let’s Encrypt です。

Let’s Encrypt は、次の特徴を持つ 無料の証明書発行機関 です。

✔ 完全無料

誰でも、何枚でも、費用ゼロで証明書を取得できます。

✔ 自動化されている

サーバー設定と更新が 自動 で行えます。
更新忘れによる事故が激減しました。

✔ 世界標準として普及

現在、世界中の非常に多くのHTTPSサイトが Let’s Encrypt を利用しています。


Let’s Encrypt の意義

Let’s Encrypt の価値は「無料」だけではありません。

インターネット全体の安全性を底上げした

誰でも 「当たり前に安全な通信」 を使えるようになりました。

「暗号化は特別なもの」ではなくなった

今では、

証明書がない = 設定ミス or 管理不足

と見なされる時代です。


初心者こそ、証明書を意識しよう

もしあなたが:

と思っているなら、HTTPSは必須条件です。

幸い、Let’s Encrypt のおかげで危険な時代は終わりました。


前提終わり..

さて、ここまでが前提です。ここを理解していないと、これからの話が理解できないと思います。

ここからが今回の本題となります。


IPアドレスでもHTTPSが使えるようになった話

IPアドレスに証明書?昔は無理だった

先の前提でご説明した通り、少し前まで、HTTPS は ドメイン名が必須でした。

というのが常識でした。


「IPアドレスそのもの」に証明書が出るようになった

現在は、IPアドレスを SAN に含む正式な公開証明書が発行できます。
発行元は同じく Let’s Encrypt。これも無料です。

特徴はシンプルです。

つまり、

一時VPS・検証環境・実験用途なら、IP直HTTPSが現実解

になりました。


じゃあ、実際にどうやるか

以下は 最短で再現するための手順だけを書きます。


今回のテストの前提


1. nginx を入れる

bash
apt update && apt install -y nginx curl

2. Hello World を用意

bash
rm /var/www/html/index.nginx-debian.html
echo '<html><head><meta charset="UTF-8"></head><h1>Hello World</h1><p>IP HTTPS</p></html>' > /var/www/html/index.html

確認(HTTP):

bash
curl http://<IPv4アドレス>

3. acme.sh を入れる(certbotは使わない)

bash
curl <https://get.acme.sh> | sh
source ~/.bashrc

4. IPv4 の IP証明書を取る

nginx 停止:

bash
systemctl stop nginx

証明書発行(short-lived):

bash
acme.sh --issue --server letsencrypt -d <IPv4アドレス> --standalone --cert-profile shortlived --days 3

生成先(※ _ecc が付く場合):

bash
/root/.acme.sh/<IPv4アドレス>_ecc/

5. IPv6 の IP証明書を取る

IPv6は TLS-ALPN-01 を使う:

bash
acme.sh --issue --server letsencrypt -d <IPv6アドレス> --alpn --cert-profile shortlived --days 3

※ ディレクトリ名は : を含む場合あり:

bash
ls /root/.acme.sh

6. nginx を HTTPS(IPv4 / IPv6)対応にする

default 無効化:

bash
rm /etc/nginx/sites-enabled/default

設定ファイル作成:

bash
nano /etc/nginx/sites-available/ip-https

中身:

plain text
# IPv4
server {
    listen 443 ssl default_server;

    ssl_certificate     /root/.acme.sh/<IPv4アドレス>_ecc/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/<IPv4アドレス>_ecc/<IPv4アドレス>.key;

    root  /var/www/html;
    index index.html;
}

# IPv6
server {
    listen [::]:443 ssl default_server;

    ssl_certificate     /root/.acme.sh/<IPv6アドレス>_ecc/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/<IPv6アドレス>_ecc/<IPv6アドレス>.key;

    root  /var/www/html;
    index index.html;
}

有効化:

bash
ln -s /etc/nginx/sites-available/ip-https /etc/nginx/sites-enabled/

起動:

bash
nginx -t
systemctl start nginx

7. 確認


よくある詰まりどころ

症状原因
cert が見つからない_ecc 付け忘れ
IPv6で失敗--alpn 未使用
nginx 起動失敗パス違い
IPv6でアクセス不可[] 忘れ

まとめ

🍌 Nano Banana Proが出た

作成日時2025-11-21 12:14

2025年11月21日付近に発表された最新画像生成モデル「Nano Banana Pro(正式名:Gemini 3 Pro Image)」は、以前の Nano Banana(Gemini 2.5 Flash Image)から大幅に性能向上し、特に日本語テキスト再現性/推論(reasoning)能力/複数画像統合の面で注目されています。(note(ノート))


主要な進化ポイント

1) 日本語テキストの高精度レンダリング

2) 高度な「考えてから描く」推論能力(Gemini 3 の能力を取り込み)

3) 複数(最大14枚)の参照画像統合

4) リアルタイム情報の視覚化連携

5) 解像度・編集機能・出力品質

6) 利用コストと提供形態(概算)

7) 合成画像の識別(安全措置)


クリエイティブ領域(漫画・アニメ)への影響(要点)


記事別 — 出典一覧

記事No.著者タイトル(概要)URL
記事 1npakaNano Banana Pro の概要 — Gemini 3 ベースの推論、リアルタイム連携、14枚統合、テキストレンダリング、2K/4K 対応を解説。(note(ノート))
記事 2イケハヤ(ihayato)【速報】革命AI「Nano Banana Pro」 — 日本語文字入れの精度向上、漫画・チラシ制作の革新、空間認識能力改善を強調。(note(ノート))
記事 3やすだ.dev(yasuda_forceai)14枚の画像を統合できる! — 5つの革新機能(日本語、画像統合、高解像度、リアルタイム、推論)とビジネス活用例を詳説。(note(ノート))
記事 4けいすけ(けいすけ / konho)AIマンガ家目線で解説 — 漫画制作での実用性(日本語フォント保持、アスペクト比安定、キャラ分離)とコスト対効果。(note(ノート))

【Claude Code Router】Raspberry PiでClaude CodeをOpenRouterのAPIで使う

作成日時2025-07-16 18:20 TagAI, Raspberry Pi

今回はClaude CodeでOpenRouter APIを使い、自分の好きなAIモデルを利用する方法。
ClaudeのMaxプランに入らず、かと言ってClaudeのAPIを使うわけでもなく、Claude Codeを使ったVibe Codingを格安で楽しめるかも。
そのために、オープンソース(MITライセンス)のClaude Code Routerを使います。

Claude Code Routerって何?

Claude Code Routerは、Anthropicが開発したエージェントコーディング用のコマンドラインツールであるClaude Codeの拡張機能です。
ユーザーは様々なAIモデルにリクエストを送信できるため、選択の柔軟性が向上します。

インストール

大前提としてNode.jsとnpmがインストールされていること

まずClaude Code自体をインストールする

bash
sudo npm install -g @anthropic-ai/claude-code

次にClaude Code Routerをインストール

bash
sudo npm install -g @musistudio/claude-code-router

設定

以下のように設定する(例: OpenRouter/Google/Gemini 2.5 Flashの場合)

bash
sudo nano /root/.claude-code-router/config.json
json
{
  "Providers": [
    {
      "name": "openrouter",
      "api_base_url": "https://openrouter.ai/api/v1/chat/completions",
      "api_key": "ここにOpenRouter APIキー",
      "models": [
        "google/gemini-2.5-flash"
      ]
    }
  ],
  "Router": {
    "default": "openrouter,google/gemini-2.5-flash",
    "background": "openrouter,google/gemini-2.5-flash",
    "think": "openrouter,google/gemini-2.5-flash",
    "longContext": "openrouter,google/gemini-2.5-flash"
  }
}

起動

bash
sudo ccr code

アップデート

bash
sudo npm update -g @anthropic-ai/claude-code
sudo npm update -g @musistudio/claude-code-router

アンインストール

bash
sudo rm /root/.claude-code-router/config.json
sudo npm uninstall -g @anthropic-ai/claude-code
sudo npm uninstall -g @musistudio/claude-code-router

参考

YouTubeの字幕を取得してAIで処理する

作成日時2025-07-03 22:33 TagAI

実行テスト。

YouTube動画の字幕を取得して、AIにまとめさせるコードの例。
Pythonです。必要なライブラリは事前にインストールしてください。
OpenAIのAPIを使います。APIキーを取得してください。

bash
pip install -U openai youtube-transcript-api
python
import re
from openai import OpenAI
from youtube_transcript_api import YouTubeTranscriptApi

OPENAI_API_KEY = "Your OpenAI API Key Here"
OPENAI_MODEL = "gpt-4.1-mini"

def extract_video_id(url):
    import re
    match = re.search(r'(?:v=|\/)([0-9A-Za-z_-]{11}).*', url)
    if match:
        return match.group(1)
    return None

def get_transcript(video_id):
    try:
        transcript_list = YouTubeTranscriptApi.list_transcripts(video_id)
        auto_transcript = None
        for transcript in transcript_list:
            if transcript.is_generated:
                auto_transcript = transcript
                break
        if auto_transcript:
            lang_code = auto_transcript.language_code
            print(f"自動生成字幕の言語コード: {lang_code}")
            return YouTubeTranscriptApi.get_transcript(video_id, languages=[lang_code])
        else:
            print("自動生成字幕が見つかりませんでした")
            return None
    except Exception as e:
        print(f"エラーが発生しました: {str(e)}")
        return None

def fetch_YT(youtube_url):
    try:
        pattern = r"(?:https?://)?(?:www\.|m\.)?(?:youtube\.com|youtu\.be)/.*"
        if re.match(pattern, youtube_url):
            video_id = extract_video_id(youtube_url)
            print(f"Video ID: {video_id}")
            content = get_transcript(video_id)
            if content:
                print("字幕を取得しました")
                return content
            else:
                return None
        else:
            return None
    except Exception as e:
        print(f"エラーが発生しました: {str(e)}")
        return None

def post_AI(transcript):
    client = OpenAI(api_key=OPENAI_API_KEY)
    try:
        response = client.chat.completions.create(
            model=OPENAI_MODEL,
            messages=[
                {
                    "role": "user",
                    "content": f"以下はYouTube動画の音声の文字起こし文です。言葉としておかしい箇所は前後で判断してください。この内容をまとめて、日本語で、markdown形式で出力してください。\n\n---\n{transcript}\n---"
                }
            ],
            temperature=0.3
        )
        summary = response.choices[0].message.content
        print(summary)
    except Exception as e:
        print(f"エラーが発生しました: {str(e)}")

def main():
    while True:
        try:
            print("\nYouTubeのURLを入力してください:")
            input_url = input("URL >> ").strip()
            if not input_url:
                continue
            transcript = fetch_YT(input_url)
            if transcript:
                print("AI処理中..\n")
                post_AI(transcript)
            else:
                print("失敗しました")
        except Exception as e:
            print(f"エラーが発生しました: {str(e)}")

if __name__ == "__main__":
    main()

MATさんのAIボランティア活動継続のため、ご寄付をお願いします。Squareによる安全な決済で、アカウント登録は不要です。お支払いの情報も保存されません。