Anki の iOS 版アプリ AnkiMobile では、システムのアクセシビリティ機能を利用すると、特別なアプリをインストールしなくてもテキストを読み上げることができます。この機能の呼び出し方を紹介します。

はじめに

iPhone などの iOS 機器は、システム自体は音声認識や音声合成などの豊富なアクセシビリティ機能を持っています。標準設定では AnkiMobile からこの機能を直接呼び出すことができませんので、テキストから音声合成する、読み上げる設定方法を紹介します。

次の 2 通りの方法を紹介します。テキストを読み上げる用途に適したものをお使いください。

  • 選択項目を読み上げ機能の利用

  • 読み上げ機能を持つカードテンプレートの作成

AnkiMobile の最低限な使用方法を理解していることを前提として説明します。 文中にもし不明な項目が出てきたら iPhone ユーザーのための AnkiMobile サバイバルガイドを参考にしてください。

選択項目を読み上げ

カードの好きな場所を選択して、読み上げる方法を紹介します。読み上げるタイミングも自分で決めることが出来ます。

選択項目を読み上げ (Speak Selection) は、iPhoneの設定項目を一か所変更するだけですぐ利用できるようになります。 呼び出す手順は、一見複雑そうに思うかもしれませんが、使ってみると意外に簡単です。 自分ではこちらの方法を通常使っています。

設定の手順

  1. [設定]-[一般]-[アクセシビリティ]-[選択項目の読み上げ]

  2. [選択項目の読み上げ] 項目を [オン] (1) にします。

選択項目を読み上げ設定
Figure 1. 選択項目を読み上げ設定

設定の調整

  • [声] (2) の項目をタップして表示する設定する言語選択できます。

  • [読み上げ速度] (3) のスライダーで設定を変更すると、読み上げ速度のプレビューを聴くことが出来ます。

音声の詳細設定

[声] (2) で表示した言語の一覧から、言語をタップして指定すると言語別に音声の種類(a)、品質(b)、読み上げ速度(c) を設定できます。

声の詳細設定
Figure 2. 声の詳細設定

iPhoneで読み上げ可能な言語

なお、音声は次の 26 言語に対応しています。

日本語、アラビア語、イタリア語、インドネシア語、オランダ語、ギリシャ語、スウェーデン語、スペイン語、スロバキア語、タイ語、チェコ語、デンマーク語、ドイツ語、トルコ語、ノルウェー語[ブークモール]、ハンガリー語、ヒンディー語、フィンランド語、フランス語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、英語、韓国語、中国語

テキストを読み上げる方法

  1. 読み上げたいテキストをダブルタップして、選択項目を指定します。

  2. [Speak]をタップします。

選択範囲を指定して読み上げる
Figure 3. 選択範囲を指定して読み上げる

ノートを読み上げるカードテンプレートの作り方

AnkiMobile でカードを表示した時に自動的にテキストを読み上げる方法を紹介しましょう。

テキスト読み上げ機能を呼び出す JavaScript をカードテンプレートに導入します。テキストの読み上げには Web Speech API という Web 標準を使います。 なお、AnkiMobile ではカードテンプレートを編集できませんので、PC 版 Anki で編集します。

カードの表面に配置した Front フィールドを読み上げるには、表面のテンプレートを次のように設定します。

Front フィールドを読み上げる設定例
<span id="word">{{Front}}</span>
<script>
var w = document.getElementById("word");
window.setTimeout("speak(w.innerText)", 500);
function speak(word)
{
var speech = new SpeechSynthesisUtterance();
speech.text = word;
speech.volume = 0.5; // 音量: 0 to 1 (1)
speech.rate = 1; // 速度: 0.1 to 9 (2)
speech.pitch = 1; // ピッチ: 0 to 2, 1=normal (3)
speech.lang = "en-US"; // 言語: アメリカ英語、日本語なら ja-JP (4)
speechSynthesis.cancel();
speechSynthesis.speak(speech);
}
</script>

音声の読み上げ速度(1)、音量(2)、ピッチ(3)、言語(4)を指定することが出来ます。 カードテンプレートの編集方法については、Ankiのカード表示を編集するで説明しています。

利用上の注意:
  • この機能は、AnkiMobile の正式サポート外の機能です。

  • この機能を利用するには AnkiMobile 2.0.20 以降が必要です。なお、マナーモード (サイレントスイッチ) 設定中はこの機能は動作しません。

参考: Req: Text to speech in AnkiMobile for ios7.. (Anki サポートサイト)

Anki と AnkiMobile を同期して利用している場合

Anki を使ってカードテンプレートに上の設定を追加し、AnkiMobile と同期します。

AnkiMobile 単独で利用している場合

新規のノートのみに読み上げ機能を設定できます。 このカードテンプレートを含んだ共有単語帳を使います。

  1. 共有単語帳 Speech Text template for iOS (AnkiMobile)を ダウンロードします。

  2. ダウンロードファイルを AnkiMobile で開くと、読み込み機能を持つノートタイプ (Note Type) を導入できます。

  3. ノート追加画面の [Type] 項目でノートタイプ指定します。アメリカ英語を読み上げる場合は [Basic (iOS Speech en-US;アメリカ英語)]へ変更します。

ノート追加画面
Figure 4. ノート追加画面

共有単語帳のインストール手順やノートの追加方法はiPhone ユーザーのための AnkiMobile サバイバルガイドをご覧下さい。

音声データをカードに使いたい方は、画像、音声、動画などメディアファイルを Anki へ一括登録を参考にしてください。

おわりに

iPhone のシステム iOS 自体は音声に関する豊富な機能を持っています。AnkiMobile から呼び出す方法さえ理解すれば、Anki の学習を妨げることなく簡単に呼び出すことが出来るようになります。 テキストの読み上げ機能をどのように使うか、その用途によって紹介した 2 つの方法を使い分けて頂ければと思います。

更新情報

2014/06/21: 初出

2015/11/20: 共有単語帳リンク先変更

2016/03/17: AnkiMobile 2.0.18 アップデートによる問題点を追加

2016/04/08: AnkiMobile 2.0.20 アップデートによる更新を反映

2016/10/03: HTML タグを読まないようにカードテンプレートを変更