プログラム一覧

公開しているプログラムの一覧です。分類ボタンで絞り込んだり、キーワードで探したりできます。新しいプログラムを公開すると、ここに自動で追加されます。

読み込み中です

このサイトについて

続きを読む →

2026年10月31日土曜日

ワールドラジオ

[説明]世界中のインターネットラジオを、地球儀や地図から国を選んで聴けるプレーヤーです。字幕機能を使うと、初回だけ150MBほどの通信があります。[/説明]

WORLD RADIO とは

世界中のインターネットラジオを、地図や地球儀から国を選んで聴けるプレーヤーです。昔のラジオのような見た目にして、ダイヤルを回して放送局を探すような気分で使えるようにしました。

使い方

  1. 左上の POWER を押して、電源を入れます。
  2. 地図の国をクリックするか、上の検索欄に国名を入れます(例:ブラジル、ケニア、フィンランド)。
  3. 右側に、その国のラジオ局が出ます。聴きたい局を選ぶと、再生が始まります。
  4. 下の ▶ と ■ で再生と停止、右のつまみで音量を変えられます。

できること

  • MAP と GLOBE:平らな世界地図と、回せる地球儀を切り替えられます。マウスのホイールで拡大・縮小もできます。
  • 現地の時刻:選んだ国の、今の日付と時刻が出ます。
  • 字幕(CC):一部の局で、放送の言葉を字幕にして表示します(試しの機能です)。
  • いろいろな言葉:右上の言語メニューで、表示の言葉を変えられます。
  • 読み上げ:スピーカーのボタンを押すと、マウスを乗せたところの名前を声で読み上げます。

お読みください

  • ラジオ局の情報は、Radio Browser の公開データを使っています。局によっては、つながらなかったり、再生できなかったりします。そのときは、別の局を選んでください。
  • 字幕を使うと、はじめの1回だけ、150MBほどの通信が必要になります。携帯電話の通信量が気になる方は、Wi-Fi につないでから使うことをおすすめします。
  • 放送の内容は、各局のものです。内容について、このサイトは責任を持てません。
  • 地図のデータは Natural Earth(パブリックドメイン)です。

このプログラムの特長

  • 昔のラジオのような見た目:ダイヤルやつまみ、VUメーターなど、昔のラジオを思い出せるように作りました。見てすぐ使い方が分かることを大切にしています。
  • 地図でも地球儀でも:世界地図のほかに、地球儀でも表示できます。
  • 日本が中心:日本人が作ったプログラムなので、「中心に戻す」を押すと、日本が真ん中に戻ります(平らな地図では、南アメリカが切れないように、少しだけ左に寄せています)。
  • 小さな島も選べる:受信できる局があれば、とても小さな島の国にも対応しています。地図で見えないほど小さい国は、検索欄に国名を入れると選べます(「MAP外」と表示されます)。
  • 現地の日付・曜日・時刻:選んだ国の、今の日付と曜日と時刻が出ます。国の中で時差がある国は、代表の都市の時刻です。
  • 地図にカーソルを合わせると:その場所の位置と、日付・曜日・時刻の目安が出ます。
  • 16の言語で表示:表示の言葉を、上のメニューで切り替えられます。
  • 音声の読み上げ:読み上げに対応しています。

知っておいてほしいこと

  • すべての放送局が聞こえるわけではありません。
  • VUメーターは、音の大きさに合わせて動くものではありません。局を受信しているときに、動くようにしてあります。
  • 画面に出ている周波数は、飾りです。実際の周波数ではありません。
  • 電源を入れる前のチューニングも飾りです。ただ、つまみを回せば、くるくると回ります。昔のラジオの雰囲気を出すための工夫です。

画面が小さくて使いにくいときは、プレーヤーの下の「大きい画面で開く」から開いてください。

2026年10月28日水曜日

安全なパスワードの作り方と管理のコツ(長さ・使い回し・2段階認証)

[説明]長さ・使い回し・2段階認証など、安全なパスワードの作り方と、覚えきれないときの管理のしかたを、公的な資料をもとに説明します。[/説明]

パスワードは、いろいろなサービスの入口の鍵です。でも、サービスが増えるほど、覚えきれなくなります。そこで、同じパスワードを使い回したり、短くて覚えやすいものにしたりしがちです。この記事では、総務省の資料や、米国の標準化機関 NIST(ニスト)の指針をもとに、安全なパスワードの作り方と、無理なく続けられる管理のコツを説明します。

まず結論:守るのは3つだけ

  1. 長くする。総務省の資料は、最低でも10文字以上を理想としています。NIST の指針では、パスワードだけで本人確認をするなら、15文字以上が最低ラインです。ただし、長さだけでなく、推測されにくいことも、同じくらい大切です。
  2. 使い回さない。サービスごとに、別のパスワードにします。
  3. 2段階認証を使う。パスワードが知られても、入られにくくなります。

やってはいけないパスワード

総務省の資料が、避けるべき例として挙げているのは、次のようなものです。

  • IDと同じ文字列
  • 名前、電話番号、生年月日、住所、車のナンバーなど
  • 辞書にある英単語1つだけ(例:password)
  • 同じ文字のくり返し(例:0000)、かんたんな並び(例:123456)、キーボードの並び(例:qwerty)
  • 短すぎるもの
  • 郵便番号や社員コードなど、人から推測されやすいもの。一度でも人に教えたもの

長さが大事な理由

パスワードを破る方法の一つに、すべての組み合わせを、片っぱしから試すやり方があります。パスワードが長いほど、組み合わせの数は、一気に増えます。英字の大文字・小文字と数字の62種類だけで考えても、1文字ふえるごとに、組み合わせは約62倍になります。4文字ふえると、約1,480万倍です(62の4乗は、14,776,336)。

ただし、これは、文字をでたらめに選んだ場合の話です。誕生日や、ふつうの単語など、人が推測しやすい並びだと、この数字ほどの強さは出ません。「長く」と「推測されにくく」の、両方が大切です。

NIST(米国国立標準技術研究所)の指針「SP 800-63B」は、サービスを運営する側に向けた決まりですが、パスワードを考えるときの参考になります。最新の第4版(63B-4)では、おもに次のようなことが書かれています。

  • パスワードだけで本人確認をするときは、15文字以上を求める。2段階認証の一部として使うときは、8文字以上。
  • 少なくとも64文字まで、入力できるようにする。
  • 「大文字・小文字・数字・記号を混ぜること」のような、文字の種類の決まりを、求めてはいけない。
  • 定期的な変更を、求めてはいけない。流出の証拠があるときは、変えさせる。
  • 設定するときに、流出したパスワードの一覧などと、照らし合わせる。
  • パスワード管理ツールや、貼りつけ(ペースト)での入力を、使えるようにする。

総務省の資料と、目安の数字がちがいますが、迷ったときは、長いほうに合わせるのが安全です。

なお、NIST の指針は、15文字以上という決まりとあわせて、ログインの失敗が続いたら止めること(同じアカウントで、続けて失敗できるのは100回まで)も、サービス側に求めています。ファイルに鍵をかけるときのように、止める仕組みがない場合は、パスワードの強さが、そのまま守りの強さになります。

作り方の例

覚えておく必要があるパスワード

パスワード管理ツールを開く「マスターパスワード」や、スマホ・パソコンのロックなどは、自分で覚えておく必要があります。総務省の資料では、文章にならない複数の英単語をつなぐ方法や、その間に数字の並びをはさむ方法が、勧められています。

tent-pencil-river-42-cloud
これは、作り方を見せるための例です。そのまま使わないでください。

ポイントは、次の3つです。

  1. 自分の名前や誕生日など、自分に関係する言葉を使わない。
  2. 意味のつながりのない、でたらめな単語にする。
  3. 単語を4つ以上つなげて、15文字以上にする。

覚えなくていいパスワード

