2015年1月13日火曜日

[語学学習]カタカナ英語脳から脱却するための音楽3曲 - 口を楽器と考えよう

はじめに


カタカナ英語が染み付いた人が、ネイティブの英語を聞き取るのは至難の業です。

何かしらの音は聞き取れているはずですが、
音にマッチする「カタカナ英語」が見つからない、
そのために意味が取れず、「聞き取れない」と思いがちです。

たとえば "What are you ..." を「ホワット アー ユー」と思っているので、
ネイティブが「ワタユ」と発音すると、聞き取れない、というものです。

私は「聞こえる通りに聞く」というアドバイスを聞いたことがありますが、
言うは易く行うは難しでした。
どうしても頭の中でカタカナ英語が割り込んできます。

この癖を抜くにはどうすればいいか、と試行錯誤した結果、
音楽を活用すると比較的うまく行きました。

というわけで、以下では
カタカナ英語脳をアンインストールするために役立った音楽3曲を紹介します。

その音楽しか駄目というわけではなく、
同じ特徴を持つものなら自分の好きな音楽に置き換えても問題ありません。

1. Adiemus "Beyond the century"




昔、NHK「映像の20世紀」に使われていた曲なので
聞いたことがある人もいるかと思います。

1曲目の特徴は歌詞に意味がない歌です。

歌詞が何語で何を言っているのか、を調べたところ、
アディエマス語という架空の言語だということが分かりました。

アディエマス語辞典はないので意味を調べようがありません。

この「意味のない」曲を聞いていて気づいたのは、
人間の声は楽器のひとつであるということでした。

アカペラや動物の鳴き真似をはじめとして、
自分の口は日本語を話すだけでなく、いろんな種類の音を出せる、という、
文章にしてみれば至極当たり前のことでした。

2. Loituma "Ievan Polkka"




「ネギ回し」ネタに使われて有名になった曲です。

2曲目の特徴は日本語でも英語でもない歌です。
英語だと無意識に意味を取ろうとして耳の訓練の邪魔になるので、
習ったことのない言語の曲を使います。

この曲、序盤と終盤はフィンランドの方言で歌われています。
中盤は何か言っているように聞こえますが、特に意味はありません。

ネットを探せばカタカナで書かれた空耳歌詞カードが見つかりますが、見ないようにしましょう。
自分で歌詞カード作るのもやめましょう。
耳の訓練の邪魔になるからです。

私の場合、歌詞カードの文字を見ると、文字を映像として覚えてしまって
それを無意識に頭の中で読み上げてしまうので、
ちゃんと聞かなくなるように思えます。

たとえば、ある外国の歌を歌詞なしで聞いただけでは特に何も思わなかったのに、
空耳の歌詞を見ながら聞いたら大爆笑した、という経験がありました。
つまり、耳から聞いた音声は、目で見た文字に引きずられて変質するということです。

ですので、繰り返しになりますが、
歌詞カードは見ないで純粋に音楽として繰り返し聞くのがおすすめです。

3. BareNaked Ladies "Big Bang Theory theme"




アメリカのコメディー "The Big Bang Theory" の主題歌です。
ちなみにコメディは日本でも日本語吹き替えで TV 放映されたり
DVD 化されたりしています。

最後、3曲目の特徴はめちゃくちゃ早口の英語の歌です。
早口の英語の洋楽を聞く人ならば、
新曲などの歌詞を覚えていない歌でやってみるとよいでしょう。

さきほどの節と同様に、歌詞カードは見ないようにします。
カタカナや英語で歌詞カードを作るのも駄目です。
ひたすら音や彼らの口の動きに集中するのが近道です。

私は最初、欲に負けて歌詞カードを見てしまったのですが、失敗でした。
頑張って早口で読みあげても曲に引き離されてしまいました。
彼らはそれほど頑張っている感じではないのに、です

原因は、ネイティブの彼らが音の結合や省略を頻繁にやっていたことにありました。
省略が起こっている場所に、私は省略なしの言葉を詰め込もうとしていたのです。
道理で置いて行かれるわけです。

これに気づいて歌詞カードを見ないようにし、
彼らの音声のモノマネに専念するようにしました。
すると、少しずつ歌える場所が増えてきました。

時々、聞こえるけどそのまま自分の口で再生できない箇所があったので
楽器の練習のように、口になじむまで練習します。

歌えるようになってから歌詞を確認し、
「ここはこう省略して歌うのか」と学習しています。

さいごに


カタカナ英語の発音はネイティブのそれと乖離していることが多いでしょう。
その状態では、ネイティブが何が言っているのか分からないことが多々あります。

