自作データを、聞き流す。音声学習アプリ Sokqa

AIを使えば、あなただけのオリジナル問題集が一瞬で完成!

ChatGPTやClaudeなどのAIに「〇〇の問題を作って」とお願いするだけで、Sokqaですぐに読み込める学習パックが作れます。
以下の3ステップで、簡単に自分だけの学習コンテンツを作りましょう!

かんたんプロンプト作成

すぐに作る場合は、上のボタンからそのまま始められます。

  1. AIにプロンプト(指示文)を送信する
  2. 出力されたテキスト(JSON)をコピーする
  3. Sokqaアプリで「JSON貼り付けインポート」をする

🔰 【初心者向け】とりあえず作ってみよう!

まずは最もシンプルな「標準プロンプト」を使って、AIに問題を作ってもらいましょう。余計な設定がないため、誰でも簡単にエラーなく作成できます。

1. 4択問題を作る

単語帳や資格試験などの4択問題を作るためのプロンプトです。以下のテキストをコピーしてAIに貼り付けてください。

以下のテーマで、4択問題を5問作成し、指定されたJSONフォーマットで出力してください。

テーマ:[★ここに学習したいテーマを入力(例:TOEIC頻出英単語)★]
言語:ja

【厳守するフォーマット】
{
  "id": "★任意の英数字(例:pack_1)★",
  "type": "quiz",
  "schemaVersion": 1,
  "title": "★学習パックのタイトル★",
  "language": "ja",
  "questions": [
    {
      "id": "q1",
      "question": "★問題文★",
      "choices": ["選択肢1", "選択肢2", "選択肢3", "選択肢4"],
      "answerIndex": 0,
      "explanation": "★解説文★"
    }
  ]
}

【ルール】
・choices(選択肢)は必ず4つにしてください。
・answerIndex(正解番号)は、0〜3の数字で指定してください(0が1番目の選択肢)。
・5問全体で answerIndex が特定の番号に偏りすぎないように分散してください。同じ番号ばかり連続させないでください。
・各問題の id は "q1", "q2", "q3"... のように重複しない英数字を割り当ててください。
・出力は必ず波括弧 { から始め、 } で終わるプレーンテキストにしてください。マークダウン(```json など)は絶対に使用しないでください。
・JSONの構文エラーを防ぐため、文字列内でダブルクォーテーション(")を使う場合は必ずエスケープ(\")してください。
・文字列の途中で改行(\n)を使用しないでください。解説文などが長くなる場合も1行で出力してください。

2. 長文・スピーチを聞き流す

長文やスピーチ、ニュース記事などをアプリに自動で読み上げさせたい(リスニングしたい)場合はこちらのプロンプトを使用します。

以下のテーマ・文章を、Sokqaの長文読み上げ用(documentモード)JSONフォーマットに変換して出力してください。
文章は、意味の区切りや1文ごとに "documents" の配列に分割してください。

テーマ:[★ここに文章やテーマを入力(例:スティーブ・ジョブズのスピーチ)★]
言語:ja

【厳守するフォーマット】
{
  "id": "★任意の英数字(例:doc_pack_1)★",
  "type": "document",
  "schemaVersion": 1,
  "title": "★タイトルの入力★",
  "language": "ja",
  "documents": [
    {
      "id": "doc1",
      "text": "★1文目★"
    },
    {
      "id": "doc2",
      "text": "★2文目★"
    }
  ]
}

【ルール】
・出力は必ず波括弧 { から始め、 } で終わるプレーンテキストにしてください。マークダウン(```json など)は絶対に使用しないでください。
・JSONの構文エラーを防ぐため、文字列内でダブルクォーテーション(")を使う場合は必ずエスケープ(\")してください。
・文字列の途中で改行(\n)を使用しないでください。解説文などが長くなる場合も1行で出力してください。

作成したJSONをアプリに取り込む

AIが出力したテキストをSokqaアプリに読み込ませる手順です。

  1. AIが出力したテキスト({ から } まで)をすべてコピーする
  2. Sokqaアプリを開き、パック一覧画面右上の「+」またはインポートボタンから「JSON貼り付け」を選択する
  3. コピーしたテキストを貼り付けて、「インポート」をタップする
SokqaでのJSONインポート手順

✨ 【上級者向け】さらに高品質な問題集を作る

Sokqaの強みである「ハンズフリー学習」を極めるための、高度なカスタマイズ方法です。

TTS(読み上げ)最適化とは?

Sokqaでは、画面の表示テキストとは別に「音声読み上げ専用のテキスト(tts)」を設定できます。
スマホの読み上げ機能(TTS)が誤読したり、早口すぎると感じる場合は、JSONのテキストを以下のように調整することで、より自然でアナウンサーのような発音になります。

  • 読点(、)で息継ぎを作る:
    文章が長すぎる場合は、少し多めに読点(、)を打つことで自然なポーズ(間)が生まれます。
    例:画面を見ずに耳だけで → 画面を見ずに、耳だけで
  • 英語の略語は半角スペースを空ける:
    「AI」が「アイ」と読まれてしまう場合は、アルファベットの間に半角スペースを入れます。
    例:ChatGPT → C h a t G P T、AI → A I
  • 特殊な漢字・専門用語はカタカナにする:
    誤読しやすい単語は、思い切ってカタカナで書き換えると確実に正しい発音になります。
    例:1日 → ついたち、CPU → シーピーユー
  • 選択肢は choiceTexts で補正する:
    選択肢ごとのTTS補正が必要な場合だけ、choices と同じ順番の4件配列を使います。表示文と同じ読みで問題ない場合は省略できます。
    選択肢番号はアプリ側が追加するため、choiceTexts には番号を入れません。
  • answerText は特殊ケースだけ:
    通常の正解読み上げはアプリ側で扱えるため、基本的に省略してください。通常とは違う正解読み上げが必要な場合だけ使います。

Quiz のTTS補正例

{
  "id": "q-1",
  "question": "「CPU」の正式名称はどれ?",
  "choices": [
    "Central Processing Unit",
    "Control Program Unit",
    "Core Process Utility",
    "Central Program Utility"
  ],
  "answerIndex": 0,
  "explanation": "CPU はコンピュータの中心的な処理装置を指します。",
  "tts": {
    "questionText": "シーピーユーの正式名称は、どれですか。",
    "choiceTexts": [
      "セントラル プロセッシング ユニット",
      "コントロール プログラム ユニット",
      "コア プロセス ユーティリティ",
      "セントラル プログラム ユーティリティ"
    ],
    "explanationText": "シーピーユーは、コンピュータの中心的な処理装置を指します。"
  }
}
多言語混合読み上げの使い方 Sokqaの大きな特徴の1つです。日本語・英語に限らず、端末に音声データが入っている言語なら幅広く学習に使えます。

Sokqaは、1つの学習パック内で複数言語の読み上げを扱えます。日本人が英語以外の中国語・韓国語・フランス語・ドイツ語などを学ぶ用途にも使えますし、日本語・英語以外のユーザーも、自分の言語で学習パックを作れます。

  • 対応範囲: language には jaen だけでなく、zhfrkode なども指定できます
  • 条件: 端末に対象言語の音声データが入っていれば利用できます
  • 推奨: まずは field-level の指定を使い、必要な箇所だけインラインタグを使う
Quiz / Document まずは場所ごとに言語を固定する(推奨)

AIにJSONを出力させる場合は、タグを文中に大量に入れるより、questionLanguagechoicesLanguage などの field-level 指定のほうが安定します。document では、本文 text のベース言語を textLanguage で指定できます。

Quiz の例

"tts": {
  "questionLanguage": "ja-JP",
  "choicesLanguage": "en-US",
  "explanationLanguage": "ja-JP"
}

Document の例

"tts": {
  "textLanguage": "en-US"
}
共通 文の途中だけ切り替えるときはインラインタグ

解説文や document の読み上げ文で、単語やフレーズだけ切り替えたい場合は [en-US] のようなタグを使います。タグが出た後は、次のタグが出るまでその言語が続きます

[en-US]apple[ja-JP] はリンゴです。
共通 言語適用の優先順位

インラインタグがある場合は、そのタグが最優先です。タグがない場合は、アプリは以下の順でベース言語を決定します。

  1. 最優先: インラインタグ(例: [en-US]
  2. 次点: 各問題 / 各ドキュメント個別の言語指定(例: explanationLanguagetextLanguage
  3. 次: パック全体の language
  4. 最終フォールバック: 端末のデフォルト言語

つまり、個別指定がなければパック全体の language が使われ、さらにそれも使えない場合は端末のデフォルト言語が使われます。

共通 声が出ないときの確認
  • 端末サポート: 実際に読み上げられるかは OS(Android / iOS)の対応状況に依存します。
  • 音声データ: 対象言語の音声データが端末に入っていないと無音になることがあります。
  • 対処: スマホの「テキスト読み上げ」設定で対象言語を追加し、音声パックのダウンロード状況を確認してください。

TTS対応の高品質プロンプト

上記の最適化ルールをAIに指示し、最初から高品質な読み上げデータを作らせるプロンプトです。多言語が不要なら「通常用」、複数言語を混ぜる場合だけ「多言語用」を使ってください。

多言語が不要なら、まずはこちらを使うのが最も安定します。

▶ 4択問題(Quiz)用

以下のテーマで、4択問題を5問作成し、Sokqaアプリの音声読み上げ(TTS)に最適化されたJSONフォーマットで出力してください。

テーマ:[★ここに学習したいテーマを入力(例:ITパスポート試験対策)★]
言語:ja

【厳守するフォーマット】
{
  "id": "★任意の英数字(例:pack_1)★",
  "type": "quiz",
  "schemaVersion": 1,
  "title": "★学習パックのタイトル★",
  "description": "★この学習パックの概要説明★",
  "globalTags": ["★グローバルタグ1★", "★グローバルタグ2★", "★グローバルタグ3★"],
  "language": "ja",
  "questions": [
    {
      "id": "q1",
      "question": "「CPU」の正式名称はどれ?",
      "choices": ["Central Processing Unit", "Control Program Unit", "Core Process Utility", "Central Program Utility"],
      "answerIndex": 1,
      "explanation": "CPU はコンピュータの中心的な処理装置を指します。",
      "tts": {
        "questionText": "シーピーユーの正式名称は、どれですか。",
        "choiceTexts": [
          "セントラル プロセッシング ユニット",
          "コントロール プログラム ユニット",
          "コア プロセス ユーティリティ",
          "セントラル プログラム ユーティリティ"
        ],
        "explanationText": "シーピーユーは、コンピュータの中心的な処理装置を指します。"
      }
    }
  ]
}

【読み上げ(ttsオブジェクト)作成ルール】
・globalTags は文字列の配列で指定し、学習パック全体に関連するキーワードを3つ程度設定してください。
・このプロンプト単体で完結するように出力してください。他の説明文や別セクションのルールに依存せず、このブロック内の条件だけで正しいJSONを組み立ててください。
・question / choices / explanation などの画面表示用テキストと、questionText / choiceTexts / explanationText などの読み上げ用テキストは、意味内容を一致させてください。事実や正解を変えないでください。
・tts は必須ではありません。読み上げ補正が必要な項目がある場合だけ出力してください。
・questionText / choiceTexts / explanationText は、端末の標準TTSでそのまま自然に読める場合だけ省略できます。少しでも読み間違い・不自然さ・聞き取りにくさが出そうなら、省略せずに補正用の tts を出力してください。
・省略判定は tts オブジェクト全体ではなく、questionText / choiceTexts / explanationText を1項目ずつ個別に行ってください。必要な項目だけ出力し、不要な項目は出力しないでください。
・ttsオブジェクト内のテキストは、スマホの音声合成エンジンが自然に読み上げられるように工夫してください。
・読点(、)を多めに配置し、意図的なポーズ(息継ぎ)を作ってください。(例:「画面を見ずに、耳だけで」)
・英単語やアルファベットの略語は、必ずカタカナで記述してください。(例:CPU → シーピーユー、AI → エーアイ)
・英語のアルファベットを一文字ずつ読ませる場合は、半角スペースを空けてください。(例:A I、S A T)
・不要な接続詞(「あるいは」など)は削り、読点で繋ぐなど、耳で聞いて理解しやすい話し言葉に調整してください。
・漢字の読みが複数考えられる場合、人名・地名・商品名などの固有名詞、略語、記号、数字の読み方、区切り位置に少しでも不安がある場合は、省略せずに tts で補正してください。迷う場合は tts を付けてください。
・逆に、question / choices / explanation をそのまま読んでも自然で、補正の必要が明確にない場合は、同じ内容の tts を重複して出力しないでください。
・questionText が question と同じ内容で自然に読めるなら questionText は出力しないでください。
・選択肢のTTS補正が必要な場合は、tts.choiceTexts を出力してください。choiceTexts は choices と同じ順番の4件配列にしてください。
・choiceTexts には選択肢本文の読みだけを入れてください。日本語・英語など、どの言語でも選択肢番号は絶対に入れないでください。番号読み上げはアプリ側が設定に応じて追加します。
・choices 配列をそのまま読んでも自然なら、choiceTexts は省略してください。
・answerText は基本的に出力しないでください。通常とは違う正解読み上げが必要な特殊ケースだけ、任意項目として出力してください。
・explanationText が explanation と同じ内容で自然に読めるなら explanationText は出力しないでください。
・questionText / choiceTexts / explanationText のうち1つも不要なら、tts オブジェクト自体を出力しないでください。
・choices(選択肢)は必ず4つにし、answerIndex は 0〜3 の範囲にしてください。
・5問全体で answerIndex が特定の番号に偏りすぎないように分散してください。同じ番号ばかり連続させないでください。
・出力前に、各問題について「choices が4つあるか」「answerIndex が正しい選択肢を指しているか」「display と tts の意味が一致しているか」「不要な tts を重複出力していないか」を確認してください。
・その他のJSONルール(choicesは4つ、波括弧のみ出力など)は標準ルールに従ってください。

Document 用をコピーする前でも、ここで `通常用 / 多言語用` を切り替えられます。

▶ 長文(Document)用

以下のテーマ・文章を、Sokqaの長文読み上げ(Documentモード)に最適化されたJSONフォーマットに変換してください。
文章は「documents」配列の中で、1文または意味の区切りごとに分割してください。

テーマ:[★ここに文章やテーマを入力(例:スティーブ・ジョブズの卒業式スピーチ)★]
言語:ja

【厳守するフォーマット】
{
  "id": "★任意の英数字(例:doc_pack_1)★",
  "type": "document",
  "schemaVersion": 1,
  "title": "★タイトルを入力★",
  "description": "★この学習パックの概要説明★",
  "globalTags": ["★グローバルタグ1★", "★グローバルタグ2★", "★グローバルタグ3★"],
  "language": "ja",
  "documents": [
    {
      "id": "doc1",
      "text": "本日は、皆さんに大切なメッセージをお伝えします。"
    },
    {
      "id": "doc2",
      "text": "Stay hungry, stay foolish. という言葉を忘れないでください。",
      "tts": {
        "text": "ステイ ハングリー、ステイ フーリッシュ、という言葉を、忘れないでください。"
      }
    }
  ]
}

【読み上げ(ttsオブジェクト)作成ルール】
・globalTags は文字列の配列で指定し、学習パック全体に関連するキーワードを3つ程度設定してください。
・このプロンプト単体で完結するように出力してください。他の説明文や別セクションのルールに依存せず、このブロック内の条件だけで正しいJSONを組み立ててください。
・text と tts.text は、意味内容を一致させてください。読みやすくするための句読点追加やタグ付けはしてよいですが、内容自体を別の文に変えないでください。
・tts は必須ではありません。各 document ごとに、読み上げ補正が必要な場合だけ出力してください。
・tts.text は、端末の標準TTSで text をそのまま自然に読める場合だけ省略できます。少しでも読み間違い・不自然さ・聞き取りにくさが出そうなら、省略せずに補正用の tts を出力してください。
・漢字の読みが文脈で変わる語や、多義漢字は特に注意してください。たとえば「実を言うと」「鏡を見て」のように誤読の可能性がある場合は、tts.text で「じつ」「かがみ」のように読みを補正してください。
・ttsオブジェクト内のテキストは、スマホの音声合成エンジンが自然に読み上げられるように工夫してください。
・読点(、)は多用しないでください。意味の切れ目や、聞き取りやすさが明確に上がる箇所にだけ最小限で入れてください。
・英単語やアルファベットの略語は、必ずカタカナで記述してください。(例:CPU → シーピーユー)
・英語のアルファベットを一文字ずつ読ませる場合は、半角スペースを空けてください。(例:A I)
・不要な接続詞は削り、耳で聞いて理解しやすい話し言葉に調整してください。ただし、文節ごとに機械的に読点を入れないでください。
・漢字の読みが複数考えられる場合、人名・地名・商品名などの固有名詞、略語、記号、数字の読み方、区切り位置に少しでも不安がある場合は、省略せずに tts で補正してください。迷う場合は tts を付けてください。
・逆に、text をそのまま読んでも自然で、補正の必要が明確にない場合は、同じ内容の tts.text を重複して出力しないでください。
・tts.text は全文を書き換えるのではなく、誤読しやすい語、略語、固有名詞、必要なポーズだけを最小差分で補正してください。全文をひらがな化したり、全文に過剰な読点を入れたりしないでください。
・各 document ごとに、display の text をそのまま使うか、tts.text で補正するかを判断してください。tts が不要な document には tts オブジェクト自体を出力しないでください。
・出力前に、各 document について「text の意味が保たれているか」「tts が必要なものだけに付いているか」「不要な同一 tts.text を重複出力していないか」「多義漢字や文脈依存の読みを補正できているか」「読点やひらがな化が過剰になっていないか」を確認してください。
・出力は必ず波括弧 { から始め、 } で終わるプレーンテキストにしてください。マークダウン(```json など)は絶対に使用しないでください。

トラブルシューティング

もしアプリへのインポート時にエラーが出た場合は、以下のよくある原因を確認してください。

よくあるエラー

  • choices (選択肢)が3つや5つになっている → 必ず4つにする
  • answerIndex が 4 になっている → 正解が4番目の場合は 3 を指定する
  • 最後の要素の後にカンマ( , )が残っている → 波括弧 } や角括弧 ] の直前にある余分なカンマ(,)を削除してください。
  • 多言語読み上げで声が出ない → 端末のTTS設定で対象言語の音声データを追加し、OSがその言語をサポートしているか確認してください。

Sokqa JSONフォーマット 仕様書

SokqaにインポートするJSONデータの構造と、各タグの意味を解説します。
必要最低限の「必須タグ」だけで動かすことも、よりリッチな体験のための「オプションタグ」を追加することも可能です。

必須タグ(最低限これだけで動きます)

学習パックを認識し、動作させるために必ず必要なタグです。

  • schemaVersion : 常に 1 を指定します。
  • type : 学習の形式を指定します(quiz = 4択問題、document = 長文読み上げ)。
  • id : パック全体、または各問題/文章に割り当てる一意のIDです(例:pack_1, q1)。他のIDと重複しない英数字を指定してください。
  • title : 学習パックのタイトルです。アプリの一覧画面に表示されます。
  • language : 学習する言語のコードです(例:jaenzhfrkode)。個別指定がない場合のベース言語としても使われます。

【quiz(4択問題)の場合に必須】

  • questions : 問題のリスト(配列)です。
  • question : 問題文です(画面に表示されます)。
  • choices : 選択肢です。必ず4つ指定してください。
  • answerIndex : 正解の番号です。0〜3の数字で指定します(0が1番目、3が4番目の選択肢)。

【document(長文読み上げ)の場合に必須】

  • documents : 文章のリスト(配列)です。意味の区切りや1文ごとに分割します。
  • text : 文章のテキストです(画面に表示されます)。

オプションタグ(より高品質な学習体験のために)

必須ではありませんが、追加することでアプリの機能をフル活用できます。

  • globalTags : 学習パック全体に付けるタグのリスト(配列)です(推奨)。パック一覧での検索や絞り込みに利用する想定です。公式配布パックでは設定しますが、ユーザー作成では未設定でも動作します。
  • description : 学習パック全体の概要説明です。パックの内容や対象、使い方の要点を1〜2文で簡潔に書くと分かりやすくなります。
  • explanation (quizのみ) : 問題の解説文です。正解・不正解時に画面に表示され、学習の理解を深めます。
  • tts (quiz / document 共通) : 音声読み上げ(TTS)専用のテキストを指定するオブジェクトです。画面表示用のテキストとは別に、聞き取りやすい話し言葉やカタカナ、読点(間)を設定したい場合に使用します。
    多言語混合読み上げでは、インラインタグが最優先です。タグがない部分は field-level の言語指定がベースになり、さらに指定がなければパック全体の language がフォールバックとして使われます。

    【quizの場合のtts構造】

    • questionText: 読み上げ用の問題文
    • choiceTexts: 読み上げ用の選択肢補正。choices と同じ順番の4件配列で、選択肢番号は入れません。
    • answerText: 特殊な正解読み上げが必要な場合だけ使う任意項目です。通常は省略できます。
    • explanationText: 読み上げ用の解説文

    【documentの場合のtts構造】

    • textLanguage: 本文 text のベース言語
    • text: 読み上げ用の文章テキスト
  • tags (quiz / document 共通) : 問題や文章に付けるタグのリスト(配列)です(高度なオプション)。アプリ内でのタグ検索や、学習対象の絞り込みに利用できます(例:["英単語", "TOEIC"])。