2019年3月28日木曜日

【Alexa】Blueprintsや定型アクションで、喋らせる文章を区切る方法

【症状】
定型アクションのカスタムおしゃべりや、Blueprintsのスキルで設定した返答で、句読点が読み方に反映されない。2019.3現在、日本語の句読点は無視され、流れるように読んでしまう。
例外として、「は」のあとに読点を入れた場合は少し間を開けてくれる(?詳細不明)

【対策】
半角ピリオドを入れてやればいい。
全角ピリオドやスペース、!、?等はすべて区切りとしては機能しない。

【裏技】
ちなみに、もっと長い待機時間を設定したい場合、半角ピリオドと小さい「っ」を連続で入力すると、無音をキープすることができる。

.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.っ.

ピリオドの連続では無音時間は増えない。「っ」の連続ではちょっと増えるけどコスパが悪い。

【補足】
がっつり自分でスキルを作るなら、
<break time='5s'/>
のような挿入が可能。Blueprintでは無理みたい。

2019年3月14日木曜日

【SESAME・SESAME mini】 GAS から Web API を利用する。(サンプル)

【作成日:2019/3/14】
【更新日:2020/12/20】Google Apps Scriptの新エディタに関する補足を追加。
【更新日:2020/6/16】SESAME3(Sesame OS2)のAPIに対応したバージョンへの案内を追加。

【追記】
※GASがV8対応する前に作ったものですが、動くので更新はしてません。
※SESAME3ではAPIが刷新されたので、この方法は使用できません。新しい方法はこちら

2018年2月24日土曜日

【言語】 日本語の自動詞・他動詞 形におけるルールの研究

【経緯】
外国人の友人が、自動詞と他動詞についてそれぞれの型は覚えているんだけど使う際にどっちがどっちだったかよく忘れてしまうので、法則を探ってみた。(自動詞・他動詞の概念は理解している前提)

一般にはよく、「~を」をつけられる方が他動詞という説明があるが、それを判断するにはどちらが自然かわかっている必要があり、ネイティブ以外にはピンとこないことも多い。そこで、かたち上のルールを探してみるも、少なくともネット上には見つけられなかった上に、「ない」との回答まで。なので、見た目および音声的に分かる規則を独自に研究してみることにした。

その結果わかったこと。(仮説)

【仮説1】

まず、自動詞と他動詞、両方を持っている動詞は、例外を除いて、
  1. 「語幹+aる」、「語幹+oる」は、自動詞
  2. 語幹の後ろにサ行を含むもの(「~す」「~せる」「~する」・サ行型と名付ける)は、他動詞
  3. 「語幹+eる」、「語幹+u」は、中間の性質を持つ

と考えればOK。


※ ここでの語幹とは、自動詞と他動詞で変化しない部分のこととする。

表にしてみると、


より左側にあるほうが自動詞、より右側にある方が他動詞となる。

※ 便宜上、サ行型の「~」は語幹プラスアルファも意味できるものとする。
例:出る(d-eru)/出す(d-asu)の場合、「d-a」までを表す。


例を挙げて確認してみよう。

自動詞/他動詞
集まる/集める:~aる/~eる
変わる/変える:~aる/~eる
出る/出す:~eる/サ行
溶ける/溶かす:~eる/サ行
増える/増やす:~eる/サ行

伸びる/伸ばす:~iる/サ行
落ちる/落とす:~iる/サ行
尽きる/尽くす:~iる/サ行
※ 表を簡易にするため、「~iる」は表には書いていないが、サ行型すなわち他動詞と考えれば良い。