ネイティブの発音を聞き取るためには「カタカナ英語」の発音を一旦忘れ、
ネイティブの音声をそのまま音として受け取る訓練をするのも良いと思います。

例えるならば、文字も読めない小さな子が新しい言葉を覚えるように、
音声をそのままモノマネするのがベストなのでしょう。
しかし、既に文字を知ってしまった人には難しいかもしれません。

このエントリでは、その壁を克服するために、
以下の順序で音楽を聞く訓練法を紹介しました。

    1. 歌詞に意味がない歌
    2. 日本語でも英語でもない歌
    3. めちゃくちゃ早口の英語の歌

外国語のリスニングの際には「言語」という枠で捉えるのではなく、
人間の口を楽器として奏でる「音楽」という、より大きな枠として捉えるほうが
壁がひとつ減らせるのでは、と思います。

2014年12月1日月曜日

食後の眠気には「食べる順番ダイエット」が有効?

最近「食べる順番ダイエット」をやっています.

食事内容は変えなくてもいいので,
食べる順番を野菜・汁物→タンパク質→炭水化物,の順にするというものです.

痩せるのが目的ではありません.
食後の眠気をなんとかしたいと調べていたらこうなりました.

ネットで見かけた情報によると,血糖値が上がりすぎると
インスリンが出すぎてこんどは血糖値が下がりすぎ,
意識が遠のく(眠気として感じる)そうです.

そして,食べる順番ダイエットは,血糖値の急上昇を
避ける効果があると言われています.

半信半疑でやってみたところ,
食後に多少の眠気は感じるものの,
寝落ちしそうなほど酷い眠気がやってくることがなくなりました.

自己暗示なのかもしれませんが,
しばらく続けようと思います.

参考資料: 午後のあの眠気は血糖値が原因だった 心を蝕む低血糖症の怖さ - NAVER まとめ

2014年11月7日金曜日

Galaxy Tab S 10.5 購入時に付属してきたおまけ

SAMSUNG のタブレット Galaxy Tab には
Galaxy gifts と呼ばれるおまけがついてくると聞いていたのですが,
日本語版では何がついてくるのかはよく分かりませんでした.

実際に Galaxy Tab S 10.5 を購入したところ
以下がもらえました.

  • Evernote ポイント 120 ポイント (1年分のプレミアムに相当)
  • Dropbox 48 GB 2年間
  • Hancom Office 3種類 (Hword, Hcell, Hshow)
  • アスファルト8 (レーシングゲーム)
  • 日経新聞 有料購読3ヶ月 (2014/10月末までに申し込みが必要)
Evernote と Dropbox はプレミアム会員だったので,
料金を浮かすことができてよかったです.

SAMSUNG アカウントを登録すると
他にもいろいろアプリがもらえるようですが,
私は今のところ登録していません.

2014年9月28日日曜日

Amazon で買った古本に不具合があったので値引交渉してみた

※具体的な方法だけ知りたい方は後半をご覧ください.

発端


Amazon のマーケットプレイスで「書き込みなし」説明されていた古本を注文したのですが,
届いた本を見たところ,説明に反して書き込みがありました.

マーカーが5行ほど引いてあるページが3ページあるだけだったので,
読む分には大して問題ないのですが,
書き込みがあると分かってたら他の出品者から買ったかも,と思うと
ちょっと嫌な気分でした.

嫌なので返品するか,
返品して買い直すのが面倒なのでこのまま泣き寝入りするか.

「送り返すのは面倒だけど,何らかの対応はしてほしい」
と欲張って考えていた結果,第三の方法を思いつきました.
タイトルにもある通り,値引交渉です.

相手に大量 (10 万冊以上) の取引実績があり,
かつユーザの評価が高かったことも決断の後押しになりました.
おそらく悪質なものではなく単なるミスの可能性が高く,
またトラブルにも慣れていて,丁寧に対応してくれそうだと思えたからです.

# ちなみに購入した本はリファレンス的なものだったので,
# 一度読んでから不具合を理由に返品して後は買い直さない,という
# セコい方法はできません(笑).

提案する値引額の設定


値引額は高いほどこちらには得ですが,
相手から「ダメです,全額返金するので着払いで送り返してください」
と言われると,返送なしで済ませたい目論見が外れてしまうので,
どれくらいの額なら相手が応じてくれそうか,落とし所を考えました.

結論を先に言うと,マーケットプレイスの送料 (257 円) を提案することにしました.
理由は以下のとおりです.

通常の返品処理の場合,
こちらが着払いで送り返すことになるはずです.
その場合,相手は着払い分を負担することになります.