多くのサービスのパスワードは、覚える必要がありません。スマホやブラウザには、パスワードを作る機能があるものがあり、総務省の資料でも、活用が勧められています。そうした機能や、パスワード管理ツールに、長くてでたらめなものを作らせて、そのまま保存します。

管理のコツ

  • パスワード管理ツールを使う。スマホやブラウザに入っている標準の機能や、専用のアプリがあります。サービスごとに別の安全なパスワードを覚えるのは大変なので、総務省の資料でも、管理ツールの利用が勧められています。
  • 管理ツールは、マスターパスワードや端末のロックで守る。ここが破られると、全部が危なくなります。ここだけは、長く、人に推測されないものにして、自分で覚えます。
  • 人に教えない。メールで送らない。画面のそばに、紙で貼ることもしません。
  • どうしてもメモするときは、鍵のかかる場所に置く。
  • 定期的に変えなくていい。流出などの事実がなければ、変える必要はないと、総務省の資料も、NIST の指針も述べています。変えるのは、流出が分かったときです。

2段階認証もあわせて使う

2段階認証(多要素認証)は、パスワードに加えて、もう一つの方法で、本人かどうかを確かめる仕組みです。総務省の資料では、本人確認の要素を、「知識」(パスワードなど)、「所持」(スマートフォンなど)、「生体」(指紋、顔など)の3種類に分けて、2つ以上を組み合わせる、と説明しています。

パスワードが知られても、スマホがなければ入れないので、安全性が大きく上がります。まず、メール、銀行や証券、SNS、クラウドのサービスから、オンにしましょう。メールは、ほかのサービスのパスワードを再設定するときにも使われるので、とくに大事です。

ファイルに鍵をかけるときのパスワード

大事なファイルをパスワードで守るときも、考え方は同じです。長く、推測されにくいものにします。鍵をかけたファイルがだれかの手に渡ると、サービスのように「失敗が続いたら止める」ことができず、パソコンで好きなだけ試されるおそれがあります。ですから、人が考えた言葉ではなく、パスワード管理ツールなどに作らせた「でたらめな12文字以上」か、「ランダムに選んだ単語4つ以上(5つならさらに安心)」にしておくと安心です(目安です)。自分で考えるなら、15文字以上にして、名前や誕生日は使わないでください。

また、鍵をかけたファイルは、パスワードを忘れると、元に戻せないことがあります。パスワードは、なくさない方法で、残しておきましょう。

このブログの「暗号金庫」は、ファイルに鍵をかける(暗号化する)プログラムです。パスワードは、どこにも保存されないので、忘れると、作った本人にも、元に戻せません。

流出に気づいたら

「メールアドレスが流出したかもしれないときにやること」の記事に、手順をまとめています。このブログの「メールアドレスの流出調査」でも、自分のアドレスが、過去の流出に入っていないかを調べられます。

よくある質問

Q. 「P@ssw0rd」のように、文字を記号や数字に置きかえれば安全ですか。

A. ふつうの単語の文字を、一部置きかえただけでは、強くなりにくいと言われています。よくある置きかえは、破る側も知っているからです。長さと、でたらめさを、大事にしてください。

Q. パスワードを、ブラウザに保存しても大丈夫ですか。

A. ブラウザの標準の機能も、総務省の資料で、パスワード管理ツールの例として挙げられています。ただし、パソコンやスマホ自体に、ロックをかけておくことが大切です。みんなで使うパソコンには、保存しないでください。

Q. パスワードを、家族と共有してもいいですか。

A. 総務省の資料は、パスワードを人に教えないように勧めています。どうしても共有が必要なときは、家族向けの共有機能がある、サービスや管理ツールを使うと安全です。

Q. 全部ちがうパスワードなんて、覚えられません。

A. そのとおりです。だから、覚えるのは、管理ツールのマスターパスワードだけにして、あとは管理ツールに任せるのが、おすすめです。

出典

この記事は、2026年10月28日に、次の資料を確認して書きました。

最終更新:2026年10月28日

メールアドレスが流出したかもしれないときにやること

[説明]メールアドレスやパスワードが流出したかもしれないときの、調べ方と、やることの順番を、やさしく説明します。[/説明]

「あなたのメールアドレスが流出しました」というニュースや通知を見て、不安になったことはありませんか。流出とは、利用していたサービスが外から不正に入られるなどして、登録していた情報が外に出てしまうことです。サービス側で起きることが多く、利用した人のせいとは限りません。大切なのは、あわてずに、順番に守りを固めることです。

まず知っておきたいこと

流出した情報の種類によって、起こりうることと、急ぐ度合いが変わります。

  • メールアドレスだけ:迷惑メールや、なりすましのメールが増えることがあります。すぐにお金の被害が出るとは限りません。
  • パスワードも:同じパスワードをほかのサービスでも使っていると、そちらに不正にログインされるおそれがあります。いちばん急ぐケースです。
  • 氏名・電話番号・住所も:電話やショートメッセージを使った詐欺に、使われるおそれがあります。
  • クレジットカードの番号なども:カード会社に連絡して、利用の明細を確かめます。

総務省の「国民のためのサイバーセキュリティサイト」でも、あるサービスから流出した情報を使って、ほかのサービスへの不正ログインを試す手口があることから、パスワードの使い回しを避けるよう勧めています。

流出したかどうかを調べる

サービスからのお知らせを見る

利用しているサービスが流出を発表したときは、公式サイトやアプリのお知らせ、登録しているメールアドレスへの連絡で知らされます。ただし、お知らせを装った偽のメール(フィッシング)も多く出回ります。メールの中のリンクは開かずに、公式のアプリや、自分で保存しておいた公式サイトのアドレスから確かめましょう。

調査サービスで調べる

過去の流出事件に、自分のメールアドレスが入っていないかを調べられるサービスがあります。「Have I Been Pwned」や「XposedOrNot」が知られています。埼玉県警察の資料でも、「Have I Been Pwned」で流出を確かめる方法が挙げられています。ただし、その結果は、判断の参考程度にとどめるように、とされています。

「見つかりませんでした」でも、安全とは言い切れません。調べられるのは、すでに公開されたり、確認されたりした流出だけです。まだ知られていない流出もあります。
このブログの「メールアドレスの流出調査」でも、XposedOrNot を使って調べられます。調べるのは、自分のメールアドレスだけにしてください。

流出が分かったとき、疑わしいときの手順

まず、今日のうちに

  1. 流出したサービスのパスワードを変える。サービスの公式の画面から変えます。メールの中のリンクから変えるのは避けます。
  2. 同じパスワードを使っているサービスも、すべて変える。まず、メール、銀行や証券、ショッピング、SNS から行います。これからは、サービスごとに別のパスワードにします。
  3. 2段階認証をオンにする。パスワードのほかに、スマホなどで、もう一度本人かどうかを確かめる仕組みです。パスワードが知られても、すぐには入られにくくなります。

続けて確認すること

  1. メールの設定を点検する。勝手な転送設定が入っていないか、メールの末尾の署名に、見覚えのないリンクやアドレスがないかを見ます。警察の資料でも、転送設定や署名の確認が、手順に入っています。あわせて、メールを自動で振り分けたり消したりする「フィルタ」の設定も、見ておくと安心です。
  2. ログインの記録を見る。多くのメールサービスには、最近のログインの記録や、ログインしている機器の一覧があります。知らない機器があれば、ログアウトさせます。
  3. カードや口座の情報が出たときは、カード会社や銀行に連絡する。利用の明細を見て、身に覚えのない利用がないかを確かめます。
  4. よく連絡する人に知らせる。メールを乗っ取られた疑いがあるときは、不審なメールやリンクに注意してほしいと、連絡先の人に伝えます。警察の資料でも、登録している連絡先への連絡が、手順に入っています。
  5. パソコンやスマホのウイルスチェックをする。ウイルスが見つかったときは、取りのぞいたあとに、もう一度パスワードを変えます。
