メインコンテンツへスキップ

Voicepeakのユーザ辞書にIT系単語を大量追加(macOS)

目次
以下の内容は独自調査したもので、動作の保証はできません。また内容に関する開発元へのお問い合わせもご遠慮ください。

VoicepeakへIT系サービスの語彙を強化するためユーザ辞書を作成した。

ユーザ辞書の調査
#

Voicepeakのユーザ辞書は以下のディレクトリにある。

~/Library/Application Support/Dreamtonics/Voicepeak/settings

配下にある、

  • dic.json
  • user.csv
  • user.dic

がユーザ辞書っぽい。user.dicはバイナリなので後回しにして、テキストファイルのdic.jsonとuser.csvから見ていく。

user.csvは、

PowerShell,11468,13960,-5000,名詞,固有名詞,パワーシェル,2,*,*,441

のような感じで、値が推測できないカラムが多く手を付けにくい。

dic.jsonは、

[
  {
    "sur": "Claude",
    "pron": "\u30af\u30ed\u30fc\u30c9",
    "pos": "Japanese_Koyuumeishi_ippan",
    "priority": 5,
    "accentType": 0,
    "lang": "ja"
  }
]

となっており、VoicepeakのUIから辞書登録する際に指定する値に近い。それぞれのキーの意味と内容は以下の通り。

キー意味
sur単語
pronよみがな。カタカナをUnicodeエスケープ表記したもの
pos品詞。以下のいずれかを指定する
Japanese_Futsuu_meishi / Japanese_Koyuumeishi_ippan / Japanese_Koyuumeishi_jinmei / Japanese_Koyuumeishi_sei / Japanese_Koyuumeishi_mei / Japanese_Koyuumeishi_place
priority優先順位 
accentType1: 先頭の音にアクセント 2: 2つめの音にアクセント 3以上:2つめから指定番目の音にアクセント(4なら2つめから4つめの音にアクセント)
lang言語

ユーザ辞書へアプリ外から登録
#

このJSONにエントリを追加したら、ユーザ辞書として認識してくれたら嬉しいのだが…と思いつつ、手でJSONへエントリを追加してVoicepeakを起動したところ、なんと認識してくれた。

推測だがユーザ辞書は、dic.jsonを源流として、中間形式のuser.csvを生成し、そこからVoicepeakが参照するバイナリファイルであるuser.dicを生成しているのかな? ファイルのタイムスタンプではその順に並んでいる。

辞書への追加方法がわかった(と言っても、とりあえず動いたレベルではある)ので、その後、ChatGPTにIT系単語のJSONを生成してもらいdic.jsonへ追加したところ、無事Voicepeakに認識された。

何件かサンプリングで確認したところ、アクセントの間違いは散見されたものの、実際に単語を使用する際に調整して行けば良いだろう。

関連記事

Ghostty

Ghosttyはクロスプラットフォームのターミナルエミュレーター。動作が軽くカスタマイズ性が高い。 Macへのインストールと設定 # brewでインストールした。 brew install --cask ghostty 各種の設定はGUIではなくconfigファイルで行う。 ~/Library/Application Support/com.mitchellh.ghostty/config 設定ファイルをターミナル内から再読み込みするのはcmd+shift+, ターミナルから以下のコマンドを入力すると、使用できる(インストールされている)フォントファミリのリストが表示される。 ghostty +list-fonts 以下のコマンドでインストールされているテーマのリストが表示される。 ghostty +list-themes このようにプレビューを表示しながらテーマを選ぶことができる。 現時点での設定ファイルは以下の通り。 theme = "Dracula" font-family = "UDEV Gothic" font-thicken font-size = 20 mouse-hide-while-typing window-theme = dark background-opacity = 0.8 background-blur = true macos-titlebar-style = transparent window-inherit-working-directory = true window-save-state = always 設定可能な項目の説明はConfigurationにある。かなりの数があるが、自分は必要最低限のものに絞った。 Alfred関連の設定 # デフォルトで使用するターミナルをGhosttyに変更するため、Alfredの設定変更とワークフローの修正を行った。 Teminalの設定変更 # 以下のGhosttyとの連携スクリプトを手順に従って設定する。 zeitlings/alfred-ghostty-script: AppleScript for Ghostty Alfred integration terminalfinderワークフローの修正 # ファインダとターミナルを行き来するのに使っているAlfredのtermmialfinderワークフローにGhostty用のトリガーとスクリプトを追加した。