「その金額を配送業者ではなくこちらにください」と言っても
相手はそんなに抵抗ないのでは,と考えました.
払う金額は一緒で,払う先が変わるだけだからです
(返金の際の手数料はかかるかもしれませんが).

着払いの金額は業者や送り方によって変わりますが,
ここは分かりやすく,Amazon のマーケットプレイスで指定されている 257 円に設定しました.

ちなみに郵便の定形外で 250 g 以上を着払いで送る場合は
250 円 + 10 円以上の手数料,と同程度の金額になります.

値引額の上乗せをしない理由


「書き込みのない本と書き込みのある本は
値段が違うのでその差額も加えて請求しては」
と考えた人もいるかもしれませんが,
私はしないことにしました.

Amazon のマーケットプレイスでは,出品数が多い本の場合は,
書き込みなどの本の状態によらず販売額がほとんど変わらないのは珍しくありません.
これはリアルの古本屋ではありえないですが,
マーケットプレイスではよく見かけるケースです.

おそらく,他より 1 円でも安ければ,
状態が良くなくても買う人がそれなりにいるからだと思います.

もちろん,多少高くても美品のほうを求める人はいるでしょうから,
売れやすさは違ってくるはずです.
それを考慮して多少上乗せすることも考えたのですが,
相手がその金額を見てどう考えるか分からなかったので
やや弱気に,上乗せはしないことにしました.

Win-Win の関係


提案を却下されないためのダメ押しとして,
返品ではなく値引にすることで
相手の負担が減ることを主張することにしました.

返品の場合は相手の負担は

・着払の送料の支払い
・返品された本の受け取り,再販売の準備作業

になります.また,相手への文章には書きませんでしたが,懸命な人(業者)なら

・再販売した本が売れず在庫を抱えるリスク
・提案を拒否することでユーザ(私)とトラブルになるリスク

も意識するはずです.

しかし値引であれば

・送料分の値引(返金)

だけで済むはずです.
払う額が同程度ならば,後者が得なのは明らかです.

ちなみに私のほうの負担は

・出品者への連絡
・返品の作業
・別の出品者から本を買い直す

だったのが

・出品者への連絡
・本の書き込みを我慢

になります.
上記に加え,利点として,相場より 250 円前後安く本を買えたことになります.

私としては,良い提案だと思っています.

# 書き込みなしと 250 円のどっちを取るかは
# 各自の価値観によるでしょう.

Amazon での操作の流れ


私は以下のようにしました.
写真の添付は必須ではないのですが,
現物はこうなっていた,という証拠として念のためつけておきました.

・アカウントサービスから「注文履歴」を選択
・「出品者に連絡する」を選択
・Amazon のログイン画面に戻るのでログインすると「出品者に連絡する」の画面が表示される
・「お問い合わせ内容」に「破損または不具合のある商品が届いた」を選択すると入力フォームが表示される
・届いた本の,書き込みがあったページを写真にとってファイル添付(任意.10 MB まで)
・入力フォームに相手へのメッセージを記入
・送信

入力フォームに書いた内容は,控えとして自分のメールアドレスにも届きます.

ちなみに,入力フォームには以下のように書きました.

--------------- ここから ---------------
商品紹介には「中身は書き込み、ヨレ、汚れない状態」とありましたが,
届いた商品に3ページほど書き込み(マーカーでのアンダーライン)を見つけました.
あるページの写真を添付します.

こちらから提案なのですが,
送料 (257円) 分の割引(返金)でなんとかならないでしょうか.

たとえば着払いで返品する場合はそちらがその程度負担することになるでしょうし,
互いに手間が発生するでしょうから.

ご検討よろしくお願いします.
--------------- ここまで ---------------

事実説明,提案がある旨とその内容,提案受け入れによる双方へのメリットの発生,
と,淡々と書いています.

# 文中の「なんとかならないでしょうか」はいまいちな表現ですが,
# これ以上に良い表現が思いつかなかったのでこれで送りました.

提案の結果は


相手からはその日のうちに連絡があり,
あっさり承諾してくれました.

その数時間後,Amazon のシステムから
配送料 (257 円) の返金処理が行われた旨のメールが来ました.
後日,クレジットカードの明細も手続きが行われていました.

というわけで,特に問題もなく,綺麗に終わりました.

さいごに


マーケットプレイスで購入した商品に不具合があるものの,
その商品を使い続けても構わない程度の不具合であるならば,
返品の前に,出品者に値引の交渉を持ちかけるのもありかもしれません.
この手はオークションにも使えるかもしれません.

