カテゴリー
ネットのサービス

WashYourLyrics.com – 好きな歌詞で手洗いポスターを作るジェネレーター

Wash Your Lyrics(歌詞を洗おう)は、「正しい手洗いの方法」ポスターの説明文のところに、好きな歌の歌詞を埋め込んだ画像を作ってくれるという謎に満ちたジェネレーターサービスです。

歌のタイトルと歌手名を入力し、石鹸タイプかジェルタイプかを選んでGenerateボタンを押すと、歌詞をどこかから持ってきて(API? 著作権? まあ古い歌やパブリックドメインの歌を指定するのが安全でしょうか)、ポスターの手洗い解説文に差し替えたものを出力してくれます。

ポスターの元は、イギリスのNHS(国民医療サービス)が作成したものです。

ネタ的なサービスですが、twitterでウケて爆発的に広まっているようです。公開2日目には23万枚のポスターが生成されたそう

新型コロナウイルス予防に意外と貢献している可能性もありますね。

カテゴリー
技術

プログラムはロックだ。あるいはロックがプログラムだ。プログラミング言語Rockstar

[2021-12-08 追記] 独自ドメインで言語作者 Dylan Beattie さんによるrockstar の公式サイト ができていますね。

rockstar-js は、Rockstar言語の JavaScript によるトランスパイラ実装です。

Rockstarプログラミング言語とは何か? 言語仕様書にあるように、「1980年代ハードロック・パワーバラードの歌詞に大きく影響を受けた、歌詞として通用するプログラムが書けるようにデザインされた新言語」です。

FizzBuzz の実装は、サンプルコードからたとえばこんな感じになるということで、


Modulus takes Number and Divisor
While Number is as high as Divisor
Put Number minus Divisor into Number
(blank line ending While block)
Give back Number
(blank line ending function declaration)
Limit is 100
Counter is 0
Fizz is 3
Buzz is 5
Until Counter is Limit
Build Counter up

これだと、英語の文章風といってもまだ「あ、プログラミング言語だな。FizzBuzz 書いてるんだな」となりますが、言語仕様を活用してロック風に書いた例では、こんな風になってきます。


Midnight takes your heart and your soul
While your heart is as high as your soul
Put your heart without your soul into your heart

Give back your heart

Desire is a lovestruck ladykiller
My world is nothing
Fire is ice
Hate is water
Until my world is Desire
Build my world up
If Midnight taking my world, Fire is nothing and Midnight taking my world, Hate is nothing
Shout "FizzBuzz!"
Take it to the top


歌詞だと思って訳してみました。

真夜中がお前の心と魂を奪う
お前の心が魂と同じ高みにある時
魂のない心をお前の心に注げ

心を取り戻せ

欲望は恋に落ちた色男
俺の世界には何もない
炎は氷
憎しみは水
俺の世界が欲望ならば
その世界を築きあげろ
真夜中が俺の世界を奪うなら、炎なんてなんでもない
真夜中が俺の世界を奪うなら、憎しみなんてなんでもない
“FizzBuzz!”と叫べ
それを頂へと高めよ

任意の小文字の単語に冠詞や”my”, “your”をつけると変数になるとか、代名詞は直近に定義された変数を参照するというルールに、true/false でなく right/wrong, +/- の演算のエイリアスとして”Build up”/”Knock down”が使えるとか、加減乗を”with”/”without”/”of” でも表せるとか、ドラマティックな歌詞を書けるようにする仕様が用意されています。

たくさん数値が出てくるとロックっぽくないので、数値も任意の単語の語の長さなどで表現できるようになっています。

これで、”boolean heart = true;”みたいな文を、”My heart is true”と書けたり、”int i = 16;”が”Sweet Lucy was a dancer”(a=1, dancer=6 文字で16)と書けたりするわけですね。制御構文も用意されていてループも書けるので、慣れてくれば前述の2つ目のような、実にロックっぽい動くプログラムが書けてしまう、ということ。実際手元で変換したコードが、ちゃんとFizzBuzz として動きました。

