monkeytypeについて



monkeytypeとは
システム(速度・正確性関連)
ランキング
多言語
筆者の記録
筆者のmonkeytype参戦史
その他攻略


●monkeytypeとは

monkeytypeとは、Miodec氏が開発されたオンラインタイピングサイトである。ソースコードは
GitHubで共同管理されている。英語をはじめとする83言語(code, otherを除く)につき、所定の制限時間で速度と正確性を測定できる。筆者はInterstenoの多言語への対策として、ノーミスを前提に、主に制限時間30秒で多言語100wpm以上を目指している。

公式サイトおよびネットランキングはこちら

【概要】

・ランダムに並んでいる単語を打鍵し、速度を競う。
・ミスした場合もそのまま先に進むことができる。
・制限時間は基本的に15秒・30秒・60秒・120秒の四種類。細かい設定も可能。


●システム(速度・正確性関連)

【速度の表示】

速度はwpm(words per minute / 1分間あたりのワード数)で表示される。1ワードは5文字固定で換算される。結果表示画面左側には1wpm単位で表示される。小数点以下は四捨五入される。マウスポインタを当てると0.01wpm単位でポップアップ表示される。ランキング画面(上部の右から四番目の王冠のアイコンから行ける)や練習履歴画面(上部の一番右のアイコンから行ける)には最初から0.01wpm単位で表示される。

なお、制限時間30秒であっても、実際の打鍵時間は30.01秒以上と計測されることがある。このため、単純に「正解打鍵数×60÷制限時間÷5」で速度を計算することはできない。また、30秒設定で250文字打ち、画面に100wpmと表示されても、小数点以下を見ると100wpmに届いていないことがある。

練習履歴→[filters]→[advanced]→[language]で言語の一覧が見える。ここで選択した言語は練習履歴に反映され、[Export CSV]からCSVファイルにも出力される。これで、全言語につき小数点以下第二位まで速度を把握できる。

【正確性の表示】

正確性は0%〜100%の範囲で、結果表示画面左側のaccには1%単位で表示される。小数点以下は切り捨てられる。マウスポインタを当てると0.01wpm単位でポップアップ表示される。ランキング画面と練習履歴画面では最初から0.01%単位で表示される。基本的に「正解打鍵数÷(正解打鍵数+失敗打鍵数)」で算出される。はず。

筆者はノーミスを前提とし、1回でもミスタッチしたら即Escする。このため、正確性が100%でない時の仕様は把握していない。

結果表示画面の中央やや左、charactersには、文字数/誤字数/余字数/脱字数が表示される。ミスタッチした場合でもBSして正確に打ち直せば、誤字・余字・脱字は0になる。しかしその場合でもaccの値は100%にはならないし、グラフ上にはミスした箇所が赤い×マークで表示される。即ち、ノーミスタッチに失敗した場合にはBSしても誤魔化せない。


●ランキング

ネットランキングは画面上部の王冠のアイコン(右から四番目)をクリックすれば閲覧できる。対象は英語(15秒・60秒)、スペイン語(以下60秒のみ)、ドイツ語、ポルトガル語、インドネシア語、イタリア語、ロシア語である。初期状態では上位50名が表示されている。一番下まで行けば50名単位で順次スクロールできる。1050位まで閲覧できることは確認済みだ。どこまで閲覧できるかは不明。

以下、ランキングに掲載されている項目の意味を説明する。

項目説明
#2786順位
namedqmaniac名前(HN)
wpm140.95速度(0.01wpm単位)
accuracy100.00%正確性(0.01%単位)
raw140.95ミスを含めた速度(0.01wpm単位)
consistency86.40%速度のばらつき(0.01%単位)
date26 Feb 2022 20:44達成日時

※rawは、正解打鍵数を「打鍵時間からミス文字を打鍵した時間を引いた時間」で割った値?


●多言語

画面上部の設定アイコン(右から二番目)をクリックすると、各種設定画面に遷移する。[behavior]グループの[language]から、言語を選択可能である。2023.6.7現在、83言語を選択できる(code, otherを除く)。このうち、ラテン文字(A, B, C, ...)を用いるのは49言語、キリル文字(А, Б, В, ...)を用いるのは10言語、その他の文字を用いるのは24言語である。

筆者はラテン文字とキリル文字を用いる計58言語にギリシャ語(ギリシャ文字を用いる)と日本語(ひらがなを用いる)を加えた計61言語で100wpmノーミスを達成済みである。

【表: 達成速度毎の言語の数】

達成速度(wpm)ラテン文字キリル文字その他合計備考
160.00〜1001英語
150.00〜159.990000 
140.00〜149.995005広東語、フランス語等
130.00〜139.99280028ドイツ語、ハウサ語等。ここまで34言語
120.00〜129.997108ロシア語、ウェールズ語、ハンガリー語等
110.00〜119.994318チェコ語、セルビア語、ポーランド語等
100.00〜109.9946111ギリシャ語等。ここまで61言語
〜99.99002222朝鮮語/韓国語等
49102483 

※アイルランド語、ヨルバ語、スワヒリ語、マオリ語、ベラルーシ語は、1kのみ存在する。これらを(語彙増加版でなく)通常版とみなす。
※ペルシャ語、ヒンディー語は対象外。語彙増加版(しかも文字が違う)のPersian romanized, Hinglishでのみ100wpmノーミスを達成し、通常版では未達成であるため。
※広東語(Jyutping)と中国語(Pinyin)は対象。だが、中国語(Chinese traditional)で未達成であるため、対象外とすべきか。
※lorem ipsum, wordleは対象外。個人的にはotherに入れるべきと考えているため。

【多言語の攻略法1: Interstenoと共通の16言語(日本語を除く)】

配列を検討した上で、各言語を対策する。ここまでで詰まるようなら、まずは特殊文字がほぼ無い英語のベース速度を最低120wpm、できれば140wpm以上まで上げることをお勧めする。また、以下の記述はInterstenoと共通の16言語(日本語を除く)で100wpmを達成する実力があることを前提とする。

【多言語の攻略法2: Interstenoで使用した配列の使用(ラテン文字使用言語)】

以下の16言語は、Interstenoで用いた配列を使用することで容易に100wpmを達成可能である。

なお、各言語に出現する単語は、GitHubにある各言語・各種目のjsonファイルから抽出できる。その結果を用いて、出現する特殊文字を特定し、その頻度を計算できる。このデータが、配列作成時の参考になる。

言語特殊文字難易度配列備考
ラテン語
インドネシア語
タガログ語
マレー語
広東語
スワヒリ語
ショナ語
ウズベク語
トキポナ
オロモ語
-C英語配列 
スロベニア語[č][š][ž]Cスロバキア語配列/クロアチア語配列qwxyは出現しない
アイルランド語[á][é][í][ó][ú]Cスペイン語配列jkqwxyzは出現しない
スウェーデン語[å][ä][ö]Cフィンランド語・ドイツ語配列 
マダガスカル語[à][ô]Cイタリア語・フランス語配列 
フリウリ語フランス語とほぼ同じ 
西フリジア語[â][ê][ô][û][ú]Cオランダ語配列 

※難易度の説明
 C: 既存の配列で対応可能
 B: 既存の配列を少し変更するだけで対応可能
 A: 大掛かりな配列作成が必要、もしくはBに加えて相当の練習が必要
 S: Aに加えて個別の攻略が必要

【多言語の攻略法3: 個別の配列作成(ラテン文字使用言語)】

以下の16言語は、Interstenoで用いた配列だけでは対応できない。このため、個別に配列を作成して練習する必要がある。とはいえ、Intersteno対策に準じた方法で対応できるため、まだ楽な方だ。

言語特殊文字特殊文字(稀)難易度配列
アルバニア語[ç][ë]Bオランダ語配列にçêôûを追加
アフリカーンス語[ê][é][ë][ö][ô][û][è]B
ハウサ語[ã][ẽ][ƙ][ɗ][ú][ž][ĩ]B新規作成
ウェールズ語[ô][â][ê][î][û][ŵ][ŷ]B新規作成※
デンマーク語
ノルウェー語
[å][ø][æ]B新規作成
エスペラント語[ĉ][ĝ][ŝ][ŭ][ĥ][ĵ][ø][æ][á][é][ó][ý]
[ä][ö][ü][ű][þ]
B
マルタ語[ċ][ġ][ż][ħ][à]B+新規作成
エストニア語[ä][ö][ü][õ][š][ž]B+芬独配列にšžõを追加
ラトビア語[š][ž][ā][ē][ī][ū][ģ][ķ][ļ][ņ][č][ŗ]A新規作成
マオリ語[ā][ē][ī][ō][ū]A
リトアニア語[ą][ę][į][č][š][ž][ė][ū][ų]A新規作成
カタルーニャ語[é][í][ó][ú][à][è][ò][ï][ü][ç][ŀ]A新規作成
アイスランド語[á][é][í][ó][ú][ý][ð][þ][æ][ö]A新規作成
ヨルバ語[ẹ][ọ][ṣ][á][é][í][ó][ú][à][ì][ò][ù][õ][š][ė]A新規作成
アゼルバイジャン語[ö][ü][ç][ş][ğ][ı][ə]A+新規作成※

※ウェールズ語配列は、もともと伊仏配列に[ŵ][ŷ]を追加して作成した。しかし、頻出する[w](伊仏配列ではデッドキー[:]を使用)への対応が困難であるため、新規作成した。
※アゼルバイジャン語配列は、もともとトルコ語配列に[ə]を追加して作成した。しかし、頻出する[q][x](トルコ語配列ではデッドキー[:]を使用)への対応が困難であるため、新規作成した。

【多言語の攻略法4: キリル文字使用言語】

ブルガリア語は、ロシア語配列で対応可能である(しかしロシア語とは別の難しさがある)。また、他の8言語に関しては、ロシア語配列に特殊文字を加えた配列を別途作成し、練習する必要がある。

なお、キリル文字のラスボスはモンゴル語である。理由は、頻出する[э]と[з]、[ө]と[е]、[ү]と[у]と[ч]の区別が非常に難しいためだ。