私は面倒くさがりだったので,一発で交渉を終わらせるべく,やや弱気の提案をしました.
着払いで相手が負担する金額と同程度である,配送料の返金を提案し,
返品の場合よりも手間が減らせるというメリットも主張しました.

今回の場合は成功しましたが,
出品者によっては考えが違うでしょうから,承諾してくれないかもしれませんし,
逆にもっと高額の値引でも受け入れてくれるかもしれません.

ちなみに,
「届いた本に自分で書き込みして不具合を主張したら,古本を安く買える裏技になるのでは」と
邪な考えが浮かぶ人もいるかもしれませんが,それはやめましょう.
Amazon に見つかって制裁を受けても私は知りません.

2014年7月6日日曜日

作業から脱線してネットサーフィンで時間を無駄にしないための小さなコツ

作業中にふと別のことを思いついて調べ物をしていたら,
いつの間にかネットサーフィンになって無駄な時間を過ごしていた,ということがあります.
そうならないように,私は以下の工夫をしています.

調べたいものを思いついたらいきなり調べるのではなく,
ToDo リストに「◯◯について調べる」とメモしてから調べるようにしています.
また,今の作業に関係ない調べ物の場合は,
今の作業が終わってからやるようにします.

私の場合,ToDo リストには
Wunderlist のデスクトップアプリを使っています.
Ctrl + F3 で小さい画面にしておけば邪魔になりません.

一旦 ToDo リストに入れるという一手間をかけることで,
以下のふたつの効用があります.

ひとつは,後で冷静になって見返せることです.
「やっぱり不要なのでやめる」と,無駄な時間を減らせたり,
「重要ではないので後回し」と判断して
優先すべき作業が後回しにならないようにできます.

もうひとつは,「◯◯について調べる」と目の前に明示することで
今の作業内容を意識できることです.
脱線しそうになっても「まてまて,今は◯◯について調べているところじゃないか」と
踏みとどまれる確率が高くなります.

調べ物の最中に興味深いページを見つけることがあるでしょうが,
これもやはり ToDo リストに入れて,
本当に見る必要があるか検討してから見るようにします.

たびたび ToDo リストに戻って仕切りなおす習慣をつけることで,
連鎖的にネットサーフィンしてしまうのを防ぐことができます.

2014年6月15日日曜日

Let's note MX3 のタッチパネルを無効化する

Let's note CF-MX3 はタッチパネル搭載なのですが,
私はほとんど使っていません. 

むしろ,画面を指しながら説明しているときに
うっかり指やペンが触れたりすると画面が遷移したりするので
かえってストレスのもとになっています. 

というわけで Panasonic の FAQ をもとに無効化しました.
Windows7 と Windows8 では方法が違うので,両方載せておきます.
私は Windows7 なのですが,この場合は

「コントロールパネル」
→「ペンとタッチ」
→「タッチ」タブ
→「入力デバイスとして指を使う」のチェックを外す

で出来ました.

2014年5月18日日曜日

[bash] sed だけで 1 次元セルオートマトンを作る

sed コマンドだけで 1 次元セルオートマトンを作るアイデアを
思いついたので、実装してみました。

メインループの中は実質的に sed コマンドしか使っていません。
また、スクリプト全体でも、コマンドは sed, expr, echo の
3 種類だけしか使っていません(for, while などの構文は使っていますが)。

1次元セルオートマトンとは何か、については
セル・オートマトン - Wikipedia の「1次元セル・オートマトン」の項目
をご覧ください。

スクリプト本体と実行方法


スクリプトを示します。
前準備が少し長いですが、
本質は最後のほうの while ループ内です。

#!/bin/bash
# 1D cellular automaton

# rule number
NRULE=90
#NRULE=30
#NRULE=110

# number of generation
NSTEP=300

# half size of width (width = HALFSIZE * 2 + 1)
HALFSIZE=300

# function to repeat string $2 $1 times
rep(){
  n=$1
  s=$2
  ss=""
  i=0
  while [ "$i" != "$n" ]; do
    ss=${ss}${s}
    i=`expr $i + 1`
  done
  echo -n $ss
}

# initial state
zeros=`rep $HALFSIZE 0`
str=$zeros"1"$zeros

next=()
tmp=$NRULE
i=7
while [ "$i" != "-1" ]; do
  next[$i]=`expr 2 + $tmp % 2`
  tmp=`expr $tmp / 2`
  i=`expr $i - 1`
done

# PBM header
echo "P1"
echo `expr $HALFSIZE \* 2 + 1` $NSTEP

