用語集 / Mac上で

SpeechAnalyzer

別名:SpeechTranscriber、Speechフレームワーク

公開日:

定義

SpeechAnalyzerは、macOS 26とiOS 26で導入されたAppleのSpeechフレームワークのクラスで、アプリが話し言葉のオーディオをテキストに変換するために使います。SpeechTranscriberなどのモジュールで解析セッションを実行し、Appleからダウンロードされてシステムが管理する音声モデルを使います。

SpeechAnalyzerは「システム設定」にはありません。これは開発者向けのAPIで、アプリが独自のモデルを同梱せずに音声をテキストに変換したいときに呼び出す仕組みです。Appleによると、同じ技術がすでにメモ、ボイスメモ、ジャーナルの機能を支えています。

Macのユーザにとって重要な理由は2つあります。これを基に作られたアプリはデバイス上で文字起こしを行います。また、各アプリが独自のモデルをディスクに追加するのではなく、システムが管理する1組のモデルを共有します。

SpeechAnalyzerの役割

Appleのドキュメントでは、SpeechAnalyzerは話し言葉のオーディオを解析し、解析セッションを管理するオブジェクトと説明されています。アナライザ自体は文字起こしを行いません。モジュールを保持し、各モジュールがそれぞれ1種類の解析を行います。Appleによると、多くの用途では、音声をテキストに変換するSpeechTranscriberモジュールだけで足ります。

このAPIはSwiftの並行処理(Swift Concurrency)向けに作られています。アプリはオーディオを非同期シーケンスとして入力し、結果を別の非同期シーケンスから読み取るため、入力、出力、セッションの制御が切り離されています。1つのアナライザが一度に解析できる入力シーケンスは1つだけです。

  • SpeechAnalyzer:モジュールを保持し、オーディオ入力を受け付けて、解析全体を制御します。
  • SpeechTranscriber:Appleが通常の会話や一般的な用途に適しているとする文字起こしモジュールです。
  • DictationTranscriber:システムの音声入力機能に近く、古いデバイスにも対応する文字起こしモジュールです。
  • SpeechDetector:音声区間検出のモジュールで、音声があるときだけ文字起こしを行うようにして電力を節約できます。
  • AssetInventory:モジュールに必要なモデルアセットをインストールし、管理します。

SpeechAnalyzerとSFSpeechRecognizerの違い

SFSpeechRecognizerは以前からある音声APIで、iOS 10とmacOS 10.15から利用できます。WWDC25のセッションでAppleは、このクラスについて、Siriを支える音声テキスト変換モデルを利用でき、短い音声入力に適していて、リソースの限られたデバイスではAppleのサーバを使うことがあったと説明しました。SFSpeechRecognizerのドキュメントでは、今も音声認識を使用量の制限があるネットワークベースのサービスとして説明しています。

Appleによると、SpeechTranscriberの背後にある新しいモデルは、SFSpeechRecognizerで使えるモデルより高速で柔軟性も高く、講義、会議、会話など、長時間のオーディオや離れた位置からのオーディオにも適しています。Appleのリファレンスページでは、SFSpeechRecognizerは非推奨とされていないため、既存のアプリは引き続き動作します。

  • 動作する場所:Appleによると、新しいAPIによる文字起こしは完全にデバイス上で行われます。SFSpeechRecognizerは、言語によってはインターネット接続が必要になる場合があります。
  • 音声の長さ:Appleは開発者に対し、SFSpeechRecognizerでは音声の長さに1分の上限があるものとして設計するよう案内しています。新しいモデルは長時間の音声向けに作られています。
  • 音声をローカルに留める:SFSpeechRecognizerでは開発者がrequiresOnDeviceRecognitionを設定する必要があり、Appleはデバイス上のリクエストは精度が下がると注記しています。
  • 言語:Appleによると、古いクラスでは言語の追加をユーザに頼っていました。新しいAPIでは、App自身がその言語のモデルを要求できます。
  • 結果:新しいAPIは、すばやく出る暫定的な結果(volatile results)を返し、あとで確定した結果に置き換えることができます。

SpeechTranscriberとDictationTranscriberの違い

SpeechTranscriberは、Appleの新しい音声テキスト変換モデルを使います。Appleによると、watchOSを除くすべてのプラットフォームで利用でき、一定のハードウェア要件があり、対応言語は今後追加される予定です。Appは使う前に、現在のデバイスが対応しているかを確認することになっています。

DictationTranscriberは、対応していない言語やデバイスのための代替手段です。Appleのドキュメントによると、システムの音声入力機能と同じ音声テキスト変換モデル、またはデバイス上で動作するよう設定したSFSpeechRecognizerと同じモデルを使います。SFSpeechRecognizerがネットワーク経由でのみ対応している言語には対応していません。さらにAppleは、古いクラスと違い、ユーザが設定を開いて言語ごとにSiriやキーボードの音声入力をオンにする必要はないと説明しています。

SpeechAnalyzerで音声を文字起こしする方法