身に覚えのない請求や、アカウントの乗っ取りなどの被害にあったかもしれないときは、警察に相談できます。警察庁のサイバー事案の相談窓口に、都道府県警察の窓口や、オンラインの窓口がまとめられています。技術的な相談は、IPAの情報セキュリティ安心相談窓口も使えます。お金や契約のトラブルは、消費生活センターや、消費者ホットライン188が窓口です。

流出のあとに気をつけること

  • 知らない人からのメールのリンクや、添付ファイルは開かない。
  • 「アカウントが停止されます」「今すぐ確認を」と、あわてさせるメールは、偽物の可能性があります。公式のアプリや公式サイトから、自分で確かめます。
  • 電話番号が流出したときは、知らない番号からの電話やショートメッセージに注意します。お金のこと、パスワード、認証コードをたずねる連絡には、答えません。
  • 身に覚えのないログインの通知や、請求の通知が来たら、すぐに確認して、パスワードを変えます。
  • 流出から時間がたってから、悪用されることもあります。しばらくは、ようすを見ておきます。

被害を小さくする、ふだんの習慣

  • パスワードは、サービスごとに別にする。(「安全なパスワードの作り方と管理のコツ」の記事で、くわしく説明します。)
  • パスワード管理ツールを使う。スマホやブラウザに入っている標準の機能でも使えます。
  • 大事なサービスは、2段階認証にする。メール、銀行、SNS から始めます。
  • 用途ごとに、メールアドレスを分ける。買い物や、お試しの登録に使うアドレスと、大事な連絡に使うアドレスを分けておくと、流出の影響を小さくできます。
  • 使わなくなったサービスは、退会する。登録したままだと、そのサービスから流出するおそれが残ります。
  • ソフトやアプリを、新しい状態にしておく。

よくある質問

Q. メールアドレスが流出したら、アドレスを変えないといけませんか。

A. かならず変える必要はありません。パスワードを変えて、使い回しをやめ、2段階認証をオンにすれば、守りを固められます。迷惑メールがとても多くなったときは、新しいアドレスを作って、大事なサービスから順に切りかえる方法もあります。

Q. 昔のサービスのパスワードは、もう使っていません。変えなくていいですか。

A. そのパスワードを、ほかのサービスでも使っていたなら、そちらを変えてください。使い回しがなく、サービスも退会しているなら、急ぐ必要は小さくなります。

Q. 流出のお知らせメールが届きました。本物か分かりません。

A. メールの中のリンクや電話番号は、使わないでください。公式サイトやアプリを、自分で開いて、お知らせが出ているかを確かめます。

Q. 定期的にパスワードを変えたほうがいいですか。

A. 総務省の資料では、流出などの事実がなければ、定期的に変える必要はないとされています。そのかわり、サービスごとに別のパスワードにします。流出が分かったときは、すぐに変えます。

出典

この記事は、2026年10月28日に、次の資料を確認して書きました。

この記事は、一般的な情報です。個別の被害については、上の相談窓口にご相談ください。 最終更新:2026年10月28日

動画編集で音がズレる原因「可変フレームレート(VFR)」の確かめ方と直し方

[説明]編集ソフトに入れた動画の音がズレるとき、原因の一つ「可変フレームレート」の意味と、確かめ方、固定フレームレートに直す方法を説明します。[/説明]

撮影した動画や、画面を録画した動画を、編集ソフトに入れたら、だんだん音がずれてくる。映像が出ない。そんなときの原因の一つが、「可変フレームレート(VFR)」です。ふつうに再生するぶんには気づきにくいので、編集を始めてから困る人が多い問題です。この記事では、VFRとは何か、なぜ困るのか、どう確かめて、どう直すのかを説明します。

フレームレートとは

動画は、たくさんの静止画(コマ)を、続けて見せることで、動いているように見えます。1秒間に何コマ見せるかが「フレームレート」で、単位は fps(フレーム・パー・セカンド)です。たとえば 30fps なら、1秒に30コマです。

HandBrake(無料の動画変換ソフト)の公式の資料では、映画は 23.976fps か 24fps、ヨーロッパの放送は 25fps か 50fps、北米の放送は 29.97fps、59.94fps、30fps、60fps などが一般的、とされています。

固定(CFR)と可変(VFR)のちがい

固定フレームレート(CFR)は、コマが、いつも同じ間隔で並んでいる動画です。可変フレームレート(VFR)は、場面によって、コマの間隔が変わる動画です。

固定(CFR):コマの間隔がいつも同じ可変(VFR):コマの間隔がばらばら時間 →

縦線が1コマです。間隔がそろっていれば固定、ばらばらなら可変です。

VFRになるのは、機器やアプリが、そのときの状況に合わせて、コマの数を変えて記録することがあるためです。たとえば、画面の録画では、画面があまり変わらないときは、コマを少なくして記録するものがあります。

Streaming Media という専門サイトの解説記事では、iPhone や iPad で撮った動画、Camtasia という画面録画ソフトで録画した動画などが、VFRになる例として挙げられています。スマホの画面録画のほか、ゲームの録画や、一部の編集ソフトの書き出しも、VFRになることがあります。

なぜ、音ズレや読み込み失敗が起きるのか

編集ソフトは、タイムライン(編集のための時間の流れ)の上で、映像のコマを、決まった間隔で並べて扱うのがふつうです。ところが、VFRの動画は、コマの間隔がばらばらです。そのため、ソフトがコマの位置を計算するときに、実際の時間とのずれが生まれることがあります。音声は、実際の時間どおりに記録されているので、時間がたつほど、映像と音声のずれが大きくなって見えます。

症状は、ソフトによってちがいます。後半になるほど音がずれる、映像が出ない(オフラインと表示される)、読み込むときに「可変フレームレートです」と警告が出る、などです。

Streaming Media の記事では、VLC Player や QuickTime では問題なく再生できる動画が、Adobe Premiere Pro に入れると、音と映像がずれた、と書かれています。ふつうに再生できることと、編集に向いていることは、別の話です。

自分の動画がVFRか確かめる

動画ファイルの中には、「各コマを、何秒のあいだ表示するか」を書いた表が入っています。この表を読めば、コマの間隔がそろっているかどうかが分かります。

このブログの「動画VFRチェッカー」は、この表をブラウザの中で読み取って、「固定」「ほぼ固定」「可変」を判定します。動画は、パソコンの外には送られません。MP4・MOV・M4Vに対応しています。

次のような動画は、編集の前に、確かめておくと安心です。

  • スマホの画面録画
  • ゲームの録画や、配信の録画
  • iPhone や iPad で撮った動画
  • 編集ソフトに入れたら、音がだんだんずれてしまう動画

固定(CFR)に直す方法

直し方は、動画を、決まったフレームレートで作り直す(エンコードし直す)ことです。作り直すので、時間がかかります。また、画質がわずかに変わることがあるので、元のファイルは残しておきましょう。

HandBrake(無料ソフト)を使う

  1. HandBrake で、直したい動画を開きます。
  2. 「ビデオ」タブの「フレームレート(FPS)」を、元の動画に合わせた値にします。分からないときは「Same as Source」を選びます。
  3. そのすぐ下で、「Constant Framerate(固定フレームレート)」を選びます。ここが、いちばん大切です。
  4. 「エンコード開始」を押します。できあがったファイルを、編集ソフトに入れます。

HandBrake の公式の資料では、固定フレームレートは、特別な場合をのぞいて、おすすめしないとされています。そのいっぽうで、編集ソフトに取り込むための書き出しは、固定をおすすめする場面として挙げられています。Streaming Media の記事では、この方法で、音ズレがほとんどの場合に直ると書かれています。

ffmpeg を使う(コマンドに慣れている人向け)

