JavaでWAVファイル読み込み
久しぶりに時間が出来たので
音声ファイルを触ってみます。
フォーマットの確認
とりあえずwindows7のログオンの時の音を読み込んでみる
AudioInputStream input = AudioSystem.getAudioInputStream(file);
AudioFormat format = input.getFormat();
でフォーマットを取れるので
これをこんな関数に入れてみる。
public static String getFormatString(AudioFormat format) {
StringBuilder sb = new StringBuilder();
sb.append("[AudioFormat] frameSize:" + format.getFrameSize() + "byte");
sb.append(" Fs:" + format.getSampleRate() + "Hz");
sb.append(" " + format.getSampleSizeInBits() + "bit");
sb.append(" " + format.getChannels() + "ch");
if (format.isBigEndian()) {
sb.append(" BigEndian");
} else {
sb.append(" LittleEndian");
}
if (format.getEncoding() == AudioFormat.Encoding.PCM_SIGNED) {
sb.append(" SignedPCM");
} else if (format.getEncoding() == AudioFormat.Encoding.PCM_UNSIGNED) {
sb.append(" UnsignedPCM");
} else {
sb.append(" NoPCM");
}
return sb.toString();
}
[AudioFormat] frameSize:4byte Fs:44100.0Hz 16bit 2ch LittleEndian SignedPCM
これがWindowsの標準フォーマットらしい。
CDから取り込んだwavファイルも同じ結果になったので
CDと同じフォーマットを使っているようです。
サンプルデータ
普通の音声データだと正しく読み込めたかわからないので
を使って0dBのサイン派を作ってそれを読み込みます。
コード
javaのintは4byteですが
サンプリングデータは16bitなので2byte
この変換がめんどくさいですが試行錯誤の末下記になりました。
public void readWavFile(File f) {
try {
AudioInputStream input = AudioSystem.getAudioInputStream(f);
AudioFormat format = input.getFormat();
BufferedInputStream bufInput = new BufferedInputStream(input);
byte frameBuf = new byte[format.getFrameSize()];
int sampleSizeInBytes = format.getSampleSizeInBits() / 8;
int chCount = format.getChannels();
byte buf = new byte[BYTE_LENGTH_OF_INT];
ByteBuffer bb;
ByteOrder order;
if (format.isBigEndian()) {
order = ByteOrder.BIG_ENDIAN;
} else {
order = ByteOrder.LITTLE_ENDIAN;
}
int offset = BYTE_LENGTH_OF_INT - sampleSizeInBytes;
int shift = BYTE_LENGTH_OF_INT * 8 - format.getSampleSizeInBits();
int count = 0;
int value = 0;
while (bufInput.read(frameBuf) > 0) {
for (int ch = 0; ch < chCount; ch++) {
for (int i = 0; i < sampleSizeInBytes; i++) {
buf[offset + i] = frameBuf[ch * sampleSizeInBytes + i];
}
bb = ByteBuffer.wrap(buf);
bb.order(order);
value = bb.getInt() >> shift;
if (ch == 0 && count < 100) {
System.out.println(value);
count++;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
でてきた出力をエクセルに貼り付けると
1kHzの信号で44.1kHzのFsなので1周期は44サンプル
16bitなのでピーク値は2^15-1=32767
というのが期待値ですが
こんな感じになっているのでちゃんと読めているように見えます。
BIgEndianのファイルがないのでそれは出来ているか確認できないのと
サンプル精度が8bitの倍数でないとおかしなことになりますが
16bitと24bitくらいしか目にしないので
とりあえずあとにします。
日本の人口
少子高齢化といわれていますが
あまり実感がわかないのでちょっと確認してみます
データはこちらからもらいました。
書けって書いてあるのでこれも表記しておきましょう
出典 総務省統計局「日本の統計 2014」
ぐぐれば表はいくらでも出てきますが
恐らくソースはここが多いのでは?
総人口の推移
まずはグラフ。
ピークは2008年の12808万人
約30年後の2045年には10221万人なので思ったより減ってませんが
約50年後の2065年には8136万人。
運がよければ生きていますがその間に人口が約2/3になるっていうのは
ちょっと衝撃的。
年齢別人口
でもまー人口そのものなんてそんなに問題じゃなくて
怖いのはこれ。
データはもともと
普通15歳以下、65歳以上、その間の3つに分かれていたのですが
働く人とそれ以外って意味で15歳以下+65歳以上ってのを足してみました。
約30年後には働ける年齢の人と養われる人の数がだいたい同じくらい。
年齢だけで分けたデータなので
もし奥さんが専業だったら自分一人の収入で
4人の生活を支えないといけないっていうことです。
当然そのような社会情勢であれば年金なんか
ほとんど期待できないでしょう。
雑感
収入も全体的には下がっていきそうなので
将来どうなるかかなり心配。
とはいうものの
そこまで悲観的になることもなく
労働力の一部はロボットに置き換わるだろうし
女性も男性と変わらない意識で働くようになるだろうし
高齢者が働くのも一般的になるでしょう。
なにも対策しないとだめってことですね。
データ
つけておきます。
ここからエクセルがダウンロードできるので
それをグラフにしただけです。
事業規模別の収入の違い
お金の話ばっかり書いてますが
これを海外のデータと比べて見たいのでまずは日本のデータを羅列。
海外やる前に飽きそうな不安。
例によって情報ソースはこちら
大企業は高収入なのか
結果は明らかなのでまずはグラフを2つ
企業規模が大きいほど収入が高い。
まとめ
5000人以上の大企業は30人以下の中小企業と比べて
平均で150万、男性は200万ほど収入が高い
女性はそれほど変わらない。
雑感
収入だけを目安にするなら大企業に就職したほうが有利そうです。
平均で見ると差がありますが
女性も男性と同じ職種で入社すれば傾向は同じでしょう。
能力そのものよりは業種や規模含めて
入った会社で収入が決まるような気がしています。
いくつか日本の収入データについて書きましたが
ちょっと検索すればこんなデータを可視化した記事はいくらでもあります。
自分でやってみないと実感としてなかなか頭に入らないので
今回はエクセルで自分の見たいものを図にしてみました。
会社もいつ何があるかわからないので
実情はどんなものか知っておきたかったのですが
特に事業規模と男女の差が予想以上でした。
アジアの中では恐らく1番か2番くらいに日本の収入は高いので
今後も仕事の海外シフトは引き続き進むでしょう。
雇用も収入も減る傾向は止められない中で
どうやったらそれなりに幸せに生きていけるのか。
勝ち逃げできるだけの能力も資産もないですが
できれば苦労せず楽しくやっていきたい。
どうしたらよいものか。
年齢別収入の推移
を確認したので
今度は年齢別に見てみます。
データは前回同様
ここから持ってきたデータをグラフにしただけです。
2012年時点での平均値は
全体平均408万円 男性502万円 女性268万円
じゃあ40歳になったらいくらもらえるの?
親父のころはどうだったの?
という疑問を確認してみます。
全体平均は30年でどう変わったか
ちなみに全体の平均年収は
1982年 320万円
1992年 455万円
2002年 448万円
2012年 408万円
で1997年の467万円をピークに現在は下がっています。
1992年から比べると勤続年数が上がっても収入が増えなくなっています。
1992年は 22歳入社で280万円 → 55歳で550万円
2012年は 22歳入社で240万円 → 55歳で490万円
というのがモデルケース。
昔はよかったらしいという情報は正しいようです。
毎年50万くらい違うと40年で2000万くらい。
うらやましい。
男女での比較
男女でも見てみます。
ピーク近くの20年間と比較
女性はほとんど変わっていないことがわかります。
つまり全体の差はほぼ男性の収入減によるもの。
雑感
2012年では
男性は30から50で200万上がっているので
年昇給20万といいたいところですが
われわれの20年後がどうなっているかはまた別の問題です。
女性は昇給しないのではなくやめて別の仕事に就く人が多いのでしょうか?
また25歳以下での給料の差は大卒が増えたからかもしれません。
現在は2曲化して男性同様稼ぐ人と家事メインでパートみたいな人がいるので
このグラフは男性の形に多少近づいていくのではないでしょうか?
まとめ
男性は年齢に従って昇給 30歳の370万からざっくり1年20万
女性は年齢にかかわらず270万くらい
収入分布の推移
前回平均収入の推移を見てみたので
今度は分布を見てみます。
今回も1世代前、父親世代との比較ということで
30年を目安とします。
データの出展は国税庁。
収入の分布データを割合に直して見ました。
全体平均
30年前は300万円以下が約26%で700万円以上の人はほとんどいませんでした。
20年前からはそれほど変化がありませんが最新の青いグラフは
10年前の赤い部ラフに比べて100~300万円の人が増える一方
500万円以上の範囲で1~2%程度下がっています。
400万円以下の人は2002年で52% 2012年で59%です。
ちなみに600万円以上は
2002年で22%、2012年で17%となったようです。
ここ10年で給料が下がったのは気のせいじゃないみたいです。
男女別の分布
男性は400万、女性は200万円くらいがピーク値です。
男性は600万円以上の人が全体的に1~2%下がっていて
400万円以下の人が増えています。
女性は250万くらいにピーク値があったのが200万くらいに移動しました。
稼ぐ女性が増えたという認識があったのですがそれは誤りで
10年前から減っていないだけで増えてもいないようです。
減っていないので相対的に増えているとも言えるかもしれません。
2012年時点で
400万円以下は 男性43% 女性 82%
600万円以上は 男性26% 女性 4.8%
雑感
親世代より額面は上がっている
10年前より給料は下がった
女性は収入が低い人が多い。
主となる収入を夫が、家事を妻がというモデルがあることを考えると
低収入=貧困というわけでもないと思いますが
女性が一人で生活を成り立たせるのはやはり厳しそうです。
平均年収の推移
研修で調べ物をしてるついでにいろいろ気になったので
気になったものを調べて見ることに。
情報ソース
割と国の機関で情報を公開してるのですが
一応ここが窓口になっている模様。
平均年収はここ30年でどう変わったか
まずは国内の平均年収
複数の機関で同じようなことを調べているみたいですが
とりあえず使いやすそうなのはここ
確かに税金取るためには把握してるはずですよね。
過去30年分
ピーク値との比較
収入は下がったと言われていますが思ったより変化なし。
1997年のピーク値467万円から2012年で408万円になっているので
13%程度の下落があります。
額面で見るとバブルの平均600万くらいのイメージだったので
思ったより下がっていませんでした。
ただ多くの家庭で10%下がったということは生活を変えていなければ
貯蓄はできなくなっているのではないでしょうか?
親世代との比較
上昇していく経済で働くことが楽しかったであろう親世代との比較。
1世代30年として30年前の1982年は320万円だったものが
2012年で408万円になっているので平均収入としては27%の上昇。
物価も上がっているのでそのまま豊かさではないものの
親世代よりは経済的に余裕がありそう。
ただあがっていくか下がっていくかでのモチベーションはかなり違いますよね。
ちなみにこの平均は1年以上勤務している人のデータなので
就職難などの条件は含まれていません。
悪くなければ就職できた時代から良くないと苦しい時代になったので
そのあたりは厳しいところ。
男女間の差
2012年の平均408万に対して
男性平均502万、女性平均268万
ただこれはパートのおばちゃんとか一般職の人が入っているので
そのあたりの差が出ているような気がします。
それでも思った以上の差。
男性は給料の低い仕事で家計の補助約に回ることが少ないので
収入の少ない人があまりいないのかもしれません。
意識の差もあるとは思いますがデータを見て海外から批判を受けるのは
仕方ないのかもしれないですね。
あと女性の平均は景気に左右されない感じ。
男性は2009年の567万がピークだったので
都市部であれば600万程度だったのでしょう。
一番良い頃は年収600はリアルに平均だったんですね。
まとめ
2012年時点での平均値は
全体平均408万円 男性502万円 女性268万円
男性のピークは2009年の567万
雑感
飽きたのと仕事が忙しくなったので
しばらく放置でしたが
研修でいろいろ調べてていたところ
割といろいろなデータが公開されていることを知りました。
面白いのでちょっとこのあたりを調べながら
書いておこうと思います。
最近はパズドラもツムツムも飽きてしまったので
モーターストームRCを思い出したようにやっています
1500円の割りにわりとよくできてる。
なかなか難しい。
あと友達にIngressというアプリを教わったのではじめて見ました。
GPSを使った陣取りゲームっぽい感じですが
さっぱりわかりません。
眠ったままのPS4を使いたいのですが
やりたいソフトがないのでもうしばらく眠らせておきます。
Plusの課金がもったいない・・・