MediaRecorderを使って音声録音したら再生時間が取れなかった件
はじめに
IPFactory Advent Calendar 2019 12日目の記事です。
インターン先で、ブラウザで音声入力からの音声解析してチャットボットぽいものを作る機会がありました。 その際、ブラウザでの音声入力で詰まった点があったので適当に書く予定です。
一応言っておきますが、全てPC版のChromeで試しています。Firefox等他のブラウザでは一切試していないのであしからず。
MediaRecorderを使ってサクッと音声録音してみよう
まず、ブラウザで音声入力をするにはどうすればいいだろうか?
調べてみたところWebRTCという技術があり、getUserMedia
とMediaRecorder
というものを使えば楽に音声入力が実現できそうでした。
ということでサクッとJSから音声録音を実現するために書いたコードが以下のものとなっています。
デモページも用意しました。下記リンクに飛べば実際に録音して、再生、ダウンロードを試すことができます。
録音ボタンを押すと録音が開始されますが、その際ブラウザからマイクの許可が求められます。
ソースコード内のコメントでも書いてあるが、MediaRecorderではwebmしか使えないらしい。 webmとはGoogleが開発しているフリーのメディアフォーマット。
今回はwavを使いたかったのでそれも後ほど解決します。
動画長さが存在しない
さて、上記のデモを試してみたらわかるが、この録音した音声データには再生時間が存在していません。
> ffprobe test.webm -hide_banner Input #0, matroska,webm, from 'test.webm': Metadata: encoder : Chrome Duration: N/A, start: 0.000000, bitrate: N/A
色々と調べてみたところ、これはChromeのバグとして報告されていました。
ですが、WontFixとなっています。
上記Issueにも書いてある通り、W3Cの方のIssueにも上がっていました。
ということでこれはバグと言うより仕様みたいです。
webmではなくwavで保存し、動画長さを追加する。
色々と試してみた結果、解決するために実際にやったのはファイルヘッダを書き換えてwavにするという方法です。
コードを見てもらったほうがわかりやすいと思うので、下記にGitHubへのリンクを張っておきます。
デモページ
wavで保存され再生時間も取れているのがわかる。
> ffprobe.exe test.wav -hide_banner Input #0, wav, from 'test.wav': Duration: 00:00:10.77, bitrate: 705 kb/s Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 1 channels, s16, 705 kb/s
この方法の何が嬉しいかというと、wavにできること、追加でライブラリがいらないことなどですかね。
ということでコードの説明を軽くします。
// TODO 後で書く
参考
ユーザーから音声データを取得する | Web | Google Developers
GitHub - grishkovelli/vue-audio-recorder: A simple audio recorder for VueJS applications
情報処理安全確保支援士試験に合格した話
はじめに
4月に実施された平成31年春季情報処理安全確保支援士試験に受験し、無事合格することができました。
自己採点では合格できるか半々だったのでなんとか合格点いってくれて安堵してます。
やった勉強とか、てきとうに何か書いていきます。
20190711追記
合格証書届いた、うぇい。
うぇーい!
— mnao305 (@mnao_305) 2019年7月11日
情報の処理を安全確保する系資格の合格証書届いたぜい! pic.twitter.com/zU1eZFojGO
情報処理安全確保支援士試験とは?
情報処理安全確保支援士試験(略号:SC)は、情報セキュリティスペシャリスト試験の後継となる試験で情報セキュリティに関する高度な知識・技能(スキルレベル4)を認定する試験である。
暗号化技術やサイバー攻撃対策といった情報セキュリティの一般知識に加えて、セキュアプログラミング、ネットワークといった要素技術も問われる。試験の水準は高く、情報セキュリティに関する資格試験では国内最難関にあたり、実務経験者であっても合格するのは難しい試験として広く認知されている。
Wikipediaより引用
上記の通り情報処理技術者試験の区分の中で一番上のレベル4の高度試験に属する資格です。合格率は17%ほど。
前は「情報セキュリティスペシャリスト試験」と言われていたものです。
初めて合格したレベル4の試験。正直とても嬉しい。
だが、安全確保支援士と名乗るためには登録しないといけないが、登録料も更新料も高いので学生には厳しい。
会社がお金出してくれるとかない限り登録することはないと思う。
全体を通しての勉強法
- 作者: 上原孝之
- 出版社/メーカー: 翔泳社
- 発売日: 2018/11/19
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
まず、全体的にセキュリティの知識を身に着けようとこの本を購入。(なお、半分までしか読んでない模様)
ポケットスタディ 情報処理安全確保支援士 (情報処理技術者試験)
- 作者: 村山直紀
- 出版社/メーカー: 秀和システム
- 発売日: 2017/03/25
- メディア: 単行本
- この商品を含むブログ (2件) を見る
試験が近づいてきた頃は、この本で急いで知識のインプット+午後試験での出題パターンの確認などをしてました。
午前試験へ向けてやった勉強
午前1は前回応用情報を取ったので免除でした。
午前2対策の方は過去問道場を無限にやっていました。
間違えた問題を見れたり、正答率が確認できたりと便利。
とりあえず正答率8,9割取れてれば安心かなと言う感じ。
午後試験へ向けてやった勉強
無限に過去問を解いて問題になれる、と最初の方は思っていたけど結局解いた過去問は2,3回ほど。正直問題を読むのがかなり面倒くさい。
Twitterの140文字お気持ちついですらクソ長い…と思ったりするのに、何ページにもわたる文章を読むのなんか無理である。
とりあえず上で上げた本読んで知識吸収すればいいんでないかなという感じ。
- 作者: 村山直紀
- 出版社/メーカー: 村山直紀
- 発売日: 2019/04/06
- メディア: Kindle版
- この商品を含むブログを見る
あと、これを直前に読んだりした。
いい勉強法があるのなら知りたい
終わりに
特に書くことがないのでこんなもので。
やったー!!!!!!
— mnao305 (@mnao_305) 2019年6月21日
情報処理安全確保支援士試験、なんとか合格できました!!!!!!
基本情報、応用情報と一発合格できなかったけど、登録セキスペにてついに一発合格できてとても嬉しい… pic.twitter.com/K5nj7JiZv4
とりあえず、なんとか一発合格できてよかったという気持ち。
だけど、点数からも分かる通り知識がしっかりと身についたとは言えないので復習しなくては。
次回はネスペを受けようかな。