ラベル JavaScript の投稿を表示しています。 すべての投稿を表示
ラベル JavaScript の投稿を表示しています。 すべての投稿を表示

2022年4月18日月曜日

おためし!リアルタイム音声認識

9ヶ月の沈黙

技術書典12は結婚直後のごたごたもあり、本を出さないことは早々に決めていました。
しかし本を出さなかったのは、結婚だけが理由ではありませんでした。

そう!技術書典11で出した「おためし!リアルタイム音声認識」は、商業版として生まれ変わったのです。
表紙のイラストはジェームスさんに描いていただきました。

簡単にどんな本なのか紹介させてください。


4種類の音声認識

同人版ではAmazon Transcribeという音声認識をリアルタイムで試してみようという内容でした。
しかしこれは想定していた内容の一部で、本当は複数の音声認識を試せるようにしたかったのです。

そこで商業版では、本来試したかった音声認識をすべて試せるように加筆を行いました。
以下の音声認識を試せるようになっています。

  • Amazon Transcribe
  • Google ChromeのWeb Speech API
  • Microsoft Azureの音声サービス
  • AmiVoice Cloud Platform

まあGoogle Cloudを試せなかったのは心残りですが、あれはWebブラウザで動かすには制約が大きすぎるのでどうにもならなそうです。


音声認識の四重奏

そしてサンプルでは、これらすべての音声認識を同時に動かせるように実装しました。
実用面の意味はありませんが、音声認識の比較をするにはインパクト大です。

音声認識の比較って、同じ音声ファイルを使った比較はあっても、リアルタイムで比較をした例が地味に無いんですよね。
でもバッチ処理で音声認識させるのとリアルタイムに音声認識させるのでは許容される処理時間が全然違いますし、手軽に比較できるのは価値があるんじゃないでしょうか。


音声認識をもっと身近に

音声認識を手軽に動かせるようになれば、今まで無かった新しいサービスが生み出されるかもしれません。
もし音声認識に興味があれば、本書を買うまではいかずとも、ぜひいずれかの音声認識を試してみてください。

次世代の音声認識サービスを生み出すのは君だ!

2015年3月11日水曜日

副作用が無いとはどういうことか

関数型言語の説明の中には、
副作用が無かったり、あったとしても限定的だったりという話が出てきます。

2014年11月6日木曜日

ループをmapにしよう

ちょっと仕事で書いたソースコードの一部を貼り付けます。

JavaScriptでmapを使った例です。

2014年6月18日水曜日

プログラムの難しさの階層の答え

きしだのはてなの記事を見て、
回答を書きたくなったのでそっと書いてみることにしました。

実際に回答してもらう問題じゃないということなので、
こちらもゆるい感じに解いていきます。

2012年9月6日木曜日

FizzBuzzの亜種問題を解く

White scenery @showyouに掲載されていた問題を解いてみることにしました。

邪法なのでこれから解こうという人の参考にはならないと思います。



問1の解答


JavaScriptで解きました。

この手の問題では手垢のついた方法ですが、
正規表現を使っています。

4の倍数、100の倍数、400の倍数は、
実は正規表現に有利だったりします。
※おそらく最悪なのは7の倍数とかかな?

しかし通常の方法とは違い、
4桁年までしかサポートしていない欠点を持っています。

まあ頑張ればそこも直せるでしょうけど、
もうめどいんでいいです。



問2の解答


Javaで解きました。

Java6から和暦をサポートしているので、
それさえ知っていれば赤子の手をひねるようなものです。

と言っても、
これはバージョン2だったりします。

最初のバージョンは日単位でループさせていたのですが、
デバッグ中にDAY_OF_YEARの仕様に気がついて年単位に修正しました。

その結果、
なんとif文が登場しないソースコードになりました。

え、卑怯?
車輪の再発明を防いだと言ってくださいよ。



こういう風にプライベートでも前向きにプログラミングに望める人なら、
才能は無くても上達できる可能性はあると思います。

…それが3分なのか3000時間なのかは分かりませんけどね。


2012年4月11日水曜日

JavaScriptはクロージャが使えてからがスタート

いや、単純にクロージャの基本を使うことになっただけですけど。

どう考えても、
JavaScriptはクロージャを使うことが前提になっているように思えます。

というか、
できないと詰むような処理が多い気がします。

個人的には関数型言語の基礎をWebサイト制作で学べるなんて、
何ともありがたい話です。

でも逆に考えると、
これって初心者バイバイになっているような…

でも利用者数を考えるとそうでもないような…

もしかして、
意味も分からないでサンプルコードをコピーしていたり?

いやいや~

2012年4月4日水曜日

jQueryを軽く触ってみた

普段は基本を学ぶ為にライブラリなしから始めるんですが、
ちょっと急ぎだったためにjQueryでAjaxを組んでみました。

ほほ~、こりゃ楽だ。
やりたいことの上位陣が軒並みメソッドで用意されている。
※postJSONは無かったけど、重要な(ry

少なくとも、jQueryの範囲では全然つまずかない。
サーバー側は適当にJSON返させとけばいいですし。

これで単純なMVCだと表示に10秒(笑)かかっていたのが、
1秒以下のレスポンスに改善されました。
(遅い部分は後からAjaxで表示させています。)

確かにAjaxは素晴らしいです。
素晴らしいんですが…デフォルトで jQuery並に使いやすくして欲しいとも思いました。

2011年11月30日水曜日

Ajaxの恩恵

こうしてBloggerでブログを書いたり、
Stackoverflowで回答を書いていたりすると、
AjaxがどれだけWWWのユーザビリティを向上させたか実感できます。

特に感じるのは自動セーブ機能です。

うっかりブラウザを閉じてしまっても、
数分前までならしっかり覚えてくれています。

まだまだWWW全体に浸透しているとはいえませんが、
その力は強力無比。

一度体験すると、
JavaScriptをオフにすることがもはやあり得ないと分かります。

そのうちページ遷移がレガシーと化す日も来るのかもしれません。

大丈夫?Web開発者?

2011年8月4日木曜日

音声ファイル配列の連続再生

ちょっと仕事で必要だったので組むことになりました。
HTML5をターゲットにしているので、FirefoxかChromeでないと動かないでしょう。
やっぱJavaScriptはクロージャが分からないとだめか~


2011年7月13日水曜日

カレンダー入力をしよう♪

JKL.Calendarを改造したので公開してみました。

基本的な使い方は変わらないですが、
時分秒も入力できるようになっています。

後は個人的な好みで初期設定が白黒ベースのカラーリングです。

まあ適当品なんでバグはあるでしょうが、
おんなじことをしたい物好きへの助けくらいにはなるでしょう。

jkl-calendar-with-time.js
※修正BSDライセンスになります。

ああ、スピンボタンの押しっぱなしはめんどくさくて実装していません。
ごめんね?

というわけでもう寝る。