投稿

さようならAndroid JaTTS。ありがとうAndroid JaTTS。

SmartTraining Ver.8.0.12からAndroid JaTTSの対応をやめました。 バージョンアップした人はいきなりN2TTSインストールを求められて「なんじゃこりゃ、元に戻せやゴルァ!」みたいに言わないかと若干心配ではありますが、一応、長い間利用させていただいたAndroid JaTTSへの感謝の意味を込めて、元々の導入の経緯と対応をやめた理由をメモっときます。 ここで言うTTSとはText to Speechのことです。文字列を音声化する機能のことです。 導入の経緯 SmartTrainingをリリースした当時、Androidのバージョンは1.5から1.6に上がったあたりで、ようやくOSがTTSをサポートし始めたころでした。今と違って日本語をサポートしたTTSエンジンは世の中に存在せず、日本語で音声をだそうと思ったら別途独自の仕組みを構築する他手はありませんでした。 そんな時見つけたのが Android JaTTS です。小さなライブラリをインポートするだけで端末に日本語を喋らせることができたのは、当時Android初心者だった自分としては結構衝撃的でした。仕組みとしては文字列を入力としてサーバに送信し、サーバ側で音声合成した結果の音声ファイルをダウンロード、再生という形をとっています。サーバ側は Galatea talk という多数の大学、研究機関が関わった由緒正しいプロジェクトを源流にしています。当時、音声合成エンジンとしてはいくつかありましたが、無料で、面倒な設定不要で使えたという理由で選択しました。 N2TTSの出現 その後、KDDI研究所さんがN2TTSというAndroid標準のTTSに準拠した無料の日本語音声合成エンジンをリリースしました。これは現在でも日本語TTSとして最も有名なものとなっています。 Android JaTTSを利用する上での課題 バッテリー消費が大きい 音声合成をするたびに「リクエスト送信→合成された音声データダウンロード」という手順を踏むのでどうしても通信によるバッテリー消費が避けられません。 サービスの停止 サーバを運営されている方のほうでどれくらい運営コストがかかっているのかはわかりませんが、24時間365日サービスが提供されているわけではありません。時々...

SmartTrainingでPebble対応してみました

イメージ
はじめに 去年Kickstarterで勢いのあった Pebble 。即Backerになりました。 発売されたのは2013年1月くらいでしたが、なんだかんだで発送が遅れて入手できたのが2013年5月。とりあえず使ってみて、今まで使ってきたLiveViewやSmartWatch MN2と違った面でイイ感じだったのでSmartTraining対応してみました。 Androidアプリ WatchApp 忘れても思い出せるようにメモしときます。 ユーザ的観点 抜群のバッテリーの持ちの良さ 今まで使ってきたsmart watchに比べると電池の持ち時間が圧倒的に長いです。 LiveViewとかMN2だと静かになるべく使わないようにしてギリ二日とかだったのが、PebbleだとGmailの通知1日50件くらい発行しても1週間経ってようやくバッテリー警告が出る感じ。警告出てから1日経っても干上がりませんでした。その後は試してないですが。とにかくバッテリー面の運用が楽です。 実用的な液晶 IS03に使われていたメモリ液晶と似たような雰囲気です。白黒しか表現できません。パッと見地味ですが、明るい場所で全く見えないMN2と比べると、直射日光下でもちゃんと見えるので実用的です。暗い場所ではバックライトONで見えるようになります。 不快なリストバンド 他のsmart watchと同様、通気性ゼロのゴム性のバンドです。梅雨時期に付けていると不快感100%です。しかも交換は不可。なんでこういうバンドにしちゃうんでしょうね。まぁ、耐久性は抜群なんだと思いますが。きっとHQのあるカリフォルニアの気候だとこういうバンドでも問題ないんでしょうね。 文字化けするビルトインアプリケーション Phoneからの通知は全体的に豆腐に文字化けします。あとたまに生HTMLが表示されたりします。日本語を含むGmail通知はまともに読めた試しがありません。 開発者的観点 C言語 C言語(C++ではなく)にPebble独自のフレームワークを乗せた感じです。フレームワーク自体はサンプルが少ないながらもリファレンスは充実しているので使いやすいと感じました。また、標準的なC言語ライブラリが全て利用できるわけではありません。例えばmallo...

DialControllerのソースを公開してみた

イメージ
BodyRecorderのために作った、くるくる回したり、上下左右をクリックすることで操作するためのコントローラをライブラリ化して Githubでソースを公開 してみます。 テキストやら背景は一通りコードおよびXMLから変更可能なのでそこそこ汎用的かと思います。欠点は、正方形に近い領域がないと円の半径が確保できないことです。 何かに使えるといいですね。 サンプルのイメージはこんな感じ。

SmartTraining V8テスター募集してみます

読み込み中...

BodyRecorder v1.0.0リリースしました

イメージ
久々に新しいアプリをリリースしました。 https://play.google.com/store/apps/details?id=com.awwa.bodyrecorder BodyRecorderという今のところ体重を記録するだけのアプリです。 体重を記録するアプリなんて腐るほどあり、いまさらなんでこんなもの作るのよ?という感じはありますが、いろいろな事情によりこういった形での公開となりました。 流れとしては、 SmartTrainingの体重編集機能弱いねぇ ちゃんと履歴管理できるようにしたいねぇ SmartTrainingに体重管理機能追加(非公開) SmartTrainingに体重データ同期機能追加(まぁ、動いた) 体重管理とSmartTrainingは機能的に分けた方が広がりがあるんじゃね? 共通ライブラリ部分と、アプリ部分を分離 リリース といった感じの行き当たりばったりで作っていたので体重編集機能追加しようと思ってから半年以上経過しています。まぁ、いいんです。 たいした機能がない割に、今回のアプリで手間がかかった部分としては、 カレンダーコントロール HoneyCombから追加されたCalendarViewをGB以前でも動作するように移植しました 主にはsmoothScroll系のメソッドをコメントアウトしたくらいです 移植したはいいけど、描画動作がもっさりしてイマイチだったので、汎用性を捨てて高速化しました 土日を色分けしたり、画面高さに応じて週高さが決定される部分に最低高さを設けたりと、見た目で気に喰わない部分を修正しました 体重入力インターフェイス オリジナルのiPodのインターフェイスをイメージしたUIを独自で作りました 連続性のある数字の入力するのに最低限の操作で行える方法を目指しました 色々と使いまわせそうなのでソース公開もやってみたいな 2種類のOAuth2実装 ICS以降向けにAccountManager経由でのOAuth2実装 HoneyComb以前向けにWebView経由でのOAuth2実装 セキュリティ的な問題はあるものの、これ以外方法がないのでやむを得ず実装 Google Driveとの同期機能 SmartTrainin...

Google Fusion Tables API v1.0 Tips

※2013/5/3追記 その後気付いた点を追記、編集したTipsのRev2を作りました。 http://www.slideshare.net/awwa500/google-fusion-tables-api-v10-tips-rev2 どうせ見るならこっちの方がよさげです。 ---- Google Fusion Tables API v1.0を使ってみました。そこそこTipsが溜まったのでブログにまとめようと思ったら、勢い余ってスライド作ってしまいました。 http://www.slideshare.net/awwa500/google-fusion-tables-api-v10-tips 発表する場の予定はありませんが、あったら是非ご紹介お願いします。ネタトーク的な感じでならやりたいです。 元々はAndroidアプリでSQLiteとFusion TablesのデータのSynchronizeの仕組みを作成する途中でできた成果物です。なので、Fusion TablesのStylesやらTemplatesやらの機能は含まれていません。そのうちまた踏み抜いたドブ板が溜まってきたらまとめるかもしれません。

2012振り返り

ついこの前2012年年明けたと思って気づいたらもう年末。この時間の流れの速さは異常です。残り少ない人生、多少なりとも振り返りをしておかないと、あっと言う間に終わってしまいそうです。そういうわけで、時間もないのでちゃちゃっと振り返ってみます。 昨年書いたエントリー によると、2012年の目標としては、 ・データのクラウドへの移行 だったようです。 目標は達成しました。SmartTrainingに「同期」機能を盛り込みました。 同期機能は、AndroidアプリケーションのデータをGoogle Fusion Tablesと双方向同期する機能です。個人的にはそれなりに便利になったと思っているのですが、思ったほど利用はされていないようです。というのは、2012/12くらいから、Fusion Tables APIの挙動が変わり、さらにBeta版のAPIが利用できなくなったことにより同期機能が利用できなくなっているにもかかわらず、全く問い合わせが無いためです。設定が深いところにあるので、既存のユーザさんは気付かないんでしょうね。 その他にやったことといえば、 ・ググれカス Plug-in for twiccaのリリース ・SmartWatch MN2対応 ・ACE資格取得 という感じ。 MN2対応を行った2012/5以降、SmartTrainingは大きなリリースは無く、バグ修正を2回ほどやっただけです。それまではほぼ毎週リリースしていたので、開発おわっちゃったんじゃないかというペースですが、そんなことはありません。ActionBarSherlockベースの新UIへの変更に思ったより時間がかかっています。何回か作って気に入らないので作り直したりしています。もうかれこれFragmentを30-40個くらい作っては捨てています。とても仕事じゃできないやり方です。一応、もうほとんど完了してリリースしてもいいレベルまでは来ているのですが、先に述べたFusion Tables APIのDeprecateされたことより、新API対応をする必要が出てきてリリースはもう少し先になりそうです。あと、リリース前にDeploy Gateを使ってテストもやってみたいです。そうこうしているうちに、Android Map API v2が出てきて早く使いたかったり、先延ばしにして...