言語特殊文字特殊文字(稀)難易度配列備考
ブルガリア語[ъ][ь]C+ロシア語配列[э][ы]は出現しない
セルビア語[ј][њ][љ][џ][ћ][ђ]A新規作成[ы]は稀
マケドニア語[џ][ћ][ђ][ѓ][ќ][ѕ][è]A
ウクライナ語[є][і][ї][Ї][ґ][s][A]A+新規作成[ё][ы][э]は出現しない
ベラルーシ語[э][s][ё][і][ў][A][U]A++新規作成[ы]が頻出。[и]は稀。[щ][ъ]は出現しない
カザフ語[ә][ғ][і][ң]
[қ][ө][ү][ұ]
[һ]A+新規作成[ф][х]は稀。[ё][ъ]は出現しない
キルギス語[э][ң][ө][ү]A[ф][х][ё][ъ]は稀。[і]は出現しない
モンゴル語[э][ө][ү][ё]S新規作成[е][к][щ]は稀。[ъ]は1k,10kにのみ稀に出現
ウドムルト語[э][ё][ӧ][ӟ][ӥ][ӵ][ӝ]A新規作成[ф][х]は稀

※セルビア語、マケドニア語の[ј]は、ラテン文字の[j]と別
※ウクライナ語、ベラルーシ語、カザフ語の[і]は、ラテン文字の[i]と別
※ウクライナ語の[ї][Ї]は、ラテン文字の[ï][Ï]と別
※ウドムルト語の[ӧ]は、ラテン文字の[ö]と別
※マケドニア語の[ѕ]は、ラテン文字の[s]と別。ウクライナ語とベラルーシ語の[s]は、ラテン文字の[s]。
※ウクライナ語とベラルーシ語の[A]は、ラテン文字の[A]。
※ベラルーシ語の[U]は、ラテン文字の[U]。

【多言語の攻略法5: ベトナム語、中国語(ピンイン)】

ベトナム語は、ラテン文字のラスボスである。難易度はS+と言って良いだろう。ラテン文字をベースとしつつも、特殊文字の種類が非常に多いため、配列の考え方に工夫が必要である。また、質・量ともに充実した練習が不可欠である。以下の例ではデッドキーを多用するため、英語等と比較して打鍵数が約4割増える。従って、ベトナム語で100wpmを達成するには、英語で140wpm相当の打鍵速度が必要となる。さらに、デッドキーがキーボードの右端や最上段など打ち辛い場所にあるため、チェコ語やスロバキア語のような運指範囲の広い言語を並行して鍛錬する必要がある。

以下にベトナム語の特殊文字と配列の考え方の一例を示す。ベトナム語の一般的な入力方法(VNI方式)を参考としつつも、筆者にとって打ちやすいようにアレンジしている。

まず、[ă][â][ê][ô][ơ][ư][đ][à][ạ][ộ][ữ][ợ]はそこそこ出現するため、それぞれ1キーに割り当てる。筆者は日本語配列でいう[1][2][3][4][[][]][j][w][z][7][8][9]に割り当てている。

次に、[5][6][^][:][@]をデッドキーとして、順に「グレイヴ」「フック」「チルダ」「アキュートアクセント」「アンダードット」を割り振る。具体的には以下の通り。[縦のキー→横のキー]の順に打鍵することで、各文字を入力できる。例えば[ẳ]は[6→1]で入力できる。

aeiouy1234[]
5àèìòù
6
^ãĩõũ
:áéíóúýế
@

数字および[j][w][z]は出現頻度が低いため、[半角/全角→数字][:→j]等に割り当てれば対応できる。例えば[61]は[半角/全角→6→半角/全角→1]で入力できる。

……

中国語(ピンイン)も、似た考え方で配列を作成する。難易度はS。

まず、[à][è][ì][ü]はそこそこ出現するため、それぞれ1キーに割り当てる。筆者は日本語配列でいう[v][3][]][7]に割り当てている。