ObsidianのVimモードでNORMALモードに移行したらIMEをOFFにする(Mac)

ObsidianのVimモードでNORMALモードに移行した際、デフォルの動作ではIMEのON/OFFが変わらないため、日本語のテキストを書いているときに不便なので、im-select + Karabiner-Elementsを使ってEsc押下でIME OFFにする設定を追加した。 自分の環境では既にターミナルやGhostty用にその設定を入れているので、対象とするアプリとしてObisidianを追加するだけだった。 具体的にはbundle_identifiersに"^md\\.obsidian$"を追加した。 Obsidianのbundle_identifierは以下のようにして調べた。 osascript -e 'id of app "Obsidian"' md.obsidian 以下はKarabiner-Elementsに表示で入っている「TerminalまたはMacVimでESCあるいは^[を押したときに日本語入力を英数に切り替える」にGhosttyとObsidianを追加したもの。 { "description": "指定したアプリでESCあるいは^[を押したときに日本語入力を英数に切り替える。", "manipulators": [ { "conditions": [ { "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\.", "^com\\.mitchellh\\.ghostty$", "^md\\.obsidian$" ], "type": "frontmost_application_if" } ], "from": { "key_code": "escape", "modifiers": { "optional": ["any"] } }, "to": [ { "key_code": "japanese_eisuu" }, { "key_code": "escape" } ], "type": "basic" }, { "conditions": [ { "bundle_identifiers": [ "^com\\.apple\\.Terminal$", "^org\\.vim\\." ], "type": "frontmost_application_if" } ], "from": { "key_code": "open_bracket", "modifiers": { "mandatory": ["left_control"] } }, "to": [ { "key_code": "japanese_eisuu" }, { "key_code": "escape" } ], "type": "basic" } ] }

Elo Rating

イロレーティング(Elo rating) とは、対戦型の競技(2人のプレイヤーまたは2つのチームが対戦して勝敗を決めるタイプの競技)において、相対評価で実力を表すために使われる指標の一つ。数学的裏付けのある最も著名なレーティングシステムである。 イロレーティングは、もともとチェスの実力を表すために考案されたものだが、FIFAランキングや将棋や囲碁のオンライン対局場など様々な競技に応用されている。 イロレーティング - Wikipediaより 個人的 J-League ELO Ratings system レーティングについて | National Chess Society of Japan - NCS イロ・レーティングの意味と求め方を完全解説 | ワイズ サッカーファンでも意外と知らない!?最新FIFAランキングの決め方とは | Football Tribe Japan 二人対戦のプレイヤ強さを数値化したい - Thoth Children サッカーくじ totoの予想をしてみる。-レーティング計算- - Extrasensory Perception + ER + Blog

日付キーワードからフォーマットされた日付テキストを生成するAlfred Workflow

azooKeyという高精度なニューラルかな漢字変換エンジンをサポートしたiOS用キーボードアプリのmacOS版を試している。 ライブ変換もサポートしていて、標準のIMEより変換精度が高くて素晴らしい。問題なく常用できそうな感じ。 ただ、いくつかのIMEでサポートしている「きょう」で本日の日付に変換する機能がないんですよね。これはXでも話題になっていて、以下のような改善策も見つけました。 azooKey-Desktop で日付を入力する - terfnoのScrapbox しかし、個人的には「昨日」や「明日」「先週の金曜日」などの日付を得たいケースが多く、ChatGPTでAlfred用のワークフローを作成した。 動作イメージ # ワークフローを起動して、キーワードを入力すると対応するものがサジェストされる。 キーワードを決定すると、複数の日付フォーマットを選択できる。 対応キーワード # today:今日 yesterday:昨日 tomorrow:明日 dayaftertomorrow(略:dat):明後日 daybeforeyesterday(略:dby):一昨日 mon / tue / wed / thu / fri / sat / sun:各曜日 曜日を入力した場合は 「直近の過去の同曜日」「次に来る同曜日」を候補に表示 出力フォーマット # ISO形式:YYYY-MM-DD ISO + 曜日:YYYY-MM-DD(Fri) 日本語形式:YYYY年M月D日(金) 和暦形式(令和):令和X年M月D日(金) ダウンロード # 作成したワークフローを置いておきます。Alfred 5.7で動作確認しました。