# main
istep=0
while [ "$istep" != "$NSTEP" ]; do

  # output PBM
  echo $str | sed -e "s/\([01]\)/\1 /g"

  # calculate next generation
  str=0${str}0   # 0 is boundary
  for i in 1 2 3; do
    str=`echo $str | sed \
      -e "s/111/11${next[0]}11/g" \
      -e "s/110/11${next[1]}10/g" \
      -e "s/101/10${next[2]}01/g" \
      -e "s/100/10${next[3]}00/g" \
      -e "s/011/01${next[4]}11/g" \
      -e "s/010/01${next[5]}10/g" \
      -e "s/001/00${next[6]}01/g" \
      -e "s/000/00${next[7]}00/g"`
  done
  str=`echo $str | sed -e "s/[01]//g"`
  str=`echo $str | sed -e "s/2/0/g" -e "s/3/1/g"`

  istep=`expr $istep + 1`
done

実行方法ですが、
上記をたとえば cellular_automaton.sh という名前で保存して

    $ ./cellular_automaton.sh > rule090.pbm

と実行します。
私の手元 (CPU: Intel Core i7-3770 @ 3.40GHz, OS: Debian wheezy) では
5 秒弱かかりました。

得られた結果を、pbm 形式をサポートしているビューアで開くと
以下のような絵が見えるはずです。
時間は上から下に流れています。



スクリプト内のルール番号 NRULE を変更すると違う絵が描けます。
ルール番号の数字の意味は最初に示した参考文献のとおりです。

縦の長さは NSTEP、横の長さは HALFSIZE で調節できます。

アルゴリズム解説


本質的な部分だけを再掲します。
入力となる str にはセルの状態を表す文字(ここでは 1 または 0)
がセルの数だけ入っています。

  for i in 1 2 3; do
    str=`echo $str | sed \
      -e "s/111/11${next[0]}11/g" \
      (略)
  done
  str=`echo $str | sed -e "s/[01]//g"`
  str=`echo $str | sed -e "s/2/0/g" -e "s/3/1/g"`

3 行目で 111 を 11${next[0]}11 の 5 文字に変換しています。
${next[0]} には 111 の次の世代の文字が入っています。
本来なら

    s/111/${next[0]}/g

と置換したいところですが、
"111" のいずれの文字もあとから隣のセルが
参照するかもしれないので消せません。

これはどういうことかというと、
例えば ...01110... の並びの場合は
左から 011, 111, 110 の次の世代を計算する必要がありますが、
先に 111 を置換してしまうと、その結果は

    ...0(111 の次の世代の文字)0...

となってしまい,
両脇の 011, 110 の計算ができなくなります。

そこで、両脇のセルが参照できるように
上記のように 5 文字に置換しています。
変換後の 5 文字の意味はそれぞれ

    1 文字目、2 文字目、次の世代の文字、2 文字目、3 文字目

となっています。

このように置換した結果だと

    ...011(111 の次の世代の文字)110...

となるので、011, 110 の計算ができます。

別の変数を用意して、次の世代の文字はそこに格納しておけば
こんな複雑なことはしなくていいのですが、
それだとすっきりと書けない気がしたのでやりませんでした。

for ループを 3 周回しているのは、
sed は 1 回のコマンド内で変換した文字列は再変換しない
仕様になっているためです(でないと無限ループが起こりうる)。

これはたとえば

    $ echo 0000 | sed -e "s/00/0/g"
    00

という結果から確認できます。

先ほど示した
...011(111 の次の世代の文字)110... の結果は、
真ん中の 5 文字が変換済なので、
011, 110 の変換はできません。
ということで、3 文字から 1 文字を計算する
1 次元セルオートマトンを 1 ステップ回すためには
3 周回す必要があります。

このとき、変換前の世代と変換後の世代の文字を混ぜないため、
変換後の文字は 2 または 3 になっています。
これはスクリプト中間あたりの

    next[$i]=`expr 2 + $tmp % 2`

がそれに対応しています。

ループ 3 周を抜けたあとは、
もとが ...01110... の場合だと

    ...01311211310...

となります。新旧世代を塗り分けると

    ...01311211310...

となります。
旧世代が 3 文字続く場所がなくなったので、変換は終わりです
(端付近はこの限りではありません。
なので 4 周以上回すと文字数が保存されないことがあります)。

上記のままだと次の変換ができなくなるので

    str=`echo $str | sed -e "s/[01]//g"`

で旧世代の文字を削除し、

    str=`echo $str | sed -e "s/2/0/g" -e "s/3/1/g"`

で 2 を 0 に、3 を 1 に戻します。