次に、[5][:][@][[]をデッドキーとして、順に「グレイヴ」「アキュートアクセント」「カロン」「マクロン」を割り振る。具体的には以下の通り。[縦のキー→横のキー]の順に打鍵することで、各文字を入力できる。例えば[ǜ]は[5→7]で入力できる。

aeiouü
5àèìòùǜ
:áéíóúǘ
@ǎěǐǒǔǚ
[āēīōūǖ

[3][5][7][v]は出現頻度が低いため、[半角/全角→数字][:→v]に割り当てれば対応できる。例えば[35]は[半角/全角→3→半角/全角→5]で入力できる。

【多言語の攻略法6: ギリシャ語】

ギリシャ文字(ラテン文字ともキリル文字とも違う)を用いるため、個別に対策が必要である。難易度はS+と言って良いだろう。

過去の発表資料

多言語タイピングにおけるギリシャ語の強化

【多言語の攻略法7: 日本語】

hiragana, katakanaを選択できる。漢字は出現しない。筆者にとって母国語であるため、認識に問題は無い。しかし100wpmを出すのは相当難しい。目的とするかなを表示させた後にいちいち確定させる(Enterキーを叩く)手間が追加され、速度が低下するためだ。さらに、仕様上ノーミスが不可能だ。ローマ字入力ではあ行を除き、入力中の文字列がすべてミス判定になる。かな入力で打った場合でも、濁音と半濁音が確実にミス判定になる。例えばローマ字入力で[ka]と打つと、[k]がミス判定。かな入力で[が]を打つと、[か]がミス判定だ。

⇒Firefoxでは、IMEのSPACEキーの設定を空白に変更することにより、上記の問題は発生しない。(TEA_Rさんに教えて頂きました。ありがとうございます!)

※Windows10の場合、右下の[あ]を右クリック→[プロパティ]で[Microsoft IME の設定]を起動する。次に[詳細設定]→[編集操作]→[変更]として、[SPACE]-[入力文字のみ]の設定を[全変換]から[空白]に変更する。かな入力の場合、同様にして[Shift+SPACE]-[入力文字のみ]の設定を[全変換]から[空白]に変更する。普段の文章執筆時に支障が出るので、monkeytypeが終了したら元に戻す。

⇒Chromeでは、上記の方法ではうまく入力できない。しかし、専用の配列を準備することで、上記の問題を回避できる。

【JISかなベースの配列】

MSKLCで、JISかなに似せた位置に文字を割り振る。筆者はこの配列でも100wpmノーミスを達成済みである。

但し難点が三つある。

(1) 濁音・半濁音の打鍵が通常のJISかなと逆になる。
(2) [ろ][ー]を配置するキーが無い。左Shiftの隣に仕込んでも打てない。
(3) hiraganaしか入力できない。

(1)は濁点・半濁点をデッドキーに仕込むためだ。例えば[が]は[@→t]と打つ。[t]をデッドキーとして[t→@]とすれば通常のJISかなと同じ順番になる。しかし、今度は[か]を打つ時に[t→Space]がいちいち必要となり、かえって速度が低下する。

(2)の暫定措置として、[ろ][ー]を[@→n][@→m]に仕込んだ。必然的に、濁音・半濁音・[ろ][ー]を含む単語では遅くなる。これにShift文字が重なると難易度は想像を絶する。

(3)に関して、katakanaの攻略には別の配列が必要だ。カタカナ語では[ー]の出現率が高いため、他の出現頻度の低いキーを潰して1打鍵化すべきかもしれない。もちろん変換もできない。あくまでもmonkeytype攻略用の配列だ。

【QWERTYローマ字入力ベースの配列】

試作品は以下の通り。筆者はこの配列で78.37wpmノーミスが最高だった。配列に工夫の余地はまだあるものの、100wpmノーミスは遠い。

あ行は[a][i][u][e][o]にそのまま仕込む。他の五十音および濁音・半濁音は、例えば[k]をデッドキーとして、[k→a]で[か]を打つ。[c][f][j][x]もデッドキーにすれば、[ca][cu][co][fu][ji][xn]にも対応可能だ。但しこの配列にも難点がある。

(1) [ん]はn1回では入力できず、[nn],[xn]のどちらかが必要。
(2) 拗音・促音で死ぬ。
(3) hiraganaしか入力できない。

(2)に関して、[ゃ][ゅ][ょ][っ]を[la][lu][lo][lt]に仕込んでみた。背景として、hiraganaには[ぁ][ぅ][ぉ]が出現しない。しかし、この方法は明らかに失敗だった。せめて[7][8][9][v]等に仕込んで1打鍵化すべきだ。

(3)はJISかな入力ベースの配列と同様。

【日本語で100wpm達成に必要な速度】

種目入力方法速度タイプウェル換算(参考)筆者のノーミス記録
hiraganaかな入力542.054kpm30.993秒(XX後半)663.455kpm / 25.322秒(ZH前半)
ローマ字入力782.760kpm30.661秒(XX後半)773.520kpm / 31.027秒(XX前半)
katakanaかな入力563.665kpm29.805秒(ZJ前半)557.991kpm / 30.108秒(XX後半)
ローマ字入力767.081kpm31.287秒(XX前半)740.078kpm / 32.429秒(XS後半)

※hiraganaはタイプウェル国語K/Rの基本常用語、katakanaはカタカナ語と比較した。
※Excelの試算結果は[hiragana][katakana]の通り。

筆者の場合、hiraganaではかな入力で余裕を持って100wpmに届く。120wpmにも届く可能性がある。katakanaでもかな入力で頑張れば100wpmに届く。但し難易度は高い。頻出する[ー]が打ち辛い上、濁音・半濁音の増加に伴い打鍵数も増えるためだ。そしてローマ字入力ではやや厳しい。katakanaでは[ー]が多いため、ローマ字入力の打鍵数はやや減る。しかし[ー]は打ち辛いため、実質的な難易度は大して変わらない。

【解析方法】

GitHubの単語リストによれば、hiraganaには554語の単語が含まれる。すべての単語が1回ずつ出現し、単語の後には必ずSpaceがあると仮定してモデルを作成する。すると総文字数は2152となる。次にこの2152文字を出現文字別に分類し、かな入力・ローマ字入力に分けて打鍵数を集計する。かな入力では濁音と半濁音が2打鍵、他が1打鍵だ。Shiftを使う文字も1打鍵と数えることに注意する。ローマ字入力ではあ行と[っ]が1打鍵。[ゃ][ゅ][ょ]はじゃ行の時のみ0打鍵で他は1打鍵。[ん]は末尾の時のみ2打鍵で他は1打鍵となる。

katakanaは全343語、総文字数1610となる。hiraganaとの主な違いは、ファ行、[ティ][ディ][ー]が追加され、しかも[ー]の出現率が高いことだ。

なお、出現文字別の分類と集計には、以前から大変お世話になっている出現文字頻度分析ツールを使用しました。ありがとうございます。日本語のみならず多言語の解析で、大変役立っています。

【多言語の攻略法8: その他】

ヘブライ語、アラビア語、ペルシャ語、ヒンディー語、タイ語等では、100wpmを未達成である。いずれも独自の文字を用いるため、個別の配列作成および攻略が必須である。加えて、ヘブライ語、アラビア語、ペルシャ語等は「右から左に読む」ことが難関となり得る。難易度はS+以上と言って良いだろう。

朝鮮語/韓国語や中国語(繁体字/簡体字)での100wpm達成は、ローマ字入力かそれに類する方法では厳しい。日本語と同様、1文字入力するのに2打鍵以上必要になる文字が大半であるためだ。敢えてローマ字入力で挑戦するなら、その速度を少なくとも日本語並みにまで上げる必要がある。果たして何年かかることか。日本語のかな入力に相当する方法を模索する方が早いかもしれない。

→朝鮮語/韓国語では、日本語や英語と違って、文字数でなく打鍵数を測定している。即ち、画面上で30秒間に約125文字しか打っていないように見えても、実際に250打鍵していれば100wpmと算出される。

【多言語の攻略法9: code】

ほぼすべてのcodeは、日本語配列または英語配列で対応可能である。大文字が頻出するcodeに関しては、大文字をデッドキー[;]を使って打てる英語配列で打ち、左の負荷を減らすことが多い。全部大文字となるcode sqlや、ほぼすべて大文字となるcode assemblyは、Caps Lock状態で打つ。

brainfckのみ毛色が違う(出現する文字が8種類のみ)ため、専用の配列を作成した。

この専用配列の意図は、以下三点である。

(1) Shiftの排除。対象は+<>のみ
(2) 頻出単語対策。具体的には[-], <+>をそれぞれ234, xcvに仕込む
(3) 連打対策。---, +++, <<<, >>>をそれぞれwer, sdf, uio, jklに仕込む

(1)に関して、出現する文字は-[].,+<>の8種類のみだ。日本語配列や英語配列では、うち3種類にShiftが必要となる。これでは明らかに非効率なので、Shiftを使わなくても済むように配列を変更する。

(2)に関して、>+<をvcxで打てるようになるという副次効果もある。また、<, >を8, 9に配置したのは、[-]<[-]<[-]<[-]や[-]>[-]>[-]>[-]で右手に負荷分散して加速するためである。

(3)に関して、複数のキーに同じ文字を配置できることを最大限に利用する。-+<>の最大連打数はそれぞれ17, 15, 9, 6なので、-, +の連打対策を優先する(当初はuio, jklにも---, +++を配置していた)。キーに余裕があれば<, >の連打対策も考慮する。

※半角/全角,1に[、5に]、q,tに-、a,gに+等を配置した意図は、カスリ対策である。当初はカスリ(あるいは、さらに進んで複数キー同時押し)も利用して高速化できないかと考えていた。しかし実際には、カスリや複数キー同時押しを検知した時点で脳がミスと判定して打鍵を停止するため、この対策は無意味だった。配列を元の文字に戻すのも面倒(というよりも高速化に寄与しない)なのと、将来さらなる高速化が必要になった時に何か役立つことがあるかもしれないのとで、そのままにしている。

※yに-、hに+を配置した意図は、-,+の連打対策として右手に負荷分散することだ。しかし実際には、上記の通り右手は<,>の連打対策に充てた。また、例えばwerywery...と連打するとuにカスる事故が頻発した。それならばwerwer...の方が速度も正確性もまだマシだ。

※6,7に何も配置していないのは、打ち辛い位置にあり、良い使い道を見出せなかったため。ここに何らかのキーを配置するくらいなら、y,hあたりの有効活用を検討した方がまだマシだ。


●筆者の記録

ラテン文字・キリル文字・ギリシャ文字・ひらがな・カタカナ・ハングルを用いる61言語の30秒・ノーミスの記録を主に記載する。Interstenoの日本語を除く16言語のみ、60秒・ノーミスの記録を記載する。他のタイム設定で打った記録や、ミスを許容した記録は、ほとんど存在しないため省略する。

【通常版】

朝鮮語/韓国語を除き、すべて100wpm以上。最も速いのは英語だ。以下、広東語、フランス語、スペイン語、トキポナ、イタリア語と続き、ここまでが140wpm以上。

※語彙増加版、code, other, wordle, lorem ipsumは別表の通り。

言語速度(wpm)文字
30秒60秒
English英語162.00143.58l
Spanishスペイン語145.55125.38l
Frenchフランス語146.00131.00l
Germanドイツ語138.22126.96l
Portugueseポルトガル語131.91123.60l
Italianイタリア語141.15131.58l
Friulianフリウリ語130.76l
Latinラテン語135.20l
Afrikaansアフリカーンス語133.11l
Mongolianモンゴル語102.77c
Korean朝鮮語/韓国語52.38h
Russianロシア語123.60115.60c
Polishポーランド語116.72107.38l
Czechチェコ語118.32109.18l
Slovakスロバキア語110.76112.16l
Ukrainianウクライナ語104.37c
Lithuanianリトアニア語132.76l
Indonesianインドネシア語132.40l
Greekギリシャ語101.17g
Turkishトルコ語131.07126.56l
Irishアイルランド語121.16l
Slovenianスロベニア語130.76l
Croatianクロアチア語130.27125.98l
Dutchオランダ語135.46127.18l
Filipinoタガログ語133.11l
Danishデンマーク語133.51l
Hungarianハンガリー語121.96110.58l
Norwegian bokmalノルウェー語131.11l
Icelandic 1kアイスランド語115.16l
Malagasyマダガスカル語132.36l
Malayマレー語132.80l
Romanianルーマニア語135.15124.18l
Finnishフィンランド語136.26123.58l
Estonianエストニア語137.15l
Udmurtウドムルト語101.57c
Welshウェールズ語122.76l
Kazakhカザフ語102.73c
Vietnameseベトナム語103.97l
Jyutping広東語146.40l
Pinyin中国語107.20l
Hausaハウサ語137.20l
Swedishスウェーデン語135.15l
Serbianセルビア語117.60111.27c
Yoruba 1kヨルバ語121.56l
Swahili 1kスワヒリ語132.71l
Maori 1kマオリ語130.31l
Catalanカタルーニャ語135.11l
Bulgarianブルガリア語113.01c
Esperantoエスペラント語133.16l
Albanianアルバニア語135.51l
Shonaショナ語131.56l
Japanese日本語114.36j
Macedonianマケドニア語113.96c
Uzbekウズベク語132.76l
Belarusian 1kベラルーシ語100.77c
Azerbaijaniアゼルバイジャン語102.77l
Latvianラトビア語120.76l
Malteseマルタ語120.72l
Toki Ponaトキポナ143.15l
Oromoオロモ語121.56l
Kyrgyzキルギス語103.20c
Frysk西フリジア語109.96l

※文字欄の[l]はラテン文字、[c]はキリル文字、[g]はギリシャ文字、[j]はひらがな、[h]はハングル。

【語彙増加版】

すべて100wpm以上。最も速いのは英語1kだ。以下英語5k、英語contractions、トキポナku suli、フランス語1k、トキポナku lili、英語commonly misspelled、英語10kと続き、ここまでが140wpm以上。通常版と比較して難易度が高い。理由は以下二点。

(1) 長く複雑な単語が増える。即ち、読み辛いand/or打ち辛い単語の割合が増える。
(2) 特定の加速単語や苦手単語に絞った対策(いわゆるワード慣れ)が困難になる。

目安として10kくらいまでは、頻出する語頭や語尾に慣れるという攻略法がある程度通用する。しかし10kを超えるとそれさえも通用せず、ランダム練習とほとんど変わらなくなる。100kを超えると各単語が相当長くなるため、難易度がより高くなる。

言語速度(wpm)文字
30秒60秒
English 1k英語154.00134.47l
English 5k142.75131.38l
English 10k140.00128.78l
English 25k128.36121.18l
English 450k108.73102.57l
English commonly misspelled140.35120.42l
English contractions142.75l
English doubleletter130.31l
Spanish 1kスペイン語134.36120.78l
Spanish 10k129.07117.78l
French 1kフランス語140.97128.20l
French 2k132.31119.98l
French 10k130.31118.16l
French 600k112.33l
German 1kドイツ語119.92109.38l
German 10k110.73102.80l
German 250k104.7392.18l
Swiss German130.76114.80l
Swiss German 1k115.20100.77l
Swiss German 2k104.80103.15l
Portuguese 3kポルトガル語120.36115.18l
Portuguese acentos e cedilha110.33l
Italian 1kイタリア語134.62123.18l
Italian 7k130.76120.78l
Italian 60k121.56106.35l
Italian 280k120.72l
Afrikaans 1kアフリカーンス語123.96l
Afrikaans 10k121.60l
Mongolian 10kモンゴル語100.73c
Russian 1kロシア語120.76104.20c
Russian 10k113.16100.38c
Russian 25k110.76101.77c
Russian 50k108.33c
Russian 375k100.37c
Polish 2kポーランド語112.76102.97l
Polish 5k105.60102.58l
Polish 10k108.00101.17l
Polish 20k105.89100.57l
Polish 40k105.96l
Polish 200k103.57l
Czech 1kチェコ語114.76107.96l
Czech 10k107.93103.58l
Slovak 1kスロバキア語110.36110.58l
Slovak 10k105.20103.58l
Ukrainian 1kウクライナ語101.93c
Ukrainian 10k100.33c
Ukrainian 50k101.97c
Ukrainian endings111.53c
Ukrainian Latynka104.70l
Ukrainian Latynka 1k106.76l
Ukrainian Latynka 10k101.90l
Ukrainian Latynka 50k100.73l
Ukrainian Latynka endings113.89l
Lithuanian 1kリトアニア語124.28l
Lithuanian 3k120.00l
Indonesian 1kインドネシア語125.96l
Indonesian 10k122.00l
Greek 1kギリシャ語102.33g
Greek 5k101.13g
Greek 10k101.13g
Greek 25k101.90g
Greeklish107.53l
Greeklish 1k102.40l
Greeklish 5k106.36l
Greeklish 10k104.73l
Greeklish 25k104.80l
Turkish 1kトルコ語122.72116.74l
Turkish 5k110.73 l
Dutch 1kオランダ語133.16120.38l
Dutch 10k113.56106.98l
Filipino 1kタガログ語131.20l
Danish 1kデンマーク語121.08l
Danish 10k119.96l
Hungarian 2kハンガリー語113.56109.38l
Norwegian bokmal 1kノルウェー語124.19l
Norwegian bokmal 5k121.56l
Norwegian bokmal 10k123.16l
Norwegian bokmal 150k106.73l
Norwegian bokmal 600k106.76l
Norwegian nynorsk131.60l
Norwegian nynorsk 1k128.54l
Norwegian nynorsk 5k118.80l
Norwegian nynorsk 10k115.41l
Norwegian nynorsk 100k104.80l
Norwegian nynorsk 400k106.76l
Malagasy 1kマダガスカル語121.56l
Finnish 1kフィンランド語122.72117.58l
Finnish 10k112.36105.16l
Estonian 1kエストニア語123.04l
Estonian 10k115.92l
Welsh 1kウェールズ語113.92l
Persian romanizedペルシャ語114.36l
Kazakh 1kカザフ語100.73l
Vietnamese 1kベトナム語103.17l
Vietnamese 5k100.00l
Pinyin 1k中国語104.37l
Pinyin 10k103.53l
Hausa 1kハウサ語133.20l
Swedish 1kスウェーデン語114.76l
Swedish diacritics101.13l
Catalan 1kカタルーニャ語124.32l
Esperanto 1kエスペラント語132.76l
Esperanto 10k121.60l
Esperanto 25k121.20l
Esperanto 36k123.56l
Esperanto x sistemo130.76l
Esperanto x sistemo 1k124.76l
Esperanto x sistemo 10k121.16l
Esperanto x sistemo 25k122.40l
Esperanto x sistemo 36k121.12l
Esperanto h sistemo139.60l
Esperanto h sistemo 1k134.36l
Esperanto h sistemo 10k123.56l
Esperanto h sistemo 25k122.36l
Esperanto h sistemo 36k123.16l
Albanian 1kアルバニア語120.36l
Shona 1kショナ語123.16l
Japanese katakana日本語100.37l
Hinglishヒンディー語136.80 l
Macedonian 1kマケドニア語111.09c
Macedonian 10k103.17c
Macedonian 75k100.77c
Uzbek 1kウズベク語123.96l
Azerbaijani 1kアゼルバイジャン語100.37l
Latvian 1kラトビア語114.36l
Maltese 1kマルタ語113.52l
Toki Pona ku suliトキポナ142.40l
Toki Pona ku lili140.75l
Oromo 1kオロモ語106.80l
Oromo 5k104.37l
Frysk 1k西フリジア語l

【code, other】

すべて100wpm以上。最も速いのはcode pascalだ。以下code go, arduino, csharp, vimscript, luau, powershell, systemberilog, fsharpと続き、ここまでが130wpm以上。英語ベースの言語が多いため、英語に慣れていれば概して打ちやすい。しかし大文字や記号が入ってくると打ち辛くなる。

言語速度(wpm)
codepython116.25
python 1k112.76
python 2k107.53
python 5k105.96
c122.72
csharp131.42
c++115.16
dart124.36
brainfck101.60
fsharp130.71
javascript103.97
javascript 1k116.28
julia125.56
haskell117.92
html130.31
nim118.76
pascal141.55
java124.36

言語速度(wpm)
codekotlin122.36
go135.15
swift119.48
rust102.70
ruby100.70
r100.37
r 2k109.56
scala126.36
bash107.13
powershell131.11
lua111.13
luau131.11
latex108.69
matlab110.36
sql109.13
perl121.16
php126.36
vim101.17

言語速度(wpm)
codevimscript131.20
opencl117.56
visual basic121.96
arduino131.96
systemverilog130.80
elixir109.56
zig103.39
gdscript122.68
gdscript 2107.96
assembly113.12
otherlojban gismu109.13
lojban cmavo111.13
pig latin101.53
twitch emotes101.53
git123.12
wordle122.36
wordle 1k123.56
lorem ipsum125.56

※すべて30秒・ノーミスの記録。
※文字はすべてラテン文字。

【難関言語の100wpm到達までの日数】

ギリシャ語が別格の最難関だ。それに続くのがラテン文字のラスボスのベトナム語、キリル文字のラスボスのモンゴル語だ。中国語(ピンイン)も難関だが、ベトナム語ほどではない。特殊な配列を使用したcode brainfckにも大苦戦した。なおアラビア語等、他の文字を使う言語ではさらなる苦闘が予想される。

言語語彙開始終了日数ノーミス達成数
中国語(ピンイン) -2022.5.162022.5.23※8(8)45
1k2022.5.242022.5.296(5)17
10k2022.5.282022.5.292(2)2
ベトナム語 -2022.5.302022.6.1820(18)81
1k2022.6.182022.7.316(13)51
5k2022.7.32022.7.3129(23)60
モンゴル語 -2022.4.212022.5.1424(17)121
10k2022.6.232022.7.2331(24)79
code brainfck -2022.6.132022.8.2170(19)77
ギリシャ語 -2022.8.232022.9.2837(31)153
1k2022.9.292022.11.2760(41)216
5k2022.11.272023.1.742(28)166
10k2023.1.82023.1.147(5)22
25k2023.1.152023.2.118(10)50

※()内の日数は、休養日、夏休み、休止期間を除いた実質日数。
※ノーミス達成数は、途中で棄権したトライアルを除く。
※中国語(ピンイン)の通常版は、5/23時点では小数点以下まで見ると99.97wpmで、100wpmに到達していなかった。8/1〜5に改めて練習し、小数点以下を含め100wpmを突破した。追加の練習は5日、ノーミス達成数は11回だった。


●筆者のmonkeytype参戦史

時期100wpm
到達言語数
内容
2022.2.12初プレイ。英語で146wpm、ロシア語で102wpm
2022.2.34トルコ語、フランス語で120wpm突破。dqmaniacでユーザー登録
2022.2.4〜2.2236Interstenoの16言語(日本語除く)および、比較的簡単な言語に絞って
100wpmを順次達成。英語で151wpmを記録。
2022.2.23〜4.736Intersteno2022対策として、16言語に絞って60秒や語彙増加版を試す
2022.4.1839残しておいた難関言語の打鍵を再開。新規追加された言語もついでに打つ。
ラテン語、アフリカーンス語で100wpm突破。
トキポナがotherから主要言語に昇格したため、100wpm到達言語数に追加。
2022.4.1940マケドニア語で100wpm突破
2022.4.2042セルビア語、ウクライナ語で100wpm突破
2022.4.2443ベラルーシ語で100wpm突破
2022.5.444アゼルバイジャン語で100wpmに到達
2022.5.1445モンゴル語で100wpm突破
2022.5.1546カザフ語で100wpm突破
2022.5.2347中国語(ピンイン)で100wpmに到達
2022.6.1048オロモ語で100wpmに到達
2022.6.1448→45ベトナム語で99.97wpmに到達。
しかし小数点以下まで見ると100wpmに到達していないことが判明。
中国語(ピンイン)、ブルガリア語も同様。アゼルバイジャン語も怪しい。
2022.6.1646ブルガリア語で小数点以下含め100wpm突破
2022.6.1848ベトナム語、アゼルバイジャン語で小数点以下含め100wpm突破
2022.7.2852ショナ語、ハウサ語、ラトビア語、マルタ語で100wpm突破
2022.8.553中国語(ピンイン)で小数点以下含め100wpm突破
2022.8.753英語で162.00wpmを記録。全言語通して初の160wpm突破
2022.8.1654広東語(ユッピン)で100wpm突破
2022.8.2154code brainfckで100wpm突破
2022.8.2254code htmlで100wpm突破
2022.9.2655フリウリ語で100wpm突破
2022.9.2856ギリシャ語で100wpm突破
2022.9.3057ウドムルト語で100wpm突破
2022.10.1758キルギス語で100wpm突破
2023.1.1859ウズベク語で100wpm突破
2023.4.3060日本語で100wpm突破
2023.6.761西フリジア語で100wpm突破

※語彙増加版、code, otherも並行して攻略。

【今後の野望】

・残った難関22言語で順次100wpm達成
・言語数を増やすよう働きかけて、100言語100wpmを目指す。当面の候補は、TypeRacerや10 fast fingersに含まれてmonkeytypeに含まれないXX言語。ガリシア語等
・100wpmの次は110wpm、120wpm
・30秒の次は60秒、120秒


●その他攻略

【頻出記号の1打鍵化】

英語、フランス語、イタリア語等では[']の頻度が比較的高いため、1打鍵化した方が良い。例えばUSインターナショナル配列では日本語配列の[:]を打鍵することで[']を入力できる。日本語配列の[Shift+7]よりも遥かに速く打つことができ、無駄な疲労も軽減できる。代わりに、[I'll]のようなShift押しっ放しで突破できた一部の単語が打ち辛くなる(しかしそのような単語は限定的である)。また、[:]が[Shift+;]になって2打鍵必要となる。[:]の頻度が高い言語では、1打鍵化を検討した方が良い(しかしそのような言語に出会ったことがない)。

【大文字のデッドキー化】

大文字をデッドキー化する。例えば[A]を[Shift+a]でなく[;→a]で入力できるようにする。左Shiftを主に使っている場合、左手の負荷が軽減される。特に、文頭のみならず文中にも左手範囲の大文字が頻出するドイツ語に効果がある。


トップページに戻る
タイピングページに戻る
タイピング日記最新版へ