IPコード

IPコード(Ingress Protection Code)は防塵と防水を示す国際規格。IPコードは「IP」の後に2つの数字が並び、以下を表す。 1桁目:防塵等級(固体異物に対する保護) 0〜6 の範囲で評価(6が完全防塵) 2桁目:防水等級(水に対する保護) 0〜9K の範囲で評価(9Kが最高等級:高圧・高温の水流にも耐える) 「X」が付く場合は、その桁の評価をしていない/規定していないことを意味する。 等級の例 等級 保護内容 使用イメージ IPX4 あらゆる方向からの水の飛沫に耐える 雨や水しぶきがかかる環境で使用可能。 例:ランニング中のイヤホン、キッチンで使うスピーカー IPX5 あらゆる方向からの噴流水に耐える(12.5L/分の水を3分以上) シャワーを直接かけても問題ない。 例:屋外スピーカー、アウトドア用機器 IPX7 一時的な水没(深さ1mで30分)に耐える 浴槽や水たまりに落としても問題ない(短時間なら)。 例:防水スマホ、アクションカメラ

radiko APIを使って都道府県ごとのラジオ局一覧を出力する

require 'net/http' require 'uri' require 'rexml/document' prefecture_names = { "1" => "北海道", "2" => "青森県", "3" => "岩手県", "4" => "宮城県", "5" => "秋田県", "6" => "山形県", "7" => "福島県", "8" => "茨城県", "9" => "栃木県", "10" => "群馬県", "11" => "埼玉県", "12" => "千葉県", "13" => "東京都", "14" => "神奈川県", "15" => "新潟県", "16" => "富山県", "17" => "石川県", "18" => "福井県", "19" => "山梨県", "20" => "長野県", "21" => "岐阜県", "22" => "静岡県", "23" => "愛知県", "24" => "三重県", "25" => "滋賀県", "26" => "京都府", "27" => "大阪府", "28" => "兵庫県", "29" => "奈良県", "30" => "和歌山県", "31" => "鳥取県", "32" => "島根県", "33" => "岡山県", "34" => "広島県", "35" => "山口県", "36" => "徳島県", "37" => "香川県", "38" => "愛媛県", "39" => "高知県", "40" => "福岡県", "41" => "佐賀県", "42" => "長崎県", "43" => "熊本県", "44" => "大分県", "45" => "宮崎県", "46" => "鹿児島県", "47" => "沖縄県" } prefectures = (1..47).map(&:to_s) prefectures.each do |pref_code| url = "https://radiko.jp/v2/station/list/JP#{pref_code}.xml" uri = URI.parse(url) begin response = Net::HTTP.get_response(uri) if response.is_a?(Net::HTTPSuccess) document = REXML::Document.new(response.body) puts "## #{prefecture_names[pref_code]}(#{pref_code})" document.elements.each('stations/station') do |station| station_name = station.elements['name'].text station_id = station.elements['id'].text puts "- #{station_name}(#{station_id})" end puts "" else puts "Failed to retrieve data for prefecture code #{pref_code}" end rescue => e puts "Error: #{e.message} for prefecture code #{pref_code}" end end 北海道(1) # HBCラジオ(HBC) STVラジオ(STV) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) AIR-G’(FM北海道)(AIR-G) FM NORTH WAVE(NORTHWAVE) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(札幌)(JOIK) NHK-FM(東京)(JOAK-FM) 青森県(2) # RAB青森放送(RAB) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム青森(AFB) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(仙台)(JOHK) NHK-FM(東京)(JOAK-FM) 岩手県(3) # IBCラジオ(IBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム岩手(FMI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(仙台)(JOHK) NHK-FM(東京)(JOAK-FM) 宮城県(4) # TBCラジオ(TBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) Date fm エフエム仙台(DATEFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(仙台)(JOHK) NHK-FM(東京)(JOAK-FM) 秋田県(5) # ABSラジオ(ABS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム秋田(AFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(仙台)(JOHK) NHK-FM(東京)(JOAK-FM) 山形県(6) # YBC山形放送(YBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) Rhythm Station エフエム山形(RFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(仙台)(JOHK) NHK-FM(東京)(JOAK-FM) 福島県(7) # RFCラジオ福島(RFC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) ふくしまFM(FMF) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(仙台)(JOHK) NHK-FM(東京)(JOAK-FM) 茨城県(8) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) LuckyFM 茨城放送(IBS) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 栃木県(9) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) CRT栃木放送(CRT) RADIO BERRY(RADIOBERRY) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) LuckyFM 茨城放送(IBS) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 群馬県(10) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) FM GUNMA(FMGUNMA) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) LuckyFM 茨城放送(IBS) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 埼玉県(11) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) LuckyFM 茨城放送(IBS) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 千葉県(12) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) LuckyFM 茨城放送(IBS) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 東京都(13) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) LuckyFM 茨城放送(IBS) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 神奈川県(14) # TBSラジオ(TBS) 文化放送(QRR) ニッポン放送(LFR) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) interfm(INT) TOKYO FM(FMT) J-WAVE(FMJ) ラジオ日本(JORF) BAYFM78(BAYFM78) NACK5(NACK5) FMヨコハマ(YFM) LuckyFM 茨城放送(IBS) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 新潟県(15) # BSNラジオ(BSN) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM NIIGATA(FMNIIGATA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 富山県(16) # KNBラジオ(KNB) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FMとやま(FMTOYAMA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 石川県(17) # MROラジオ(MRO) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム石川(HELLOFIVE) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 福井県(18) # FBCラジオ(FBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM福井(FMFUKUI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 山梨県(19) # YBSラジオ(YBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM FUJI(FM-FUJI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 長野県(20) # SBCラジオ(SBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM長野(FMN) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(東京)(JOAK) NHK-FM(東京)(JOAK-FM) 岐阜県(21) # CBCラジオ(CBC) TOKAI RADIO(TOKAIRADIO) ぎふチャン(GBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) ZIP-FM(ZIP-FM) FM GIFU(FMGIFU) FM AICHI(FMAICHI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 静岡県(22) # SBSラジオ(SBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) K-MIX(K-MIX) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 愛知県(23) # CBCラジオ(CBC) TOKAI RADIO(TOKAIRADIO) ぎふチャン(GBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) ZIP-FM(ZIP-FM) FM AICHI(FMAICHI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 三重県(24) # CBCラジオ(CBC) TOKAI RADIO(TOKAIRADIO) ぎふチャン(GBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) ZIP-FM(ZIP-FM) レディオキューブ FM三重(FMMIE) FM AICHI(FMAICHI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(名古屋)(JOCK) NHK-FM(東京)(JOAK-FM) 滋賀県(25) # ABCラジオ(ABC) MBSラジオ(MBS) OBCラジオ大阪(OBC) FM COCOLO(CCL) FM802(802) FM大阪(FMO) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) KBS京都ラジオ(KBS) Kiss FM KOBE(KISSFMKOBE) e-radio FM滋賀(E-RADIO) ラジオ関西(CRK) α-STATION FM KYOTO(ALPHA-STATION) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(大阪)(JOBK) NHK-FM(東京)(JOAK-FM) 京都府(26) # ABCラジオ(ABC) MBSラジオ(MBS) OBCラジオ大阪(OBC) FM COCOLO(CCL) FM802(802) FM大阪(FMO) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) KBS京都ラジオ(KBS) Kiss FM KOBE(KISSFMKOBE) α-STATION FM KYOTO(ALPHA-STATION) ラジオ関西(CRK) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(大阪)(JOBK) NHK-FM(東京)(JOAK-FM) 大阪府(27) # ABCラジオ(ABC) MBSラジオ(MBS) OBCラジオ大阪(OBC) FM COCOLO(CCL) FM802(802) FM大阪(FMO) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) Kiss FM KOBE(KISSFMKOBE) ラジオ関西(CRK) KBS京都ラジオ(KBS) α-STATION FM KYOTO(ALPHA-STATION) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(大阪)(JOBK) NHK-FM(東京)(JOAK-FM) 兵庫県(28) # ABCラジオ(ABC) MBSラジオ(MBS) OBCラジオ大阪(OBC) FM COCOLO(CCL) FM802(802) FM大阪(FMO) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) ラジオ関西(CRK) Kiss FM KOBE(KISSFMKOBE) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(大阪)(JOBK) NHK-FM(東京)(JOAK-FM) 奈良県(29) # ABCラジオ(ABC) MBSラジオ(MBS) OBCラジオ大阪(OBC) FM COCOLO(CCL) FM802(802) FM大阪(FMO) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) Kiss FM KOBE(KISSFMKOBE) ラジオ関西(CRK) α-STATION FM KYOTO(ALPHA-STATION) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(大阪)(JOBK) NHK-FM(東京)(JOAK-FM) 和歌山県(30) # ABCラジオ(ABC) MBSラジオ(MBS) OBCラジオ大阪(OBC) FM COCOLO(CCL) FM802(802) FM大阪(FMO) wbs和歌山放送(WBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) Kiss FM KOBE(KISSFMKOBE) ラジオ関西(CRK) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(大阪)(JOBK) NHK-FM(東京)(JOAK-FM) 鳥取県(31) # BSSラジオ(BSS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム山陰(FM-SANIN) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(広島)(JOFK) NHK-FM(東京)(JOAK-FM) 島根県(32) # BSSラジオ(BSS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム山陰(FM-SANIN) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(広島)(JOFK) NHK-FM(東京)(JOAK-FM) 岡山県(33) # RSKラジオ(RSK) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM岡山(FM-OKAYAMA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(広島)(JOFK) NHK-FM(東京)(JOAK-FM) 広島県(34) # RCCラジオ(RCC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) 広島FM(HFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(広島)(JOFK) NHK-FM(東京)(JOAK-FM) 山口県(35) # KRY山口放送(KRY) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム山口(FMY) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(広島)(JOFK) NHK-FM(東京)(JOAK-FM) 徳島県(36) # JRT四国放送(JRT) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM徳島(FM807) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(松山)(JOZK) NHK-FM(東京)(JOAK-FM) 香川県(37) # RNC西日本放送(RNC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム香川(FMKAGAWA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(松山)(JOZK) NHK-FM(東京)(JOAK-FM) 愛媛県(38) # RNB南海放送(RNB) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM愛媛(JOEU-FM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(松山)(JOZK) NHK-FM(東京)(JOAK-FM) 高知県(39) # RKC高知放送(RKC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム高知(HI-SIX) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(松山)(JOZK) NHK-FM(東京)(JOAK-FM) 福岡県(40) # RKBラジオ(RKB) KBCラジオ(KBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) LOVE FM(LOVEFM) CROSS FM(CROSSFM) FM FUKUOKA(FMFUKUOKA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 佐賀県(41) # ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム佐賀(FMS) NBCラジオ(NBC) RKBラジオ(RKB) KBCラジオ(KBC) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 長崎県(42) # NBCラジオ(NBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM長崎(FMNAGASAKI) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 熊本県(43) # RKKラジオ(RKK) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FMKエフエム熊本(FMK) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 大分県(44) # OBSラジオ(OBS) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム大分(FM_OITA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 宮崎県(45) # 宮崎放送(MRT) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) エフエム宮崎(JOYFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 鹿児島県(46) # MBCラジオ(MBC) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) μFM(MYUFM) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM) 沖縄県(47) # RBCiラジオ(RBC) ラジオ沖縄(ROK) ラジオNIKKEI第1(RN1) ラジオNIKKEI第2(RN2) FM沖縄(FM_OKINAWA) オーディオ高校野球(ABCR-KOSHIEN) NHKラジオ第1(福岡)(JOLK) NHK-FM(東京)(JOAK-FM)