隠れる/隠す:~reる(~eる と同類/サ行
括弧 … 便宜上同類とみなす意。以下同じ。

乗る/乗せる:~ru(~u)/サ行
消える/消す:~ieる(~eる)/サ行
揺れる/揺する OR 揺らす:~eる/サ行
移る/移す:~ru(~u)/サ行
こもる/こめる:~oる/~eる
動く/動かす:~u/サ行
掴まる/掴む :~aる/~u

刺さる/刺す:~aる/~u
合わさる/合わせる:~aる/~eる
※このような語幹にサ行を含む動詞は注意する。(サ行型ではない。)

滅ぶ/滅ぼす:~u/サ行
潤う/潤す:~u/サ行
なくなる/なくす:~naる(~aる)/サ行
積もる/積む:~oる/~u


ただ、実は困ったことがある。

進む/進める:~u/~eる
立つ/立てる:~u/~eる
叶う/叶える:~u/~eる
傾く/傾ける:~u/~eる
付く/付ける:~u/~eる


折れる/折る:~eる/~u
とれる/とる:~eる/~u
割れる/割る:~eる/~u
砕ける/砕く:~eる/~u
焼ける/焼く:~eる/~u
そげる/そぐ:~eる/~u

「~eる」と「~u」は表の同じ位置にあるから、このような動詞は、どちらが自動詞でどちらが他動詞か区別がつかない・・・。

だけど、よく見てみると手がかりが。

れる/折る:~eる/~u
れる/とる:~eる/~u
れる/割る:~eる/~u
れる/破る:~eる/~u
れる/切る:~eる/~u
生まれる/生む:~areる(~eる)/~u

「~eる」が「~れる」になる動詞は、「~u」が他動詞になっている。
例外もあるかもしれないけど。

逆に、「~eる」が「~れる」以外になる動詞は 、大体「~u」が自動詞。

沈む/沈める:~u/~eる
育つ/育てる:~u/~eる
揃う/揃える:~u/~eる
浮かぶ/浮かべる:~u/~eる
捕まる/捕まえる:~ru(~u)/~eる

でもでも、まだ問題がある。

「~く(ぐ)」と
「~ける(げる)」の動詞はどうやって区別する?

傾(かたむ)く/傾ける:~u/~eる
付く/付ける:~u/~eる
退く/退ける:~u/~eる
届く/届ける:~u/~eる
傾(かた)ぐ/傾げる:~u/~eる

砕ける/砕く:~eる/~u
焼ける/焼く:~eる/~u
そげる/そぐ:~eる/~u
抜ける/抜く:~eる/~u
剥(は)げる/剥ぐ:~eる/~u

これは結論から言うと、ひとつひとつ覚えるしかないと思う。
その証拠に

向く/向ける
剥(む)ける/剥く

むく、むける、むける、むく……。
活用も発音もアクセントも、まったく同じ。なのに自動詞・他動詞は逆転してしまうのだ。
仕方がないので、このパターンは地道に覚えてもらおう。
(ただ、すごく感覚的な話で言えば、「~ける(げる)/~く(ぐ)」のタイプは、結構大幅に物の状態が変わってしまうものが多い気がする。ある程度の目安にはなるかも(?))


最後に代表的な例外を載せて終わりとする。

分かれる/分ける:~areる/~eる
聞こえる/聞く:~oeる/~u
見える/見る:~eる/~ru
開(ひら)く/開(ひら)く


↓以下追記。更新版(仮説2)あり↓



【友人から指摘があったので、それに対する回答】

1.例にある「捕まる/捕まえる:~ru(~u)/~eる」って「語幹+aる」じゃない?
→ ごめん、「語幹」の定義について説明がなかったから混乱させた。(追記済み)
ここで言う語幹とは、自動詞と他動詞で変化しない部分のこと。
つまり、「集まる/集める」なら、「atsumaru/atsumeru」。語幹は「atsum」で、「語幹+aru/語幹+eru」となる。
「つかまる/つかまえる」の場合、「tsukamaru/tsukamaeru」。「tsukama」まで同じなので、「語幹+ru/語幹+eru」となる。

2.開くの自動詞は開けるじゃない?
→ 「開(ひら)ける」もたしかにある。「開(ひら)く」も自動詞として使える。特殊。

3.「~れる」は必ず自動詞だったら、最初の表の左側に「~れる」を入れた方がよくない?
→ 「~れる」が必ず自動詞という意味ではなくて、「~eる/~u」の組み合わせの時、「~eる」が「~れる」になる動詞は「~u」が他動詞ということ。
でも言われてみたら、もしかすると「~れる」はいつでも、ほぼ自動詞なのかもしれない。例外として、「入(はい)る/入(い)れる」がある。これを例外とすれば、「~れる」は自動詞として良いかも。

4.乗る/乗せるの「乗る」は「語幹+oる」のパターンだね?
→ これも1.と同じで、「noru/noseruで「no」まで同じだから、「語幹+ru/語幹+seru」。

5.「〜する」は大体自他動詞だね
→ ここでのルールは、冒頭に書いたとおり、自動詞と他動詞それぞれある動詞について、どちらかわからなくなった時のためのものだから、両方同じなら気にしない。
片方が「~する」で、もう片方が違う場合は、「~する」が他動詞と考えて良い。
自他動詞って用語はよく知らないんだけど、たぶん「熟語+する」(勉強する 運転する 等)の場合じゃないかな?


以上をふまえて更新すると、下の表のような仮説がたてられるかも。

【仮説2】


※ 「語幹+seる」(乗せる 等)は、サ行(~せる)としているが、別の解釈として「~eる」の同類とみなし「その他の ~eる」としても支障はない。

※ 例外の「分かれる/分ける:~areる/~eる」について、
「~areる」を「~eる」の同類とみなすと、「~れる」/「~ける」となり、うまく表に適合し、例外ではなくなる。

最後の最後に
改めて言うけれど、これはあくまで自動詞と他動詞が別の型として存在する動詞において有効と思われる相対的な位置であって、たとえば、自動詞のない「忘れる」は問答無用に他動詞である。


以上

2016年10月7日金曜日

【kobo】 cbzをうまくepub化する

環境:Windows10 64bit, kobo glo HD ver.3.19.5761

今まで自炊はcbzを使っていたが、CFWを使わないと著者不明になったり、ページめくりが逆だったり、慣れればどうでもいいことだが、スマートではない運用だった。

何か方法はないかと一念発起して調べてみた結果、問題のないepub化に成功した。
(epub化に際して主に出現しがちな問題は、全画面表示にならないことと、1ページ毎にページリフレッシュされてしまうこと、である)

最も手っ取り早いのは、RcKepubを使う方法だった。目次無しにでき、軽い運用ができそう。

設定を
表示方法:SVG/テキスト同列表示
ファーム:3.19以降
右綴じ
にして、cbzをD&Dで一括で処理できる。

ただ、koboに入れてみると、目次がないことはいいのだが、シークバーも無効になってしまったので、却下。(設定で変えれるのだろうか。よくわからない。割付の設定も意味がなかった。)


【最終型】
AozoraEpub3と、RcKepubと同じ作者の方のAozoraMaxPlusを併用することにした。

バージョンは、AozoraEpub3-1.1.0b46、AozoraMaxPlus ver1.09

※AozoraMaxPlus ver1.10では全画面表示がうまくいかなかった。
AozoraMaxPlusは32bit環境用ということだが、今回の用途では64bit環境でも問題なかった。


【方法】
まず、AozoraEpub3の設定を、
[変換] 
拡張子:kepub.epub
※この時点で固定レイアウトのfxl.kepub.epubを選ぶと、AozoraMaxPlusでうまくいかない
縦書き 
ページ出力:表紙画像OFF
[画像2] 
SVGタグ出力OFF
※この時点で全画面表示用にSVG化すると、AozoraMaxPlusでうまくいかない 
[詳細設定] 
栞用ID 各行に出力ON 

その他任意

として、cbzをD&D。kepub.epubが出力される。


次に、AozoraMaxPlusの設定を、
画像単ページを全画面化ON
画像単ページをテキストモードで表示ON
その他OFF
として、先に出力したkepub.epubをD&D。
ファイルが同名で保存され、もとのファイルはorgとしてバックアップされる。

【注意点】
もとのファイルに","(カンマ)が含まれているとエラーになるため、リネームしておくこと。

複数一括でD&Dした場合、この変換には結構時間がかかる。そのうえ、途中でTEMPファイル削除のウィンドウが勝手に何度も表示されるため、裏で動かしてほかごと(特に文字入力作業)をしていると鬱陶しい。(先にWIndowsのゴミ箱の設定を「削除と同時にファイルを消去する」にしておくと無駄なファイルがゴミ箱内に残らずに済む)

また、RcKepub、AozoraMaxPlusともに、起動するとなぜかWindowsの言語設定が勝手に変更され、英語IMEが有効になる。閉じると直る。日本語、英語以外のIMEを入れていて普段よく切り替えを行う場合、挙動が変わり混乱する。
処理中はPC放置がよい。




【結果】
全画面表示OK
シークバーOK
ページリフレッシュ間隔OK

AozoraEpub3の仕様上、目次が5ページごとについてしまった。
個人的にはなくていいのだが、気にしないことにする。cbzの1ページごとよりはいい。


【蛇足】
ついでに、.kobo\Kobo\Kobo eReader.confの[Reading]に
numPartialUpdatePageTurns=60
と追加してページリフレッシュ間隔を変更した。1~99を設定できるそう。

【Android 6.0】 arrows M03 でmicroSDカードを内部ストレージ化する

【結果】
うまく行った。ネット記事に散見されるおかしな容量表示にもならなかった。




【過程】
方法はすでに多くあがっているので、
「android6.0 sdカード 内部ストレージ化 adb.exe」
などで検索したら出てくる。

流れを要約すると、

  1. PCにAndroid SDKをインストール(使うのはplatform-toolsフォルダのadb.exe)し、スマホを「開発者オプション」から「デバッグモード」にして、PCと接続。(開発者オプションが出てない場合はビルド番号連打)
  2. PATHを通すとかは面倒なので、adb.exeのあるフォルダからコマンドプロンプトを開く。(エクスプローラーでadb.exeのあるフォルダを開き、パスの部分(アドレスバー)を空白にして、「cmd」と入力後、Enter)
  3. 以下のコマンドを入力
    adb shell
    sm list-disks
    sm partition disk:[※list-disksコマンドで示された数値] private
    ※当環境では179,64だった。(sm partition disk:179,64 private)
  4. 少し待って、最後が$マークの行が出たら完了。デバッグモードをオフにする。
容量表示が変になるという記事ばかりだったから恐る恐るだったが、拍子抜けするほど簡単に成功した。早くやればよかった。

以降、インストールするアプリはデフォルトでSDカードに保存される。(SDに保存できないアプリを除く)

既存のアプリを移動させるには、設定の「端末管理」→「アプリケーション」から、任意のアプリを選択し、「SDカードと保存領域」をタップ。
移動可能なアプリなら、「使用されているストレージ」という項目があり、変更が可能。

※ただ、Evernoteが、移動可能にもかかわらず移動するとデータベースエラーが出て、内部メモリに戻しても直らなかったため、再インストールした。他のアプリは分からないが、はじめから再インストールのほうが安全かもしれない。


【注意点】
このほどシステムのアップデート通知が来たので行ったら、なんとSDに保存していたアプリが消えてしまった。
少々パニックになったが、ランチャーのアプリ一覧には無いけれど、設定の「アプリケーション」一覧にはあることを確認。
そこから一つのアプリを選択し、内部メモリに移動させると無事復活した。

その後、同じ方法ですべてのアプリを復活させようと思ったら、なぜかもう復活していた。
もしかすると、アップデート後、SD上のアプリの読み込みに時間がかかるだけかもしれない。
いずれにせよ詳細は不明のため、システムアップデート時は注意が必要だ。



2014年10月8日水曜日

Windowsの システムの復元 と Dropbox の相性が悪い件

うちの環境 (Windows8.1) では、システムの復元を実行すると、
Dropbox内の一部のファイルのバージョンが、復元先(過去)のバージョンに戻ってしまう。

そして、Dropboxは厄介なことに、この復元されたローカルファイルを最新のバージョンとみなし、
ストレージを上書きしてしまう。

幸い、事後でもDropboxのバージョン管理で、1つずつチェックして復元はできるが、
該当ファイルの特定が面倒だ。


どうやら、ユーザー・プロファイル・フォルダ(C:\Users\名前\)
の直下に、任意で新しく作られたフォルダは、
システムの復元の対象となる(ユーザーデータとして扱われない)らしい。

とすると、Dropboxが変なところにフォルダを作るからいけない。
Dropboxフォルダの場所をマイドキュメントの中などに変更すると、
ユーザーデータとして扱われて、バージョンが戻ることはなくなった。

これは知っていないと困ることがあると思うのだが、
ネットにはこの件が問題になっている様子はない。

INIファイルやVBSファイルなど、システムの復元の対象になる拡張子を
Dropbox内に保存しているユーザーが少ないからだろうか。


参考URL(XPの情報):http://menushowdelay.blog.fc2.com/blog-entry-185.html

追記:
2016年8月現在、Windows10環境でシステムの復元をすると、ドキュメントフォルダ内のスクリプトファイルも復元対象になるようだ。(はっきりとは未確認)

システムの復元をした際には、再起動後ネットワーク接続を切った状態でログインして、事前にDropboxフォルダの中身を確認したほうが良いだろう。サイズの大きいファイルがなければ、同期前にローカルファイルを全削除してしまうのも手だ。



2014年10月6日月曜日

AHK MouseGestureL ウィンドウをマルチモニタ間で移動(トグル)

最近使い始めたMouseGesutureL。
見よう見まねで、やっとできた。
普通にアクションに入れるだけでいい。
マルチモニタといっても、デュアル限定。

ジェスチャーの認識終了後に実行 は気分的なもので、なくてもいいかもしれない。



;モニタ移動
;ジェスチャーの認識終了後に実行
if (MG_Defer()) {
;アクティブウィンドウをターゲットにする
MG_SetActiveAsTarget()
;モニタ数確認
sysget, cnt, MonitorCount
if cnt > 1
{
sysget, Pr, Monitor,1 ;座標取得
sysget, Se, Monitor,2
if (PrLeft > 0) ;左モニタを基準にする
{
sysget, Pr, Monitor,2
sysget, Se, Monitor,1
;最大化時は一旦戻す
WinGet,MinMax,MinMax,A
Winget,Tgt,ID,A
If MinMax
   WinRestore,ahk_id %tgt% 
;ウィンドウ座標取得
WingetPos,Win_x,Win_y,,,
;数字 Integer にするには、"=%"。対象は%%で括らない。
if (Win_x < PrRight and PrTop <= Win_y and Win_y < PrBottom)
{
Go_X =% SeLeft + 80
Go_Y =% SeTop + 50
}
else
{
Go_X =% PrLeft + 80
Go_Y =% PrTop + 50
}
WinMove,Ahk_id %tgt%,,Go_X,Go_Y 
;再最大化
If MinMax
   WinMaximize,Ahk_id %tgt%
}
}



参考サイト
http://blog.livedoor.jp/irvcidre/archives/1146866.html

2014年2月14日金曜日

勝手にGmailアドレスが使われて、GoogleからWelcomeメールが届いた。

オランダの人が、勝手にメールアドレスを使ったらしい。
オランダ語でメールが届いた。


From: Gmail Team mail-noreply@google.com
To: 知らない人の名前 <自分のID@gmail.com>
日付: 2014年2月13日 23:44
件名: Je Gmail-adres (知らないID@gmail.com) is aangemaakt
送信元: google.com
署名元:
 google.com


原文
Welkom bij Gmail! Je kunt op je account inloggen via http://mail.google.com/.
Hier volgen wat tips om aan de slag te gaan met je nieuwe account:
  • Gebruik de importhulpprogramma's van Gmail om je e-mail en contactpersonen over te zetten van je andere e-mailaccounts naar je nieuwe Gmail-adres.
  • Download de mobiele app voor Android of iPhone en iPadom in contact te blijven, ook als je onderweg bent.
Als je problemen hebt met je account of je wachtwoord bent vergeten, nemen we op dit e-mailadres contact met je op.
Veel plezier!
Team Gmail


Als je dit Gmail-adres niet hebt aangemaakt en deze e-mail niet herkent, kun je via https://accounts.google.com/AccountDisavow?adt=AOX8kirOyn9inJXXdZrxFsw4mVidcDJhRM5FWcidV1kkjAoqVIg6oRfVTBw dit account opheffen.




自動翻訳(英語)

件名:
Your Gmail address (知らないID@gmail.com) is created
Welcome to Gmail! You can login to your account via http://mail.google.com/ .

Here are some tips to deal with your new account to get started:

  • Use the import utilities Gmail to you to transfer e-mail and contacts from your other email accounts to your new Gmail address.
  • Download the mobile app for Android or iPhone to stay in touch even when you're on the go.

If you have problems with your account or have forgotten your password, we take on this email address to contact you.

Have fun!

Gmail Team



If you did not create this Gmail address and do not recognize this email, you can via https://accounts.google.com/AccountDisavow?adt=AOX8kirOyn9inJXXdZrxFsw4mVidcDJhRM5FWcidV1kkjAoqVIg6oRfVTBw dit Lifting account.



自動翻訳(日本語)

件名:Gmailのアドレスは(知らないID@gmail.com)が作成されます

Gmailにようこそ!あなたが経由でアカウントにログインすることができますhttp://mail.google.com/ 。
ここで開始するには、新しいアカウントに対処するためのいくつかのヒントがあります:
  • あなたにインポート·ユーティリティのGmailを使用し 、電子メールや連絡先を転送するために 、新しいGmailアドレスに他のメールアカウントから。
  • モバイルアプリをダウンロード Androidのか、 iPhoneに外出場合でも連絡を取り合うこと。
アカウントに問題があるか、パスワードを忘れた場合は、私たちはあなたに連絡する場合には、この電子メールアドレスを取る。
楽しんできてね!
Gmailチーム


このGmailアドレスを作成していないと、この電子メールを認識しない場合は、次のことが可能via https://accounts.google.com/AccountDisavow?adt=AOX8kirOyn9inJXXdZrxFsw4mVidcDJhRM5FWcidV1kkjAoqVIg6oRfVTBw ditアカウントを持ち上げる。




最後の「opheffen」は、Lifting、持ち上げる、と翻訳されてはじめ意味がわからなかったが、Lift の第二義、「撤廃する」という意味だと思う。

同様のメールが送られてきた例を調べてみたところ、要するに、この「知らない人」が、本人のGoogleアカウントに予備のメールアドレスを追加しようとした際、私のメールアドレスを入力したらしい。

(Welcomeメールであることから考えると、今回のケースでは、この人は新しくGmailアカウントを作成しようとして、作成画面の予備のメールアドレス入力欄に入力したのだろうか。)


肝心の危険性については、単純にタイプミスであれば問題ないよう。
相手はパスワードを知らないはずだし、万が一でも二段階認証がある。

※ただし、もしIDが、タイプミスされるようなものでなく、かなり個性的である場合は、そのIDが漏れでている可能性は否定できない。


このまま放っておけば、メール本文にもあるように、相手先で予備のメールアドレスが必要になったとき、こちらへその知らせ(たとえばパスワードの再設定など)が届くものと思われる。
それではかえって結果的に、こちらが相手のIDをのっとることができてしまう可能性がある?ので(というかそもそも気持ちが悪いし)、メールの最後にあるURLからアドレスを削除(Lifting)しておいた。

日本語ではこの件の情報は少なく、質問サイトでは、メール自体がスパムではないか、アカウントが消えそうでクリックするのが怖い、など言われているが、少なくとも今回のケースでは、リンク先はテキスト通りのURLで、accounts.google.com に接続された。 差出人 Gmail Team は偽装ではなかった。
「削除(Lifting)」というのも、自分のIDが抹消されるというような意味ではない。自分のアドレスが相手先で予備のアドレスとして使えなくなるという意味だろう。

今回のメールに付いていたURLは、今アクセスすると、
「このリンクが無効であるか、このリンクに対応する Google アカウントとメール アドレスとの関連付けが既に解除されています。」
というページになり、操作が済んでいることが確認できる。



2012年11月16日金曜日

【kobo glo・自炊】拙速・ChainLPでEpub変換、PDF変換するときの解像度の設定

koboでのPDFやEpubの表示は、画面下に出るページ情報の都合で、

kobo touchの場合、600×800のうちの600×750

が有効解像度(ドットバイドット)だったらしいけれど、

kobo gloの場合は、多分、758×1024のうちの758×942だと思う。

詳しく確認はしていないけど、理由は、その設定だと、

拡大機能で縦フィット表示と横フィット表示を切り替えても更新している気配がないから。

【SESAMEサイクル(SESAMEシリーズ)】 NFCタグをエミュレートするアプリをつくった (Android)

セサミのNFCタグ機能を実際のタグなしで自由に発動させたくて、アプリを作った話。 ( ページ下部より APKダウンロードできます )  【まえがき】 うちでは玄関のセサミ3は前回記事で書いたGASで運用していてNFCタグ機能は使っていないのだけど、最近セサミサイクル(ママチャリ)...