Windows 11の音声パックが0MBで消えた時の復元方法|ISO不要でWord「読み上げ」を復活【PowerShellとDISMで完全修復】

レジストリ最適化後に Word の「読み上げ」で使っていた自然な音声が消え、「設定 > 時刻と言語 > 音声」に表示される音声パックが 0MB のままダウンロードできない――この現象は、音声合成(TTS)関連の機能・登録情報の欠落が主因です。ISO での上書きインストールに頼らず、PowerShell と DISM を用いてピンポイントに復旧する実践手順をまとめました。

目次

結論と全体像:ISO なしで音声パックを復元する戦略

音声パックが「0MB」になるときは、(A)TTS AppX の登録不整合、(B)言語の「音声」機能(Windows Capability)の破損・未適用、(C)コンポーネント ストア破損、(D)キャッシュ・ランタイムの不整合、(E)更新コンポーネントのスタック詰まりが絡み合っていることが多いです。本記事の手順では以下の順序で安全に切り分け・復旧を進めます。

  • 手順1:TTS コンポーネントの再登録(壊れた登録を復元)
  • 手順2:言語の「音声」機能(Language.Speech)の再インストール
  • 手順3:DISM/SFC によるシステム ファイル修復
  • 手順4:Text‑to‑Speech ランタイム/キャッシュの再起動
  • 手順5:レジストリのトークン確認(OneCore/SAPI 両系統)
  • 手順6:Windows Update コンポーネントのリセット(必要時)

要点を1枚に:復旧フロー早見表

手順内容補足・ポイント
1. TTS コンポーネントの再登録PowerShell(管理者)
Get-AppxPackage -AllUsers -Name TextToSpeech | ForEach { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }
音声合成 (TTS) の AppX を再登録。
環境差に強い代替:
Get-AppxPackage -AllUsers *speech* | % { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }
2. 音声パックの再インストール例:英語 (米国) と英語 (英国)
Add-WindowsCapability -Online -Name "Language.Speech~~~en-US~0.0.1.0"
Add-WindowsCapability -Online -Name "Language.Speech~~~en-GB~0.0.1.0"
ポイント
・指定は Speech.TTS.* ではなく Language.Speech~~~。
・入れ直しは削除→追加:
Remove-WindowsCapability -Online -Name "Language.Speech~~~en-US~0.0.1.0" → 追加。
3. システムファイル修復コマンド プロンプト(管理者)
DISM /Online /Cleanup-Image /RestoreHealth
SFC /Scannow
コンポーネント ストアや TTS 関連ファイル破損を修復。
完了後は再起動を推奨。
4. Text‑to‑Speech の再起動services.msc → (存在する場合) Microsoft Text to Speech を再起動一部ビルドでは専用サービスが表示されないことがあります。その場合はサインアウト/再起動、または Stop-Process -Name SpeechRuntime -Force で代替。
5. レジストリ確認HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokensトークンが欠けていれば手順1・2へ。
Word は主に OneCore のトークンを参照。
6. Windows Update リセット(必要時)関連サービス停止→SoftwareDistribution をリネーム→再開→wsresetストア/機能の取得に失敗する時に有効。プロキシや企業ネットワークでは特に効きます。

ヒント:「設定 > 時刻と言語 > 音声」で 0MB のままでも、作業後に PC を再起動すると容量が反映され正常化することがあります。

なぜ起きる?—「0MB」現象の正体と Word が参照する音声の仕組み

Windows 11 の読み上げ環境は大きく OneCore TTS と SAPI 5(従来) の二系統があります。Office の「読み上げ」は原則として OneCore 側の音声を優先して参照します。レジストリ デフラグなどのユーティリティによって、Speech_OneCore\Voices\Tokens 配下のトークンや AppX 登録が欠落すると、UI 上は言語自体が残っていても音声の「実体」が紐づかず、容量が 0MB のままになり選択できなくなります。

また、Windows の「自然な音声(Natural voices)」はナレーター向けに提供される別ラインのパッケージで、Word から直接使えないバージョンもあります(機能更新や Office の世代によって挙動が異なることがあります)。本記事の手順は、Word の読み上げで使う OneCore/SAPI 音声を復元することを主目的としています。

準備:作業前のチェックリスト

  • 管理者権限の PowerShell/コマンド プロンプトを使えること。
  • ネットワーク接続(Language.Speech のダウンロードに必要)。企業環境ではプロキシ経由の通信許可が必要です。
  • 必要ならば復元ポイントや重要ファイルのバックアップを取得。
  • セキュリティ製品の一時的な「自己防衛」機能がシステムファイルの修復を妨げないか確認。

手順詳細:順番どおりに実行する

手順1:TTS AppX の再登録(最も副作用が小さく即効性が高い)

まずは壊れた AppX 登録を洗い直します。PowerShell を「管理者として実行」し、次のいずれかを実行します。

# 指定名での再登録(提示のケースに合わせたコマンド)
Get-AppxPackage -AllUsers -Name TextToSpeech | ForEach-Object {
  Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

# 名前に依存しない安全寄りの再登録(環境差に強い)

Get-AppxPackage -AllUsers *speech* | ForEach-Object {
Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

完了したらサインアウト→再サインイン。Word を開き「読み上げ」音声の一覧が復活していないか確認します。

手順2:Language.Speech を入れ直す(言語ごとの音声本体)

次に、言語ごとの音声機能(Capability)を入れ直します。まず現在の状態を確認します。

# どの音声能力が入っているか確認
Get-WindowsCapability -Online | Where-Object { $_.Name -like 'Language.Speech*' } | Select-Object Name, State

不足・壊れているものは削除→追加の順で入れ直します(例:英語(米国)、英語(英国))。

# 削除(入れ直し時のみ)
Remove-WindowsCapability -Online -Name "Language.Speech~~~en-US~0.0.1.0"
Remove-WindowsCapability -Online -Name "Language.Speech~~~en-GB~0.0.1.0"

# 追加(新規または入れ直し)

Add-WindowsCapability -Online -Name "Language.Speech~~~en-US~0.0.1.0"
Add-WindowsCapability -Online -Name "Language.Speech~~~en-GB~0.0.1.0"

代表的な言語コード一覧(コピペ用)

言語Capability 名(Language.Speech~~~)
日本語Language.Speech~~~ja-JP~0.0.1.0
英語(米国)Language.Speech~~~en-US~0.0.1.0
英語(英国)Language.Speech~~~en-GB~0.0.1.0
中国語(簡体字)Language.Speech~~~zh-CN~0.0.1.0
中国語(繁体字)Language.Speech~~~zh-TW~0.0.1.0
韓国語Language.Speech~~~ko-KR~0.0.1.0
ドイツ語Language.Speech~~~de-DE~0.0.1.0
フランス語Language.Speech~~~fr-FR~0.0.1.0
スペイン語(スペイン)Language.Speech~~~es-ES~0.0.1.0
スペイン語(メキシコ)Language.Speech~~~es-MX~0.0.1.0
ポルトガル語(ブラジル)Language.Speech~~~pt-BR~0.0.1.0
イタリア語Language.Speech~~~it-IT~0.0.1.0
ロシア語Language.Speech~~~ru-RU~0.0.1.0

注意:Language.Speech はオフライン音声合成の主要コンポーネントです。似た名前の 音声認識(Speech Recognition)とは別物なので誤追加に注意してください。

手順3:DISM / SFC によるコンポーネント修復

Capability の導入がうまくいかない場合や復帰しない場合は、Windows のコンポーネント ストア自体に破損がある可能性があります。コマンド プロンプト(管理者)で次を実行し、完了後に OS を再起動します。

DISM /Online /Cleanup-Image /RestoreHealth
SFC /Scannow

手順4:Text‑to‑Speech ランタイム/キャッシュの再起動

環境によっては services.msc に Microsoft Text to Speech のサービスが表示されないことがあります。表示されない場合は、以下のいずれかで代替します。

  • サインアウト→サインイン、または OS 再起動。
  • PowerShell(管理者)でランタイムを再起動:
    Stop-Process -Name SpeechRuntime -Force -ErrorAction SilentlyContinue Start-Sleep -Seconds 2 # Word/Edge/ナレーターの起動に応じて自動的に再生成されます

手順5:レジストリでトークンを確認(Word が読む声の在処)

Word は主に Speech_OneCore 側のトークンを参照します。PowerShell で一覧を出して存在を目視確認します。

$keys = @(
  'HKLM:\SOFTWARE\Microsoft\Speech_OneCore\Voices\Tokens',
  'HKLM:\SOFTWARE\Microsoft\Speech\Voices\Tokens',
  'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Speech\Voices\Tokens'
)
foreach($k in $keys){
  if(Test-Path $k){ Get-ChildItem $k | Select-Object PSChildName, PSPath }
}

何も列挙されない、または必要言語が欠けている場合は、手順1・2に戻って再登録/再インストールを行います。

手順6:Windows Update/ストア関連のリセット(必要時)

Language.Speech の取得が 0% のまま進まない、0MB 表示から変わらない場合は更新コンポーネントのスタック詰まりが原因のことがあります。以下は一般的な安全策です。

:: コマンド プロンプト(管理者)
net stop wuauserv
net stop bits
net stop cryptsvc
net stop msiserver

ren %systemroot%\SoftwareDistribution SoftwareDistribution.old
ren %systemroot%\System32\catroot2 catroot2.old

net start msiserver
net start cryptsvc
net start bits
net start wuauserv

wsreset

その後、再起動してから「音声」機能の追加を再試行します。企業ネットワークではプロキシ設定や WSUS により機能の取得が抑止されることがあるため、管理者ポリシーも確認してください。

UI での最終仕上げ:Word/Windows の設定を見直す

Windows 側の確認

  • 設定 > 時刻と言語 > 音声で、対象言語の音声が「インストール済み」になっているか確認。
  • 設定 > 時刻と言語 > 言語と地域 > 言語のオプションから、対象言語の「音声」が既定で利用可能になっているかを確認。

Word 側の確認

  • 任意の文書を開き、校閲 > 読み上げを開始。
  • 読み上げコントロールの音声セレクターに、復元した言語の音声(例:Microsoft Haruka など)が現れているか確認。
  • 表示されないときは Word を再起動(必要であれば PC を再起動)。

「ナレーターの自然な音声」と Word の関係について

「アクセシビリティ > ナレーター」から追加できる自然な音声(Natural voices)は、ナレーター優先の別パッケージです。Word の「読み上げ」で選べない世代/構成もあります。Word での自然音声を重視する場合は、まず OneCore 音声の復旧を優先し、必要に応じて別の音声(地域差の少ない en-US など)を補助的に導入すると実用性が上がります。

ありがちな詰まりどころと回避策

症状想定原因対処
音声パックが 0MB のままAppX 未登録/Capability 破損/更新スタック詰まり手順1→2→6 の順で対処。再起動後に UI を再確認。
「進行状況:ダウンロード中」で止まるネットワーク/プロキシ/WSUS 制御ネットワークを変えて試す、管理ポリシー確認、手順6でリセット。
Word だけ音声が選べないOneCore トークン欠落、SAPI/OneCore の不整合手順5でトークン確認、手順1・2を再実施。
音質が劣化した/速度が不自然別系統の音声にフォールバックWord の音声セレクターで目的の声を明示選択。無ければ手順2で言語追加。
エラー 0x800f0954 などで機能追加に失敗機能オンデマンドの取得先が WSUS 固定ネットワーク方針を確認。必要に応じて一時的にオフライン FOD 共有を指定(管理者向け)。

安全運用のヒント:レジストリ デフラグ後に壊さないために

  • レジストリのクリーナー/デフラグは AppX/Capabilities の登録に影響することがあります。特に Speech_OneCore や AppX 関連キーを誤ってクリーンアップしない設定に。
  • 定期的に復元ポイントを作成。月例更新の前後、ユーティリティ実行の前にスナップショットを残します。
  • Office 更新と Windows 機能更新のタイミングが重なると、音声デバイスやトークンが再評価されることがあります。復旧後 1~2 回の再起動で安定化するケースが多いです。

ケース別の具体策:状況に合わせて最短で復旧する

ケースA:日本語だけ読めれば良い

以下だけでも十分復旧します。

# 再登録(推奨・簡易)
Get-AppxPackage -AllUsers *speech* | % { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }

# 日本語音声の入れ直し

Remove-WindowsCapability -Online -Name "Language.Speech~~~ja-JP~0.0.1.0"
Add-WindowsCapability    -Online -Name "Language.Speech~~~ja-JP~0.0.1.0"

ケースB:多言語(英語/中国語/韓国語)も必要

必要分だけ追加。インストール作業はまとめて行うと失敗しにくいです。

Add-WindowsCapability -Online -Name "Language.Speech~~~en-US~0.0.1.0"
Add-WindowsCapability -Online -Name "Language.Speech~~~zh-CN~0.0.1.0"
Add-WindowsCapability -Online -Name "Language.Speech~~~ko-KR~0.0.1.0"

ケースC:どうしても入らない(0MB のまま変化なし)

  1. 手順6の Windows Update/ストア リセット を実施。
  2. DISM/SFC を再実行→再起動。
  3. ネットワークを変えて再試行(テザリングなど)。
  4. 管理環境では WSUS/FOD の取得ポリシーを確認。

検証:復旧できたかを確かめる 5 つのポイント

  1. PowerShellで Get-WindowsCapability ... State = Installed になっている。
  2. 設定 > 音声に対象言語が容量付きで表示され、プレビューで音声が再生できる。
  3. レジストリに該当言語のトークンが存在する(OneCore と SAPI の両方)。
  4. Word の読み上げで対象音声を選択できる。
  5. OS 再起動後も設定が保持されている。

FAQ:よくある質問

Q. 「SpeechRecognition」と「Language.Speech」は何が違いますか?

SpeechRecognition は音声認識(マイク入力の解析)用の機能、Language.Speech は音声合成(テキスト→音声)用の機能です。Word の読み上げに必要なのは後者です。

Q. ナレーターの「自然な音声」が Word に出てきません。

ナレーター専用ラインのため Word 側に露出しない構成があります。まずは OneCore の音声を正常化することが先決です。

Q. サービス一覧に「Microsoft Text to Speech」がありません。

ビルドによっては専用サービスが表示されません。サインアウト/再起動や SpeechRuntime の再起動で代替できます。

Q. 企業の PC で機能の追加に失敗します。

WSUS/ポリシーで機能オンデマンドの取得が抑止されている場合があります。管理者に相談し、必要に応じてオフラインの FOD 共有から導入してください。

付録:コピペで使える「一括復旧」スクリプト(管理者 PowerShell)

よく使う日本語+英語(米/英)の音声をまとめて整備するサンプルです。必要に応じて言語行を増減してください。

# ========== TTS 再登録 ==========
Write-Host "Re-registering TTS AppX..." -ForegroundColor Cyan
Get-AppxPackage -AllUsers *speech* | ForEach-Object {
  Try {
    Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" -ErrorAction Stop
    Write-Host "  Re-registered: $($_.Name)"
  } Catch {
    Write-Host "  Skip/Failed: $($_.Name) - $($_.Exception.Message)"
  }
}

# ========== 必要言語(例:ja-JP/en-US/en-GB)を入れ直し ==========

$languages = @(
"Language.Speech~~~ja-JP~0.0.1.0",
"Language.Speech~~~en-US~0.0.1.0",
"Language.Speech~~~en-GB~0.0.1.0"
)

foreach($cap in $languages){
Write-Host "`nProcessing $cap" -ForegroundColor Yellow
Try {
Remove-WindowsCapability -Online -Name $cap -ErrorAction SilentlyContinue | Out-Null
} Catch {}
Add-WindowsCapability -Online -Name $cap
}

# ========== DISM/SFC の案内 ==========

Write-Host "`nRun DISM/SFC from elevated Command Prompt if issues remain:" -ForegroundColor Green
Write-Host "  DISM /Online /Cleanup-Image /RestoreHealth"
Write-Host "  SFC /Scannow"

# ========== SpeechRuntime のリフレッシュ ==========

Get-Process SpeechRuntime -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue
Write-Host "SpeechRuntime refreshed. Please sign out/in or reboot if required." -ForegroundColor Green

最終手段について(読み飛ばし可)

上記の 1~6 を実施しても復旧しない場合のみ、アプリとデータを保持する インプレース修復(メディア作成ツール)を検討します。ただし「音声だけ直したい」用途にはオーバーキルなので、まずは本記事の手順での復旧を推奨します。

まとめ:原因を見極め、最小コストで「読み上げ」を取り戻す

レジストリ デフラグ等で失われた TTS は、TTS の再登録 → Language.Speech の入れ直し → DISM/SFC → ランタイム再起動 → トークン確認 → 更新コンポーネントのリセットという順番で、多くのケースが ISO なしに復旧可能です。Word の読み上げが仕事や学習のワークフローに直結している方は、上記をテンプレ化しておくと、同様のトラブルに再び遭遇しても短時間で復帰できます。

参考:最少コマンドだけで直したい人向け「3 行セット」

日本語音声だけすぐ直したい場合の最短例です(管理者 PowerShell)。

Get-AppxPackage -AllUsers *speech* | % { Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }
Remove-WindowsCapability -Online -Name "Language.Speech~~~ja-JP~0.0.1.0"
Add-WindowsCapability    -Online -Name "Language.Speech~~~ja-JP~0.0.1.0"

適用後は PC を再起動し、Word の読み上げで音声セレクターが復帰しているかを確認してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次