ffmpeg の公式の資料では、出力のほうに「-r」を付けると、エンコードの直前に、コマを足したり捨てたりして、一定のフレームレートにそろえる、と説明されています。たとえば、30fps に直すときは、次のようにします。

ffmpeg -i "元の動画.mp4" -fps_mode cfr -r 30 -c:v libx264 -crf 18 -preset medium -c:a aac -b:a 192k "直した動画.mp4"

「-fps_mode cfr」が、固定にそろえる指定です。古い ffmpeg では、かわりに「-vsync cfr」を使います。「-r 30」は、元の動画に合わせて変えてください。「-crf 18」は、画質の変化が目立ちにくい設定の例です(数字が小さいほど高画質で、ファイルは大きくなります)。

試した結果:見本として、1/30秒の間隔と、1/10秒の間隔が混ざった、10秒の動画を作り、上のコマンド(ffmpeg 6.1、-r は 30)で変換しました。変換前は、2種類の間隔が混ざっていましたが、変換後は、すべてのコマの間隔が、1/30秒にそろいました。

直したあとの確認

直した動画を、もう一度「動画VFRチェッカー」に入れてみましょう。「固定」か「ほぼ固定」と出れば、編集ソフトに入れて大丈夫です。

最初から固定で録るには

録画アプリや、カメラアプリの設定に、フレームレートを固定にする項目があれば、それを選びます。ない場合も多いので、編集の前に、チェッカーで確かめる習慣をつけると安心です。

よくある質問

Q. どのフレームレートに直せばいいですか。

A. 元の動画で、いちばん多かった速さに合わせます。「動画VFRチェッカー」には、その値が出ます。たとえば 29.97fps や 60fps のように、元の動画に近い値にします。むやみに大きな値にしても、画質はよくなりません。

Q. 固定に直すと、画質は落ちますか。

A. 動画を作り直すので、わずかに変わることがあります。設定をていねいに選べば、見た目の差は、ほとんど分からない場合が多いです。元のファイルは、残しておいてください。

Q. VFRのままでは、使えませんか。

A. 再生するだけなら、ふつうは問題ありません。編集ソフトによっては、そのまま使えることもあります。ただ、音ズレや読み込み失敗の原因になりやすいので、編集の前に、固定に直すのがおすすめです。

Q. 直したのに、音がずれます。

A. 録画のときにコマが落ちていた、パソコンの動きが重かった、編集ソフトの書き出しの設定が合っていない、など、ほかの原因も考えられます。短いところで試して、どこからずれるのかを調べてみてください。

出典

この記事は、2026年10月28日に、次の資料を確認して書きました。

最終更新:2026年10月28日

音を聞き分けるAI「YAMNet」のしくみと、うまく使うコツ

[説明]音の名前を当てるAI「YAMNet」が、どんなデータで学習して、どうやって音を判別しているのか。当たりやすくするコツと、苦手なことも説明します。[/説明]

マイクに向かって手をたたくと「拍手」と出る。犬の声を聞かせると「犬」と出る。そんな「音の名前を当てるAI」が、Google が公開している「YAMNet(ヤムネット)」です。このブログの「オーディオ・ウエブ・アナライザー」も、YAMNet を、ブラウザの中で動かしています。この記事では、YAMNet が何者なのか、どうやって音を見分けているのかを説明します。そして、うまく使うコツと、苦手なことも紹介します。

YAMNetとは

YAMNet は、あらかじめ学習を終えている、音のイベントを分類するAI(学習済みモデル)です。「AudioSet」という大きな音のデータをもとに学習していて、521種類の音の名前について、それぞれ「どのくらいそれらしいか」の点数を出します。

中身は、画像の認識でも使われている「MobileNet」という、小さくて速いネットワークの仲間(MobileNet v1 の、深さ方向分離畳み込みという作り)です。説明書(README)には、重み(AIが覚えている数字)が約370万個、0.96秒ぶんの音を調べるときの掛け算が約6,920万回、と書かれています。軽く作られているので、ブラウザの中でも動かせます。

学習に使われたデータ「AudioSet」

AudioSet は、Google が公開している、音のイベントの大きなデータです。音の種類を整理した分類(632クラス)と、人が聞いて音の名前をつけた、2,084,320本の、10秒の音のクリップでできています。クリップは、YouTube の動画から選ばれています。

YAMNet が見分けるのは、このうち521種類です。元のデータで、実際にラベルがついていたのは527種類でしたが、公平性の観点から、6種類を外しています。男性・女性で分けた「話し声」と「歌声」(4種類)と、「Battle cry」(戦いのときの叫び声)、「Funny music」(こっけいな音楽)です。このため、YAMNet は、声の男女の区別をしません。

音を聞き分けるしくみ

YAMNet は、音を、そのまま聞いて判断するのではなく、いったん「絵」にしてから判断します。流れは、次のとおりです。

音(マイク・ファイル)→16kHzのモノラルにそろえる→音の絵(スペクトログラム)にする→0.96秒ぶんをAIに入れる→521個の点数が出る
  1. 音をそろえる。音を、モノラル(1つのチャンネル)で、1秒に16,000回の細かさ(16kHz)に直します。YAMNet に入れられる音は、この形です。
  2. 音の絵をつくる。音を、0.025秒(25ミリ秒)ずつ切り出して、0.01秒ずつずらしながら、どの高さの音が、どのくらい強いかを調べます。それを、人の耳の感じ方に近い、64段階の高さにまとめます。横が時間、縦が音の高さの「絵」になります。(専門用語では、メルスペクトログラムといいます。)
  3. 0.96秒ぶんを1枚にして、AIに入れる。絵を、0.96秒ぶんずつに区切ります。区切りは、0.48秒ずつずらして、半分ずつ重ねます。
  4. 521個の点数が出る。音の名前ごとに、「どのくらいそれらしいか」の点数が出ます。
点数は、音の名前ごとに、別々に出ます。そのため、すべてを足しても、100%にはなりません。「犬」と「動物」のように、近い名前が、同時に高くなることもあります。

どのくらい当たるのか

YAMNet の説明書(README)には、AudioSet の評価用データ(20,366区間、521種類)で測った結果が載っています。クラスごとに出した平均適合率(mAP)を、全クラスで平均した値は 0.306 です。mAP は、満点が 1.0 の指標です。

この数字だけを見ると、低く感じるかもしれません。ただ、これは、521種類もあって、音が重なることも多い、むずかしい課題での結果です。また、AudioSet の評価用データでの結果であって、あなたの身のまわりの音で、どのくらい当たるかを示すものではありません。結果は「ヒント」として使うのが、ちょうどよい使い方です。

当たりやすくするコツ

  • 音を近くで、はっきり録る。小さな音や、遠くの音は、まちがえやすくなります。マイクを、音の出どころに近づけます。
  • まわりが静かな場所で調べる。話し声や、空調、車の音が混ざると、いちばん目立つ音だけが、結果に出ることがあります。
  • 1秒以上の長さで聞かせる。YAMNet は、0.96秒ぶんを1つの単位にしています。README によると、最初の結果を出すのに、約0.975秒以上の音が必要です。
  • 1回の結果で決めない。数秒つづけて、同じ名前が上位に出るかを見ます。ときどきしか出ない名前は、まぐれかもしれません。
  • 似た名前も見る。「犬」のかわりに「動物」や「ペット」が出ることもあります。上位のいくつかを、あわせて見て判断します。

うまく判別できないこと

  • 男性か女性か、雄か雌かの区別。
  • 521種類にない音(近い、ほかの名前で出ることがあります)。
  • 鳥の種類のような、細かい区別。犬・猫・鳥のような、おおまかな種類までです。
  • 安全や医療など、大事な判断。結果は「ヒント」として使います。

ブラウザの中で動かすということ

このブログのプログラムは、TensorFlow.js という部品を使って、YAMNet を、お使いのパソコンやスマホの中で動かします。音は、ネットに送られません。ただし、AIを動かす部品と、AIモデルのファイル(約16MB)は、はじめにインターネットから読み込みます。2回目からは、ブラウザが覚えているので、早くなります。

このブログの「オーディオ・ウエブ・アナライザー」で、マイクの音や、録音したファイルを調べられます。結果の名前は、元の英語の分類名をもとに、日本語にしたものです。

自分で学習させたい人へ

YAMNet は、「音の特徴を取り出す部品」として使うこともできます。YAMNet の出力の一つに、音の特徴を1,024個の数字で表した「埋め込み(embeddings)」があります。これを、小さな分類器の入力にすれば、自分で集めた音(たとえば、自分の家の犬と猫の声)を見分ける、「転移学習」ができます。TensorFlow の公式のチュートリアルに、手順が載っています。

よくある質問

Q. YAMNet は、だれが作ったものですか。

A. Google が公開しています。学習済みのファイルは、Kaggle の「Models」のページなどで配られています。

Q. 音は、外に送られますか。

A. ブラウザの中で調べるので、音は送られません。ただし、AIを動かす部品と、AIモデルのファイルは、はじめにインターネットから読み込みます。くわしくは、プライバシーポリシーをご覧ください。

Q. 日本語の名前は、正確ですか。

A. 元の英語の分類名をもとに、日本語にしたものです。言いかえが、完全にぴったりとは限りません。

Q. 犬や猫の鳴き声から、種類(犬種など)まで分かりますか。

A. 犬・猫・鳥のような、おおまかな種類までです。犬種や、鳥の種類のような、細かい区別は、ふつうできません。

Q. 同じ音なのに、結果が変わるのはなぜですか。

A. 音の聞こえ方は、マイクの位置や、まわりの音で、少しずつ変わります。このプログラムは、0.5秒ほどずつずらして調べるので、そのたびに、点数も変わります。数秒つづけて、よく出る名前を見てください。

出典

この記事は、2026年10月28日に、次の資料を確認して書きました。

最終更新:2026年10月28日

2026年10月26日月曜日

なぜこのサイトを作ったのか(実は海より深い理由があるんです)

正直、最初は公開するつもりなんて全然ありませんでした。自分が使うものを、自分のために作っていただけです。パソコンの中で動いてくれれば、それで十分でした。

きっかけは、暮らしの中の「こういうの、あったら便利なのにな」でした。たとえば、ちょっとした計算とか、情報の整理とか、地味に手間のかかる作業とか。探せばあるにはあるんですが、どうも「欲しいのはこれじゃない」んですよね。機能が多すぎて使いにくかったり、逆に足りなかったり。じゃあ自分で作るか、と軽い気持ちで作り始めたのがスタートです。

仕事で「これがないと困る!」と迫られて、あわてて作ったものもあります。時間がないなかで作るので、本当に必要なところだけを詰め込むことになるんですが、そういうものに限ってちゃんと役に立つんですよね。使ってみて「これ、あってよかった」と思ったことが何度もあります。

作っているうちに、もうひとつ気になることが出てきました。パソコンでは使えるのに、スマホだと使いにくい。逆もあります。かといって、スマホ用とパソコン用を別々に作ると、直すときも二度手間です。それなら最初から一つにして、できるだけスマホでも使えるようにしよう、と思いました。そこで、ウェブで動く形で作るようになりました。URLを開くだけで使えるので、準備もいらなくて楽です。

そうやって作ったものが増えてくると、「これ、自分だけで使うのはもったいないな」と思うようになりました。自分が困ったなら、きっと他にも困っている人がいるはずです。パソコンの中に置いておけば、使うのは自分ひとり。でも、誰でも開ける場所に置いておけば、使ってくれる人が出てくるかもしれません。

そして、決め手になった出来事があります。前に使っていたネット上の便利なものが、いつの間にか消えていたんです。お知らせもなく、ある日開いたらもうない。代わりを探しても、同じものは見つからない。あれはけっこうショックでした。作った人にも事情があったんでしょうし、責めるつもりはまったくありません。ただ、「ネットのものって、こんなに簡単に消えるんだ」と思い知りました。使う側だった自分が「もう使えない」という残念な思いをしたからこそ、自分が作るものは、ちゃんと残る場所に置いておきたいと思うようになりました。

それと、探してみると「こんな簡単なものまで有料なの?」と驚くものも、意外と多いんですよね。作るには時間も手間もかかるので、お金をもらうこと自体が悪いとは思いません。でも、ちょっと便利になるだけのものに、使う前からお金を払うのは、なかなか勇気がいります。使ってみないと良し悪しもわからないのに、先にお金がかかる。それで使うのをやめてしまう人も、きっといるはずです。必要な人が、お金のことで諦めてしまうのはもったいないなあ、と思いました。

だったら、消えなくて、ずっと無料で気軽に使える場所を自分で作ってしまおう。そうして出来上がったのが、このサイトです。

ひとつだけ、お断りしておきます。ここにあるものは、基本的にパソコンで操作することを前提に作っています。なかには、パソコンでしか役に立たないものもあります。スマホで開いて「使いにくいな」と思ったときは、そういうことなんだなと承知しておいてください。

作ったものは、できるだけ長く残していくつもりです。

ここにあるものが、あなたの「ちょっと困った」の助けになったら、とてもうれしいです。気楽に見ていってください。


2026年10月25日日曜日

java script ⇔ python 変換プログラム

実はjava scriptとpythonは相性が良く、お互いに変換しやすいという特性を持っています。その特徴を活かして作りました。一般の方には縁がないかもしれませんが、プログラマーの人にとってはかけがえのないものだと思います。

少々使う方は限定されますが、人によってはなくてはならない存在だと思います。

[説明]java scriptとpythonのプログラムをお互いに変換できるプログラムです[/説明]

できること:PythonとJavaScriptのプログラムを、おたがいの書き方に変換します。自動で直せないところには印をつけ、理由を下に表示します。

使い方:左の欄に変換したいプログラムを貼ると、右に結果が出ます。「逆向きにする」で変換の向きを切りかえられ、「見本」で例を見られます。

注意:自動の書きかえなので、結果は必ず動かして確かめてください。pandasなどのライブラリや、ブラウザの画面操作(document)は、相手の言語に同じものがないため変換できません。入力した内容は、このブラウザの中だけで処理され、外には送られません。

プログラムの書きかえ道具

Py⇄JS 変換器

Python と JavaScript を、おたがいの書き方に変換します。自動で直せないところには印をつけて、理由を下に出します。

変換前(ここに貼りつけ・入力)
変換後

気をつけるところ