rockstar-js は、JavaScript製パーザ・ジェネレータPEG.jsで作られています。言語仕様のメモには「ミートローフの歌詞に意味があるように見えるようなプログラミング言語があったら面白いだろう?」とも有ったので、Meatloaf の曲の歌詞を食わせてみたのですが、I’d の “‘” でパーズエラーになるなど、実際には言語仕様を良く読み込んでかなりの腕前が無いと、ロックの歌詞として読めつつもちゃんと動くプログラムを書くのは難しそうです。

言語仕様の方のリポジトリには、Python インタプリタのプルリクエストも投げられており、Rockstar言語がより多くの環境で使えるようになるかもしれませんね。

求人票に出てくる Rockstar

英語圏のIT業界の求人募集では、「突出した才能を持った人」という意味で、”Wizard”(魔法使い)、”Guru”(導師)らと並んで、”Rockstar”求む、などと書いてることがあります。まあ、使い古されてちょっと飽き飽きされている表現なのかもしれません。実際、向こうの求人サイトを検索してみると、Rockstarたくさん出てきます。何千件も

dylanbeattieさんがRockstarの言語仕様を作って公開した主な動機の一つは、

もし Rockstar を実在する(無意味な)プログラミング言語にできたら、リクルーターや人事マネージャーは二度と「ロックスター・プログラマー求む」って書けないだろう?

だそうです。そんな突出した人材を欲している企業に、この Rockstar 言語を覚えただけの人が求職してきても困るでしょうね。

via Hacker News

カテゴリー
fun

Google翻訳を通した変な訳詞で歌うYouTuber

YouTuber マリンダ・カスリーン・リースさんの人気ネタは、オリジナルの英語歌詞をGoogle翻訳して歌う “Google Translate Sings” シリーズ

Google翻訳で、オリジナルの歌詞を英語⇒他の言語⇒英語⇒他の言語⇒英語… と繰り返し翻訳させることで、元のとは異なる英語の歌詞ができあがります。

最初に注目されたのがディズニーアニメ「アナと雪の女王」から「ありのままで」

サビの”Let it go”(好きにすればいい)が、”Give up”(あきらめろ)になっています。まあ逆の意味というほど違うわけではないんですが、ディズニーで”Give up”を連呼する歌ってのもね。

“A kingdom of isolation, and it looks like I’m the Queen.”(孤立した王国、私はその女王のよう)が、”Discrimination law is probably the Queen.”(反差別法はおそらく女王だ)となったり。

意味が変わってしまうところもあれば、元の歌詞の意味は残しているのに表現がちっとも詩的じゃなくなっていて笑えてしまうというところも。

ミュージカル「オペラ座の怪人」のテーマ

最初の動画ではオリジナル画像をそのまま差し込んでましたが、こちらはミュージカルをちゃんと再現しようとしています。また、画面の上端にオリジナルの歌詞も載せているので、その場でどう変わったかが確認できるようになりました。

サビの「オペラ座の怪人はそこ、心の中に居る」が”Audio Combination of Opera here the ghost”(オペラ座の音声の組み合わせはここ幽霊)に。

クイーンの「ボヘミアン・ラプソディ」

元々わかりにく歌詞だけに翻訳後はおかしな箇所が多いです。

”Anyway the wind blows”(どのみち風は吹く)が”Panda blowing you say”(パンダが爆発するとあなたは言う)に。そのパンダどこから来たん?

そして”Nothing really matters”(どうでもいい)は”Nothing really ATM”に。

ご本人の説明

変になった歌詞はもちろんですが、歌唱力、変な歌を顔色も変えずに歌う点、オリジナル曲の動画再現、なども評価されているようです。日本の歌でも同じようにやると面白いかもしれないですね。

翻訳サービスが更に賢くなれば、英語の歌詞を入れて日本語に翻訳したら、自分で訳さずに公式の日本語訳の歌詞を見つけてきて出すようになるのではないかと思います。そうなってしまうとこの遊びはできなくなってしまいますね。