ci-story は何をしますか?
各レッスンは短い動画です。少人数のキャストが簡単なストーリーを演じ、落ち着いた声が短い文をナレーションし、各文は画像でその意味を明らかにしながら何度も繰り返されます。対象言語の文字とローマ字表記による字幕は、発話中の単語を強調表示します。最後の約15%は字幕なしで、純粋なリスニングとなります。
コースデータと学習者のリクエストから自分で計画を練り、それを提示し、生成を開始する前に学習者のゴーサインを待ちます(ステップ5)。それ以外では、初回実行時のセットアップと大規模なダウンロードの前を除き、実行中に質問をしないでください。
場所
-
<skill>: このスキルのフォルダ(このファイルを含むもの)。scripts/、references/、assets/を含みます。 -
設定:
~/.config/ci-story/config.jsonにはworkspace、tts_project(ローカルQwen音声の場合のみ)、およびオプションのenvが格納されています。これが存在しない場合、またはその中のパスが存在しない場合は、最初にreferences/setup.mdに従ってください。 -
コース:
<workspace>/courses/<lang>/は以下を保持します:course.json: 音声、フォントnotes.md: 学習者のオーバーライドart/drawn/、art/generated/audio-cache/lessons/NNN-slug/
学習者がコース名を指定せず、コースが1つだけ存在する場合は、そのコースを使用します。
-
TTSプロジェクトで
uv lock --upgradeを決して実行せず、そこでtorchパスのソースを変更しないでください。マルチGBのtorch wheelがローカルファイルとして固定されている場合があります。
「新しいストーリー」のワークフロー
-
コースを読む。
python3 <skill>/scripts/curriculum.py report <course>を実行します。notes.md、および最後の1つまたは2つのlesson.jsonファイルとそのstory.pyを読み、再利用できるキャスト、小道具、ヘルパーの連続性を確認します。 -
学習者の発言を記録する。
- 難しい、または忘れた単語:
struggling: 给のような行を追加します。 - よく知っている単語:
solid: 苹果を追加します。 - もっと出してほしい単語:
focus: …を追加します。
タグ行は単語のみを保持し、カンマ区切りです。後の行は同じ単語の前の行を上書きし、(括弧)内の備考は無視されます。
- 難しい、または忘れた単語:
-
教師のように計画する:
- 最初にリクエストを尊重します: そのトピック、焦点単語、または復習対象を優先します。
- 2~3個の新出単語を選びます。それぞれが具体的で提示可能(物体、目に見える動作、数字、色、または「持っている/持っていない」「大きい/小さい」などの対比)であり、日常会話で一般的で、既知の単語と組み合わせて簡単な文を作れるものでなければなりません。コースの最初のレッスンでは、合計で5~7語のみを使用し(例:这 是 一个 プラス 2~3個の名詞)、それぞれ10回以上聞かせます。最初のレッスンではすべての単語が新しいため、それらすべてを
new_wordsにリストします。 - 期限切れ(due)の単語をそれぞれ少なくとも3回織り込みます。脆弱(fragile) および
strugglingの単語はより頻繁に使用します。solidの単語は、ストーリーにどうしても必要でない限り除外します。 - すべての新出単語は少なくとも10回聞かせ、毎回、絵がその意味を示します。
- ストーリーの構成: 導入(これは…)、対比(ある / ない)、動作または変化、そしてすべてを組み合わせた要約。既存のキャスト(
man、woman)を維持しますが、ストーリーに新しい人が必要な場合は例外です。 - 長さは内容に応じて決まります。 デフォルトでは、各新出単語に10回以上の聴取機会を与え、期限切れの単語をカバーするのに必要なだけの文を使用します。通常、30~50文(各2~6語)、およそ2~4分(1文あたり約4秒)です。学習者がより長いストーリー(「約6分」、「長めのもの」)を求めた場合は、同じ2~3個の新出単語を維持し、シーンを追加します: ストーリーを言い換え、同じ単語を新しい状況に置き、より古い単語を持ち出します。時間を埋めるために新しい単語を追加することは決してありません。
- バリエーションを発明するよりも、文を正確に繰り返すことを優先します。正確な繰り返しは同一に聞こえ(キャッシュから取得)、リスニングに役立ちます。
-
<course>/lessons/NNN-slug/lesson.jsonをドラフトする。 NNN はレポートから取得します。このドラフトが計画の信頼できる情報源であり、学習者が承認するまで修正します。各ビートを1行に配置し、ビート番号がわかりやすいようにします:{