押すと、右の画面のその行に移動します。

    対応表(よく使う書き方)

    同じことをするとき、それぞれの言語ではこう書きます。

    やりたいことPythonJavaScriptひとこと
    • 変換は「よく使う書き方」に合わせた自動の書きかえです。結果は必ず動かして確かめてください。
    • Python のライブラリ(pandas など)や、ブラウザの画面操作(document など)は、相手の言語に同じものがありません。
    • Python の結果はこの画面では動かせません。コピーして、パソコンの Python や Google Colab で試せます。
    © 2026 加藤竹志 ・ 入力したプログラムはこのブラウザの中だけで変換され、どこにも送られません。

    Python と JavaScript の変換器の使い方・活用例・よくある質問

    使い方

    1. 左の欄に、変換したいプログラム(PythonかJavaScript)を貼りつけます。入力すると、少し待って、右の欄に結果が自動で出ます。
    2. 向きを変えたいときは、「⇄ 逆向きにする」を押します(Python→JavaScript と JavaScript→Python を切りかえます)。
    3. 「見本」から例をえらぶと、入力欄に例が入ります。基本(合計と平均)、FizzBuzz、クラス、リストと辞書、注意が出る例があります。
    4. 自動で直せなかったところには印がつき、理由が「気をつけるところ」に出ます。押すと、右の画面のその行に移動します。
    5. 結果は「コピー」で取り出せます。変換後がJavaScriptのときは、「結果のJSを実行」で、この画面の中で動かして、出力を見られます。

    こんなときに使えます

    • Pythonで書かれたサンプルを、ウェブページ(JavaScript)で使いたいとき。
    • JavaScriptの書き方を、Pythonの書き方と見くらべながら覚えたいとき(この上の「対応表」が便利です)。
    • 片方の言語しか書けないときに、もう一方の書き方の「たたき台」がほしいとき。
    • 学校や研修で、2つの言語のちがいを説明するとき。

    変換できるものと、できないもの

    よく使う書き方は、おたがいに書きかえられます。たとえば、画面に出す(print / console.log)、変数、文字の中に値を入れる書き方(f文字列 / テンプレート文字列)、条件分岐(if / elif / else)、くり返し(for)、関数(def / function)、短い関数(lambda / アロー関数)、リストの絞りこみと変換(内包表記 / filter / map)、辞書とオブジェクト、クラス、エラーへの備え(try / except と try / catch)、コメントです。

    変換できないものもあります。pandasなどのライブラリや、ブラウザの画面操作(documentなど)は、相手の言語に同じものがありません。setTimeoutのように、書きかえが必要なものは、「気をつけるところ」に注意が出ます。

    どうやって変換しているか

    プログラムをすべて理解して作り直す方式ではなく、よく使う書き方を、決まりにしたがって書きかえる方式です。そのため、よく使う書き方は得意ですが、めずらしい書き方や、複雑な書き方は、うまく直せないことがあります。直せなかったところには、印をつけます。結果は、必ず動かして確かめてください。

    よくある質問

    Q. 入力したプログラムは、外に送られますか。

    A. 送られません。変換は、このページの中(ブラウザの中)だけで行います。

    Q. 「結果のJSを実行」は、安全ですか。

    A. 実行は、画面とは別の「ワーカー」という場所で行うので、このページの画面そのものは書きかえられません(documentも使えません)。ただし、貼りつけたプログラムは、そのまま動きます。内容が分かるものだけを実行してください。3秒たっても終わらないときは、自動で止めます。

    Q. Pythonの結果も、この画面で動かせますか。

    A. 動かせません。Pythonの結果は、コピーして、パソコンのPythonや、Google Colab(ブラウザで動くPython)などで試してください。

    Q. 変換した結果が、うまく動きません。

    A. まず「気をつけるところ」を見てください。印がついた行は、人の手で直す必要があります。自動の書きかえなので、結果は必ず動かして確かめてください。

    Q. PythonとJavaScriptで、まちがえやすいところは?

    A. たとえば、等しいかの比べ方(JavaScriptは=を3つ書くのが安全)、切り捨てのわり算(Pythonの//は、JavaScriptではMath.floor)、からっぽのリスト(Pythonでは「からっぽ」あつかいですが、JavaScriptの[]は「ある」あつかい)、いちばん後ろの要素(Pythonはitems[-1]、JavaScriptはitems.at(-1))、joinの書き方の順番(逆になります)などです。この上の「対応表」にまとめています。

    ほかのプログラムは、トップページの一覧からどうぞ。入力したプログラムの扱いについては、プライバシーポリシー・免責事項もご覧ください。


    JavaScriptとPythonの書き方のちがい(くわしい解説)

    JavaScriptとPythonは、どちらも人気のあるプログラミング言語です。やりたいことは同じでも、書き方の決まりや、ふつうの動き方に、ちがいがあります。この記事では、2つを見くらべて、まちがえやすいところを、実際に動かして確かめた結果といっしょに説明します。このプログラムを使うときの、注意点にもなります。

    まず結論:ちがいは「書き方」と「動き」の2種類

    2つの言語のちがいは、大きく2種類に分けられます。

    1. 書き方のちがい。波かっこ { } を使うか、字下げ(インデント)を使うか、などです。見た目のちがいなので、決まりどおりに書きかえれば、同じ動きになります。
    2. 動きのちがい。同じ式に見えても、結果がちがうものです。たとえば、-7 % 3 の答えは、JavaScriptでは -1、Pythonでは 2 です。書きかえただけでは気づきにくいので、まちがいの元になります。
    この記事の結果は、Node.js 22 と Python 3.13 で、実際に動かして確かめました。JavaScriptの結果は、Node.js での表示です。ブラウザの画面では、見た目が少しちがうことがあります。

    書き方のちがい(見た目)

    まず、見た目のちがいです。よく使うものを、JavaScriptとPythonで並べます。画面の幅がせまいときは、上下に並びます。「//」と「#」から後ろは、コメントです。ここでは、動かしたときの結果を書いています。

    変数と、画面に出す

    JavaScript

    let count = 1;
    const name = "たま";
    console.log(name);    // たま
    console.log(count);   // 1

    Python

    count = 1
    name = "たま"
    print(name)    # たま
    print(count)   # 1

    JavaScriptは、let(あとで変えられる)や const(変えない)をつけて、変数を作ります。Pythonは、そのような言葉をつけません。画面に出すのは、JavaScriptが console.log、Pythonが print です。

    条件で分ける(if)と、かたまり

    JavaScript

    const n = -5;
    if (n > 0) {
      console.log("プラス");
    } else if (n < 0) {
      console.log("マイナス");
    } else {
      console.log("ゼロ");
    }

    Python

    n = -5
    if n > 0:
        print("プラス")
    elif n < 0:
        print("マイナス")
    else:
        print("ゼロ")

    JavaScriptは、かたまりを { } で囲み、文の終わりに ; をつけます。Pythonは、行の終わりに : を書き、次の行から字下げで、かたまりを表します。字下げは、スペース4つが基本です。Pythonでは、字下げがそろっていないと、エラーになります。「else if」は、Pythonでは「elif」と書きます。

    くり返す(for)

    JavaScript

    for (let i = 0; i < 3; i++) {
      console.log(i);
    }

    Python

    for i in range(3):
        print(i)

    どちらも、0、1、2 と出ます。Pythonの range(3) は、「0から数えて3個」という意味です。

    関数

    JavaScript

    function add(a, b) {
      return a + b;
    }
    const add2 = (a, b) => a + b;
    console.log(add(2, 3));    // 5
    console.log(add2(2, 3));   // 5

    Python

    def add(a, b):
        return a + b
    
    add2 = lambda a, b: a + b
    print(add(2, 3))    # 5
    print(add2(2, 3))   # 5

    関数は、JavaScriptが function、Pythonが def で作ります。短い関数は、JavaScriptでは「アロー関数」(=>)、Pythonでは lambda と書きます。

    真・偽と、「かつ・または・ではない」

    JavaScript

    console.log(true && false);   // false
    console.log(true || false);   // true
    console.log(!true);           // false

    Python

    print(True and False)   # False
    print(True or False)    # True
    print(not True)         # False

    真と偽は、JavaScriptが true と false、Pythonが True と False です。Pythonは、頭が大文字です。小文字で true と書くと、エラー(NameError)になります。「ない」を表す言葉は、JavaScriptが null と undefined の2つ、Pythonは None だけです。

    文字の中に、値を入れる

    JavaScript

    const name = "たま";
    console.log(`${name}さん、こんにちは`);   // たまさん、こんにちは

    Python

    name = "たま"
    print(f"{name}さん、こんにちは")   # たまさん、こんにちは

    JavaScriptは、バッククォート( ` )で囲んで、${ } の中に書きます(テンプレート文字列)。Pythonは、引用符の前に f をつけて、{ } の中に書きます(f文字列)。

    リスト(配列)と、辞書(オブジェクト)

    JavaScript

    const colors = ["赤", "青"];
    colors.push("緑");
    console.log(colors);     // [ '赤', '青', '緑' ]
    const cat = { name: "たま", age: 3 };
    console.log(cat.name);   // たま

    Python

    colors = ["赤", "青"]
    colors.append("緑")
    print(colors)            # ['赤', '青', '緑']
    cat = {"name": "たま", "age": 3}
    print(cat["name"])       # たま

    JavaScriptの「配列」は、Pythonの「リスト」にあたります。JavaScriptの「オブジェクト」({ })は、Pythonの「辞書」(dict)にあたります。追加は、JavaScriptが push、Pythonが append です。辞書の中身は、JavaScriptでは cat.name、Pythonでは cat["name"] で取り出します。

    長さ・つなぐ・分ける・大文字

    JavaScript

    console.log([1, 2, 3].length);       // 3
    console.log([1, 2, 3].join(", "));   // 1, 2, 3
    console.log("a,b,c".split(","));     // [ 'a', 'b', 'c' ]
    console.log("abc".toUpperCase());    // ABC

    Python

    print(len([1, 2, 3]))               # 3
    print(", ".join(["1", "2", "3"]))   # 1, 2, 3
    print("a,b,c".split(","))           # ['a', 'b', 'c']
    print("abc".upper())                # ABC

    Pythonの join は、つなぐ文字(", ")のほうから書きます。JavaScriptと、順番が逆です。また、Pythonの join は、文字だけをつなげます。数のリストは、先に文字に直す必要があります。

    リストの絞りこみと、変換

    JavaScript

    const nums = [1, 2, 3, 4];
    console.log(nums.map(x => x * 2));            // [ 2, 4, 6, 8 ]
    console.log(nums.filter(x => x % 2 === 0));   // [ 2, 4 ]

    Python

    nums = [1, 2, 3, 4]
    print([x * 2 for x in nums])             # [2, 4, 6, 8]
    print([x for x in nums if x % 2 == 0])   # [2, 4]

    JavaScriptは、map や filter を使います。Pythonでは、[ ... for x in ... ] と書く「内包表記」が、よく使われます。

    そのほかの、よく使う書き方です。

    • コメントは、JavaScriptが // と /* ... */、Pythonが # です。
    • エラーへの備えは、JavaScriptが try / catch、Pythonが try / except です。
    • 値の種類を調べるのは、JavaScriptが typeof、Pythonが type() です。
    • リストの中身を順に取り出すのは、JavaScriptが for (const x of items)、Pythonが for x in items です。

    同じに見えて、結果がちがうところ

    ここからが、この記事のいちばん大事なところです。見た目は同じ(または似ている)のに、結果がちがうものを、動かした結果といっしょに並べます。エラーになるときは、「エラー」と書いています。

    数のあつかい

    わり算

    JavaScript

    console.log(7 / 2);               // 3.5
    console.log(6 / 3);               // 2
    console.log(Math.floor(7 / 2));   // 3
    console.log(Math.floor(-7 / 2));  // -4

    Python

    print(7 / 2)       # 3.5
    print(6 / 3)       # 2.0
    print(7 // 2)      # 3
    print(-7 // 2)     # -4

    Pythonの / は、割り切れても、小数(2.0)になります。切り捨てるわり算は、Pythonが //、JavaScriptが Math.floor(…) です。Pythonの // は、小さいほうへ切り捨てます。-7 // 2 は -4 で、Math.floor(-7 / 2) と同じです。(0のほうへ切り捨てる Math.trunc(-7 / 2) は -3 です。)

    あまり

    JavaScript

    console.log(-7 % 3);    // -1
    console.log(7 % -3);    // 1

    Python

    print(-7 % 3)    # 2
    print(7 % -3)    # -2

    あまりの符号が、ちがいます。JavaScriptは、割られる数(-7)の符号にそろえます。Pythonは、割る数(3)の符号にそろえます。割る数がプラスのとき、JavaScriptでPythonと同じ答えにするには、((n % d) + d) % d と書きます。

    丸め

    JavaScript

    console.log(Math.round(2.5));    // 3
    console.log(Math.round(3.5));    // 4
    console.log(Math.round(-2.5));   // -2

    Python

    print(round(2.5))    # 2
    print(round(3.5))    # 4
    print(round(-2.5))   # -2

    ちょうど .5 のとき、Pythonは、偶数のほうに丸めます(2.5は2、3.5は4)。JavaScriptは、大きいほう(プラス無限大の向き)に丸めます(2.5は3、-2.5は-2)。

    大きな整数

    JavaScript

    console.log(2 ** 53 + 1);       // 9007199254740992
    console.log(2n ** 53n + 1n);     // 9007199254740993n

    Python

    print(2 ** 53 + 1)       # 9007199254740993

    JavaScriptのふつうの数は、9007199254740991(2の53乗 - 1)をこえると、整数を正確に表せないことがあります。ここでは、+ 1 が消えて、9007199254740992 のままです。もっと大きな整数には、BigInt(数のあとに n をつける)を使います。Pythonの整数は、大きくなっても正確なままです(メモリの許すかぎり)。

    小数の誤差(これは、同じ結果です)

    JavaScript

    console.log(0.1 + 0.2);   // 0.30000000000000004

    Python

    print(0.1 + 0.2)         # 0.30000000000000004

    「0.1 + 0.2 が、ぴったり 0.3 にならない」のは、言語のせいではありません。コンピューターが、小数を2進数で表すためで、JavaScriptでもPythonでも、同じ結果になります。

    比べ方と、真・偽

    等しいかの比べ方(== と ===)

    JavaScript

    console.log(0 == "0");    // true
    console.log(0 === "0");   // false

    Python

    print(0 == "0")    # False

    JavaScriptの == は、型をそろえてから比べるので、数の 0 と文字の "0" が等しくなります。=== は、型もそろっているかを見ます。ふつうは、=== を使うほうが安全です。Pythonの == は、数と文字を比べても、等しくなりません。

    文字と数のたし算・かけ算

    JavaScript

    console.log("1" + 2);          // 12
    console.log("5" * 2);          // 10
    console.log("ab" * 3);         // NaN
    console.log("ab".repeat(3));   // ababab

    Python

    print("1" + 2)          # エラー(TypeError)
    print("5" * 2)          # 55
    print("ab" * 3)         # ababab

    JavaScriptは、型を自動で変えます。"1" + 2 は文字のつなぎ(12)に、"5" * 2 は数のかけ算(10)になります。Pythonは、自動では変えず、たし算はエラーにします。文字をくり返すのは、Pythonが "ab" * 3、JavaScriptが "ab".repeat(3) です。

    からっぽのリスト・辞書は、「真」か「偽」か

    JavaScript

    console.log([] ? "真" : "偽");   // 真
    console.log({} ? "真" : "偽");   // 真
    console.log("" ? "真" : "偽");   // 偽

    Python

    print("真" if [] else "偽")   # 偽
    print("真" if {} else "偽")   # 偽
    print("真" if "" else "偽")   # 偽

    からっぽのリスト [] と辞書 {} は、Pythonでは「偽」あつかいですが、JavaScriptでは「真」あつかいです。リストがからっぽかを調べるときは、JavaScriptでは arr.length === 0 と書くと、まちがえません。空の文字 "" と 0 は、どちらの言語でも「偽」です。

    中身が同じリストを比べる

    JavaScript

    console.log([1, 2] == [1, 2]);   // false

    Python

    print([1, 2] == [1, 2])   # True

    Pythonは、リストの中身を比べます。JavaScriptの == と === は、「同じもの(同じ配列)か」を比べるので、中身が同じでも false になります。

    リスト(配列)と、辞書(オブジェクト)

    並べ替え

    JavaScript

    const byNum = (a, b) => a - b;
    console.log([10, 9, 1].sort());        // [ 1, 10, 9 ]
    console.log([10, 9, 1].sort(byNum));   // [ 1, 9, 10 ]

    Python

    print(sorted([10, 9, 1]))   # [1, 9, 10]

    JavaScriptの sort() は、何も指定しないと、数を文字として比べるので、"10" が "9" より前になります。数を小さい順にするには、(a, b) => a - b という比べる関数(ここでは byNum)を渡します。また、sort() は、元の配列を並べかえます。Pythonの sorted() は、新しいリストを返します。(list.sort() は、元のリストを並べかえて、None を返します。)

    後ろから数える

    JavaScript

    const items = [10, 20, 30];
    console.log(items[-1]);       // undefined
    console.log(items.at(-1));    // 30

    Python

    items = [10, 20, 30]
    print(items[-1])              # 30

    Pythonは、-1 で「いちばん後ろ」を取り出せます。JavaScriptの [-1] は、そんな番号がないので、undefined になります。いちばん後ろは、at(-1) か、items[items.length - 1] で取り出します。

    ないものを取り出す

    JavaScript

    const items = [10, 20, 30];
    const cat = { name: "たま" };
    console.log(cat.age);     // undefined
    console.log(items[10]);   // undefined

    Python

    items = [10, 20, 30]
    cat = {"name": "たま"}
    print(cat.get("age"))   # None
    print(cat["age"])       # エラー(KeyError)
    print(items[10])        # エラー(IndexError)

    JavaScriptは、ないものを取り出すと、エラーにならず、undefined になります。Pythonは、エラーで止まります。エラーにしたくないときは、辞書は .get() を使います。

    リストの「+」

    JavaScript

    console.log([1, 2] + [3]);           // 1,23
    console.log([...[1, 2], ...[3]]);   // [ 1, 2, 3 ]

    Python

    print([1, 2] + [3])   # [1, 2, 3]

    JavaScriptの + には、配列をつなぐ働きがありません。配列が文字に変えられて、つながってしまい、"1,23" になります。配列をつなぐには、[...a, ...b] か、a.concat(b) を使います。Pythonの + は、リストをつなぎます。

    「入っているか」を調べる in

    JavaScript

    console.log(2 in [10, 20, 30]);             // true
    console.log([10, 20, 30].includes(20));    // true

    Python

    print(2 in [10, 20, 30])    # False
    print(20 in [10, 20, 30])   # True

    JavaScriptの in は、中身ではなく、番号(や名前)があるかを調べます。[10, 20, 30] には、2番(0、1、2番)があるので、true になります。中身を調べるのは、includes です。Pythonの in は、リストの中身を調べます。

    文字と、変数

    文字の数

    JavaScript

    console.log("あいう".length);      // 3
    console.log("😀".length);          // 2
    console.log([..."😀"].length);     // 1

    Python

    print(len("あいう"))   # 3
    print(len("😀"))       # 1

    JavaScriptの length は、「文字の数」ではなく、内部の単位(UTF-16)の数です。絵文字や、一部の難しい漢字は、1文字でも2と数えます。Pythonの len() は、Unicodeの文字(コードポイント)を1つずつ数えるので、この絵文字は1です。ただし、いくつもの絵文字をつないだ記号(家族の絵文字など)は、Pythonでも1にならないことがあります。

    くり返しのあとの変数

    JavaScript

    for (let i = 0; i < 3; i++) {}
    console.log(typeof i);   // undefined

    Python

    for i in range(3):
        pass
    print(i)   # 2

    JavaScriptの let で作った変数は、{ } の中だけで使えます。Pythonは、くり返しが終わっても、変数 i が残ります(最後の値の 2)。

    変換するときの注意

    この上の変換プログラムは、「書き方のちがい」を、自動で書きかえます。たとえば、次のように直ります。

    書き方は、うまく直る

    Python(元)

    for i in range(3):
        print(i)
    name = "たま"
    print(f"{name}さん")
    print(7 // 2)
    print(", ".join(["a", "b"]))
    nums = [1, 2, 3, 4]
    print([x * 2 for x in nums])

    JavaScript(変換後)

    for (let i = 0; i < 3; i++) {
      console.log(i);
    }
    let name = "たま";
    console.log(`${name}さん`);
    console.log(Math.floor(7 / 2));
    console.log(["a", "b"].join(", "));
    let nums = [1, 2, 3, 4];
    console.log(nums.map((x) => x * 2));

    2026年10月28日に、変換プログラムで試した結果です。動かすと、どちらも同じ内容が出ます(リストの表示だけ、かっこの中の空白がちがいます)。

    いっぽう、「動きのちがい」は、書きかえただけでは、同じにならないことがあります。2026年10月28日に試したところ、次の例は、結果が変わるのに、「気をつけるところ」の印は出ませんでした。

    Python → JavaScript

    Python(元)

    print(-7 % 3)          # 2
    print(round(2.5))      # 2
    print([1, 2] + [3])    # [1, 2, 3]

    JavaScript(変換後)

    console.log(-7 % 3);            // -1
    console.log(Math.round(2.5));   // 3
    console.log([1, 2] + [3]);      // 1,23

    JavaScript → Python

    JavaScript(元)

    console.log([10, 9, 1].sort());   // [ 1, 10, 9 ]
    console.log(2 in [10, 20, 30]);   // true

    Python(変換後)

    print(sorted([10, 9, 1]))   # [1, 9, 10]
    print(2 in [10, 20, 30])    # False

    このように、「動きのちがい」は、自動では直せないものがあります。変換のあとは、次のことをおすすめします。

    • 動かして確かめる。変換後のJavaScriptは、変換プログラムの「結果のJSを実行」で、動かせます。Pythonの結果は、パソコンのPythonや、Google Colab(ブラウザで動くPython)で試せます。
    • 同じ入力で、前と後の結果を見くらべる。0、マイナスの数、からっぽのリスト、空の文字、2.5のような小数を入れて、結果が同じかを見ます。
    • 印がついた行は、人の手で直す。「気をつけるところ」に、理由が出ます。
    • ライブラリや、画面の操作は、そのままでは変換できない。pandasなどのライブラリや、ブラウザの画面を操作する document は、相手の言語に同じものがありません。

    よくある質問

    Q. JavaとJavaScriptは、同じものですか。

    A. ちがいます。名前や、書き方の一部が似ているだけで、別の言語です。たとえば、Javaは変数の型を書く必要がありますが、JavaScriptは書かなくてかまいません(MDNの説明)。

    Q. JavaScriptの文の終わりの「;」は、必ず書かないといけませんか。

    A. 書かなくても、決まりにしたがって自動で補われるので、動く場合があります。ただ、思わぬ動きになることがあります。たとえば、return の後ろで改行すると、そこで return が終わってしまい、値が返りません(MDNの説明)。書いておくほうが安全です。Pythonでは、行の終わりに ; は、ふつう書きません。

    Q. Pythonで、字下げにタブとスペースを混ぜてもいいですか。

    A. 混ぜないでください。混ぜると、エラー(TabError)になることがあります。スペース4つにそろえるのが基本です(PEP 8)。

    Q. JavaScriptでは、== と === のどちらを使えばいいですか。

    A. ふつうは、=== が安全です。== は、型をそろえてから比べるので、0 と "0" が等しくなるなど、思わぬ結果になります。MDNでも、ほとんどの場合は、== はおすすめされていない、と書かれています。

    Q. 変換プログラムの結果は、そのまま使えますか。

    A. そのままでは使わず、必ず動かして確かめてください。よく使う書き方は直せますが、「動きのちがい」は、印が出ないまま残ることがあります。

    出典

    この記事は、2026年10月28日に、次の資料を確認し、Node.js 22 と Python 3.13 で動かして書きました。

    最終更新:2026年10月28日

    ワールドラジオ

    [説明]世界中のインターネットラジオを、地球儀や地図から国を選んで聴けるプレーヤーです。字幕機能を使うと、初回だけ150MBほどの通信があります。[/説明] 大きい画面で開く WORLD RADIO とは 世界中のインターネットラジオを、地図や地球儀から国を選んで聴...