話す速さを1分あたりの単語数で計算
この計算ツールは、文字起こしの単語数と音声の長さから、1分あたりの単語数を算出します。さらに、実用的な目安である110〜160 WPMと比較し、範囲より遅い場合や速い場合を明確に示します。音声や文字起こし本文を送信せずに、ポッドキャスト、プレゼンテーション、ナレーション、授業、インタビュー、収録原稿を確認できます。計算は常に同じ結果となり、必要な入力は2つの数値だけです。自動化したAPIリクエスト1回の料金は$0.002です。
無料で実行
必要な2つの値から発話速度を測ります
発話速度は、話された単語数と経過時間の比率です。文字起こしの総単語数と、対応する音声全体の長さを秒で入力してください。単語数を60倍して時間で割り、小数第2位まで丸めます。たとえば、450語を180秒で話した場合は150 WPMです。可能であれば、録音に残った言い直しや即興表現も含め、実際に発話された最終版を数えてください。単語数と時間は必ず同じ区間にそろえます。文字起こしが一章だけなのに時間が番組全体であれば、計算自体は正しくても判断を誤ります。無音、音楽、拍手、長い間を測定区間に含めるかは、評価したい聴取体験に合わせて開始点と終了点を決める前に整理してください。
速度の判定を目的に合わせて読み取ります
結果は、境界を含む110〜160 WPMの基準範囲と比較されます。110未満は通常より遅い、160を超える場合は通常より速い、範囲内は標準的と判定されます。ただし、これは品質評価ではなく、聞き直す箇所を探すための目安です。瞑想、朗読、アクセシビリティ向け音声、技術実演では遅いほうが適する場合があります。活気ある広告や社内向けの既知情報は、速くても理解できることがあります。対象者、言語、語彙、感情、間、制作方針によって適切な速度は変わります。結果が予想外なら、単語数と時間が同じ素材を示しているか確認し、複数の代表区間を比較してください。全体平均だけでは、導入の遅さと中盤の早口が相殺されることがあります。
同じ条件で録音を比較します
話者、原稿案、エピソードを比べる際は、見かけの精密さより一貫した測定が重要です。短縮形、ハイフン語、数字、略語、つなぎ言葉をどう数えるか決め、すべての試料で統一してください。信頼できる編集ソフトやプレーヤーから秒数を取得し、短い音声を分単位に丸めないでください。制作確認では、全体に加えて導入、説明、行動喚起、締めなどの区間も個別に計算すると、平均に隠れた変化が分かります。0以下の時間は発話速度を表せないためエラーになります。不正、少数、負数、上限超過の単語数や有限でない時間も拒否されます。結果には入力値、WPM、分類、2つの真偽フラグ、基準境界が含まれ、表示、保存、比較、品質管理に利用できます。
活用例
ナレーションを確認します
完成原稿が聞きやすい速度で読まれたかを確認し、再確認が必要な録音を見つけます。
番組内の区間を比較します
導入、インタビュー、締めを別々に計算し、全体平均に隠れた速度変化を把握します。
発表練習を点検します
文字起こしと収録時間を使い、早口や極端に長い間がないか確認します。
よくある質問
発話速度はどのように計算しますか?
単語数を60倍し、音声時間の秒数で割ります。WPMは小数第2位までに丸められます。
標準的とする範囲はいくつですか?
実用上の基準は、境界を含む110〜160 WPMです。範囲外では通常より遅い、または速いと示されます。
警告が出ると録音の品質が悪いのですか?
いいえ。確認のための目安です。適切な速度は対象者、テーマ、形式、言語、狙う感情効果によって異なります。
間や音楽も時間に含めますか?
聞き手が体験する区間の一部なら含めます。単語数と分析が狭い発話区間だけを対象とする場合に限り除外してください。
時間が0または負数の場合はどうなりますか?
0以下の時間から有効な発話速度は得られないため、入力エラーが返されます。
自動計算の料金はいくらですか?
APIリクエスト1回につき$0.002です。同じ決定的な計算をブラウザーでも実行できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/audio/speech-rate-wpm-calculate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"word_count":450,"duration_seconds":180}'const res = await fetch("https://api.kit.forhosting.com/audio/speech-rate-wpm-calculate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"word_count": 450,
"duration_seconds": 180
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/audio/speech-rate-wpm-calculate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"word_count": 450,
"duration_seconds": 180
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/audio/speech-rate-wpm-calculate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"word_count":450,"duration_seconds":180}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"word_count":450,"duration_seconds":180}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/audio/speech-rate-wpm-calculate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"word_count": 450,
"duration_seconds": 180
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "audio.speech_rate_wpm_calculate",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
制限
max_mb | 200 |
max_minutes | 180 |
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |