Communityコーディング&開発github.com

発音ストリップ

チャット返信にコンパクトなクリック再生発音ストリップを追加し、該当単語をインラインで注釈します。ユーザーが単語の発音、オーディオボタン、会話中の語彙ノートを求めた場合に使用します。スタンドアロンの音声ファイルやWebページの作成には使用しません。

発音ストリップ とは?

このスキルは、AIアシスタントの会話返信に小さな一行の単語ボタンストリップを追加し、各ボタンをクリックするとブラウザの音声合成機能で単語が発音されるようにします。外部ファイルのダウンロードやWebページへの遷移を必要とせず、会話内で完結するため、学習者にとって便利なツールです。主に2~4個の単語を選び、それらをインラインで注釈(KaTeXを用いた色付き太字、IPA発音記号、品詞、ユーザー母語での短い説明を含む)と組み合わせて表示します。対応プラットフォームはテキストベースのAIアシスタントチャットインターフェースであり、具体的にはCodex(vscode-codexやClaude Codeなど)を想定しています。スクリプト`scripts/make_compact_strip.py`を使ってHTMLフラグメントを生成し、その参照を特別なプライベートユース文字(U+E200, U+E202, U+E201)で囲んで返信に埋め込みます。外部辞書やTTSサービスへのリンクは使用せず、ホストのテーマ変数を尊重したアクセシブルなデザインです。Python 3.8以降のみが必要で、サードパーティパッケージは不要です。

対応~Claude Code✓Codex CLI~Cursor
npx skills add 1203124102-oss/codex-pronunciation-strip

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

発音ストリップ は何をしますか?

チャット返信に小さな一行の単語ボタンストリップを追加します。各クリックでブラウザの音声合成機能が単語を発音するため、何も開かず、ダウンロードもなく、会話から離れる必要もありません。ストリップをインラインの語彙注釈と組み合わせて使用します。

ワークフロー

  1. 教える価値のある単語を2~4個選びます:学習者のレベルを超えているもの、混同しやすいもの、または返信の中心となる単語を選びます。既に説明済みの単語を再度注釈するのは避けてください。

  2. 各単語を通常の文の中で注釈し、別のリストとしては決して使用しません。ユーザーの言語で、色付き太字のKaTeX、米国IPA、品詞、短い語釈を使用します。小さなアクセシブルパレット(#2563eb、#7c3aed、#059669、#b45309、#db2777、#0e7490)から単語ごとにランダムな色を選び、各単語は一貫した単一色に保ち、同じ返信内で色を繰り返さないようにします。このクライアントは$$...$$のみをレンダリングするため、次のように記述します:

    保持紧凑($$\textcolor{#7c3aed}{\textbf{compact}}$$ /kəmˈpækt/、adj. 紧凑的)

  3. ストリップを生成します:

    python scripts/make_compact_strip.py --out <絶対パス>.html word1 word2 ...
    

    ファイルを永続的かつクライアントが読み取りやすい状態に保ちます。スレッドのビジュアライゼーションディレクトリにASCIIファイル名(例:~/.codex/visualizations/<日付>/<スレッドID>/pron-<スラグ>.html)を推奨します。

  4. スクリプトがパスとビジュアライゼーション参照を出力します。その参照をそのまま、最終返信の最後に独立した行として配置します。

レンダリングルール

参照はプライベートユース文字で囲まれています:開きU+E200、区切りU+E202、閉じU+E201。スクリプト出力からコピーします。再入力する場合は、正確にこれらのコードポイントを使用してください。閉じ文字がU+E041など間違っていると、参照全体が自動的にプレーンテキストに変わり、ストリップは表示されません。

制約

  • HTMLフラグメントのみを出力します。<!doctype>、<html>、<head>、<body>は追加しないでください。CSSとJavaScriptは生成されたルートIDにスコープしてください。
  • ストリップは2~4個のボタンで、一行に収め、スペースが狭いときだけ折り返します。
  • 外部の辞書やTTSページにリンクせず、大きなオーディオプレーヤーを埋め込まないでください。ボタンはその場で再生する必要があります。
  • ハードコードされたパレットではなく、ホストのテーマ変数(--foreground、--border、--primary、--accent、--ring、--primary-foreground)を使用します。
  • クライアントがインラインビジュアライゼーションをまったくレンダリングできない場合は、文内にコンパクトなスピーカーリンクにフォールバックします: [🔊](https://dict.youdao.com/dictvoice?audio=<単語>&type=2)。

ファイル

  • scripts/make_compact_strip.py — 2~4個の単語を検証し、フラグメントを書き込み、ビジュアライゼーション参照を出力します。
  • assets/strip-template.html — __ROOT_ID__および__WORDS_JSON__プレースホルダーを含むフラグメントテンプレート。

必要なのはPython 3.8以降で、サードパーティパッケージは不要です。

関連スキル