Appleのリファレンスページには、音声ファイルやストリームを解析する大まかな手順が載っています。以下の手順はその流れに沿ったもので、macOS 26以降でSwiftを使ってMac用Appを作る開発者を想定しています。

  1. 必要なモジュールを作成して設定します。たとえば、ロケールを指定したSpeechTranscriberです。
  2. AssetInventoryを使って、必要なアセットがインストール済み、またはすでにあることを確認します。
  3. 話した音声を渡す入力シーケンスを作成します。音声はファイルから、またはマイクなどの入力デバイスから取り込みます。
  4. モジュールと入力シーケンスを指定してアナライザを作成します。
  5. 音声を渡して解析を開始します。
  6. モジュールから届いた結果を順に読み取り、処理します。
  7. 終わったら解析を終了し、結果のストリームを閉じます。

AssetInventoryで音声モデルをインストールする方法

モデルはAppに同梱されていません。Appleはこのアセットを、Appleのサーバからダウンロードされシステムが管理する機械学習モデルと説明しています。WWDC25のセッションでAppleは、モデルはシステムのストレージに保持され、Appのダウンロードサイズやストレージサイズを増やさず、Appのメモリ空間の外で動作すると述べています。

アセットは一度ダウンロードされると、システムが保持して自動的にアップデートし、ほかのAppと共有します。各Appが予約できるロケールの数には上限があります。

  1. 使う予定の設定で、アナライザのモジュールを作成します。
  2. Appのアセット予約をそのロケールに割り当てます。必要ならAssetInventoryが自動で行いますが、ロケールを手動で予約することもできます。
  3. そのモジュールのアセットのインストールを要求し、ダウンロードとインストールを行うメソッドを呼び出します。
  4. ダウンロードが終わるのを待ちます。アセットがプリインストールされている場合や、ほかのAppがすでにダウンロードしている場合は、すぐに終わることがあります。
  5. Appでロケールが不要になったら予約を解除し、システムがあとでアセットを削除できるようにします。

SpeechAnalyzerのプライバシーと対応プラットフォーム

AppleのWWDC25のセッションでは、文字起こしは完全にデバイス上で行われるものの、モデルは取得する必要があると説明されています。ダウンロードはAppleのサーバから行われ、その後、AppがSpeechTranscriberで文字起こしする音声はデバイス上で処理されます。できあがったテキストをどう扱うかはそのAppしだいなので、そのApp自身のプライバシーポリシーも引き続き当てはまります。

Appleのドキュメントでは、SpeechAnalyzerとSpeechTranscriberの対象はiOS 26、iPadOS 26、Mac Catalyst 26、macOS 26、tvOS 26、visionOS 26です。DictationTranscriberは、tvOSを除く同じプラットフォームが対象です。Macでは、音声認識へのアクセスを求めたAppが「システム設定」→「プライバシーとセキュリティ」→「音声認識」に表示されます。

SpeechAnalyzerは、Mac用Appがローカルで文字起こしをする方法の1つです。WhisperやParakeetのようなオープンなモデルも別の方法で、こちらはシステムが管理するのではなく、Appに同梱されるか、Appがダウンロードします。

よくある質問。

SpeechAnalyzerとは?

SpeechAnalyzerは、AppleのSpeechフレームワークにあるクラスで、話し言葉の音声を解析し、解析セッションを管理します。SpeechTranscriberモジュールと組み合わせると、macOS 26やiOS 26以降のAppで音声テキスト変換を行えます。

SpeechAnalyzerはオフラインで使える?

Appleによると、文字起こしは完全にデバイス上で行われますが、先にモデルを取得する必要があります。アセットがインストールされると、システムがそれを保持し、ほかのAppと共有します。

SpeechAnalyzerに必要なmacOSのバージョンは?

Appleのドキュメントでは、SpeechAnalyzerはmacOS 26.0から利用できます。iOS 26、iPadOS 26、Mac Catalyst 26、tvOS 26、visionOS 26でも利用できます。

SFSpeechRecognizerは非推奨?

AppleのSFSpeechRecognizerのリファレンスページでは、非推奨とはされていません。AppleはSpeechAnalyzerを、より多くの用途に対応する新しいAPIとして発表し、そのモデルはより速く、より柔軟だとしています。

SpeechTranscriberとDictationTranscriberの違いは?

SpeechTranscriberは、対応デバイスで一般的な文字起こしや長時間の文字起こしを行うために、Appleの新しいモデルを使います。DictationTranscriberはシステムの音声入力機能と同じモデルを使い、古いデバイスやほかの言語のための代替手段です。

SpeechAnalyzerのモデルはAppの容量を使う?

いいえ。Appleによると、モデルはシステムのストレージに保持され、Appのダウンロードサイズやストレージサイズを増やさず、Appのメモリ空間の外で動作します。

関連用語

いつだって、声のほうが速かった。

7日間無料、その後は$19 USDの買い切り。アカウント不要、サブスクリプションなし、アップロードなし。

macOS 14以降 · Apple silicon