2019年7月26日金曜日

東芝gigashot の ZIF HDD からデータコピー

東芝gigashotが起動しなくなったので、内臓ハードディスクからデータをバックアップする。内臓HDDは、東芝 1.8インチHDD(MK4009GAL ZIFコネクタ)でした。

データを転送するのに、2つの変換アダプタを組み合わせた(千石電商秋葉原本店 の隣にある2号店で購入)。パソコンはWindows10です。

GROOVY HDD-USB UD-301S  
IDE接続3.5ドライブ
TFTEC JAPAN (変換名人) IDE-ZIFB35A
ZIF HDD → 3.5"HDD変換


まず、変換名人には、マニュアルなんて無いです。
ZIFコネクタは、フラップを上げてケーブルを挿します。フラップは写真(下記)の赤矢印

黒色のフラップ(分かりにくい)
黒色のフラップ

ZIFケーブルは、変換名人側にはケーブルの青が挿せる。
東芝(青)日立(白)と区別があるが、東芝HDDなのに青が挿せない(コネクタが狭い)



ZIF(Zero Insertion Force)名前の通り「挿す力ゼロ」のはずなので、ねじ込む必要は無い。厚みが違う(青:厚め、白:薄め)ので、白だと挿せて、正常に動作した。



他に気がついた点では、
  1. 変換名人の赤ランプは、電源ケーブルを繋げばHDDの有無に関わらず点灯する。
  2. 変換名人の緑ランプはアクセスランプのはずだが、データ転送中も一切点灯しなかった。
  3. IDE変換ケーブルのUSBをパソコンに挿せば、電源もしくはHDDの有無に関わらずWindows側で一時的にディスクが認識されて消える挙動をする。

2019年7月16日火曜日

(IFTTT)Webhooks - Beebotte 連携でエラー

今回は IFTTT を利用して
  1. トリガー:Mail(Send IFTTT any email)
  2. アクション:Webhooks(Make a web request)
    Webhooks の通知先は、Beebotte
というアプレットを作って、発生した障害を調査した記録です。

Webhooks の設定は以下
URLhttps://api.beebotte.com/v1/data/publish/[Channel]/[Resource]?token=[Channel Token]
MethodPOST
Content Typeapplication/json
Body{"data":"{{Subject}}"}
URL の根拠がリファレンスから探せなかったが、cURL の json 送信を参考にした。
https://beebotte.com/docs/publish


問題はメールの件名(Subject)でなく、メールの本文(Body)を使うと発生する。
(例)上記のBodyを変更する {"data":"{{Body}}"}

トリガーとなるメールを送信すると、このアプレットの View activity log で、エラーが確認できる。メールで送った本文(Body)の内容も併せて確認できるが、特に問題は見当たらない。

<View activity log の表示>
Applet skipped
Unable to make web request. Your server returned a 400




検証として、cURL を使ってメールの本文を json 送信してみる。

(1)Beebotte の Console 画面を開く
「Secret Key」と「Subscribe」の項目を埋めて、「Subscribe」ボタンをクリック
黒い Messages 枠に結果の表示あり。(これで json の受信を待機している状態)

(2)Beebotte の Console 画面で、以下のパターンを実施した結果を確認する。

[パターン1] メールの件名(Subject)を使う設定の状態で、IFTTTのトリガーとなるメールを送信

[パターン2] メールの本文(Body)を使う設定の状態で、IFTTTのトリガーとなるメールを送信
 → エラーの場合は、Console 画面に表示されず。

[パターン3] メールの本文の内容を、cURL を使って json 送信
curl -i -H "Content-Type: application/json" \
-X POST -d '{"data":"テストメッセージ"}' \
https://api.beebotte.com/v1/data/publish/[Channel]/[Resource]?token=[Channel Token]


直接状況を確認できないが、これだと問題見当たらず。Webhooks でメールの本文(Body)を使うと、何か余計な改行などで json の様式エラーとなってしまうのではないかと推測します。
(cURL のメッセージ文を途中で改行すると、「HTTP/1.1 400 Bad Request」になった。)

2019年7月10日水曜日

Lenovo ideapad MIIX 310 のAC電源を探した

Lenovo ideapad MIIX 310
https://www.lenovo.com/jp/ja/static/catalog/tablet-2016-miix310_rt_0906

移動先で使うACアダプターを探してみた。

ノートPC側の電源入力はDC5V4Aだった。USB充電器からUSB → DCプラグに変換すれば便利だが、4Aも流せるUSB電源は無いor高価なので、秋月電子で普通のACアダプターを入手

スイッチングACアダプター 5V4A AD-A50P400
http://akizukidenshi.com/catalog/g/gM-10660/

しかし、プラグのサイズが合わない(プラグが大きい)
こういう場合は、変換アダプタが豊富な千石電商で探す

千石電商で、ノンブランドのバルク品(100円)を発見、これで繋がった。
内径 2.1mm → 内径 1.3mm のDC変換プラグ(DC2113)


正規品ならこれが合います。
DC 異径変換アダプタ(メス:外径5.5mm内径2.1mm-オス:外径3.5mm内径1.3mm)
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4PD5

もしくは、L型のほうが邪魔にならないので
カモン(COMON)製 5521-3513L DC異径変換アダプタ L型(メス:外径5.5mm内径2.1mm-オス:外径3.5mm内径1.3mm)
https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4WCK

2019年7月7日日曜日

docomo の音声合成API を Raspberry Piで再生する

docomo Developer support の 音声合成API を、Raspberry Pi の Python で試してみる。gTTS ライブラリ(Google Text-to-Speech)だと、話速が遅くて使いにくかったので、今回のdocomoでは、少しだけ早く喋るように調整した。

音声は WAVE 形式にして aplay コマンドで再生する。ファイルに保存しないで pygame ライブラリで再生することもできるが、再生スピードが爆速になってしまったので断念、ファイルを使わないと不安定なようだ。


音声合成API 機能別リファレンス
https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=text_to_speech

import requests
import json
import os

TTS_URL = 'https://api.apigw.smt.docomo.ne.jp/crayon/v1/textToSpeech?APIKEY=発行したKEY'

params = {
  "Command":"AP_Synth",
  "SpeakerID":"1",
  "StyleID":"1",
  "SpeechRate":"1.25",
  "AudioFileFormat":"2",
  "TextData":"こんにちは"
}

r = requests.post(TTS_URL, data=json.dumps(params))
if r.status_code == requests.codes.ok:
  wav = r.content
  with open("docomo_tts.wav","wb") as fout:
    fout.write(wav)
  os.system("aplay docomo_tts.wav")
  print("ok")
else:
  print(r.status_code)

2019年7月6日土曜日

Raspberry Pi の pygame で音源を再生できない

Raspberry Pi の Python で pygame モジュールを使用しましたが、簡単なサンプルで全く音が出なかったので、調査しました。

サンプルコード
import pygame.mixer
pygame.mixer.init()
music = pygame.mixer.Sound("./sample.wav")
music.play()



調査を進めたところ、スクリプトではなく Python の対話モードだと再生できることが判明した。これはつまり、再生が始まる前にプログラムが終了してしまうことが問題らしい。

そこで、
import pygame.mixer
import time
pygame.mixer.init()
music = pygame.mixer.Sound("./sample.wav")
music.play()
print(music.get_length())
time.sleep(music.get_length())


play が非同期だから、再生が終わる前に終了しちゃうんですね。とりあえず再生が終了するまで sleep してやれば済みます。


pygameライブラリ 公式
https://www.pygame.org/download.shtml

2019年7月2日火曜日

Wi-Fiルータ でブリッジモードが繋がらない

TP-Link AC750 Wi-Fiトラベルルータ を使用した

これをスイッチングハブに繋いでブリッジモードで使用したが、デフォルト設定ではインターネットに接続できなかった。ホテルや自宅などDHCPの環境であれば問題ないが、職場などIPアドレスが固定の環境であれば、設定を入れる必要がある。

設定の手順

1.まずはWi-Fiルータをスイッチングハブに繋いで、電源をON

2.PCなどから、Wi-Fiルータに接続する。
(この段階では、インターネットへは接続できない。)

3.Wi-Fiルータにアクセスして、セットアップ画面を表示する
(この製品であれば、http://tplinkwifi.net/ もしくは http://192.168.1.1/)

4.LAN の設定を行う。
IPアドレスの割り当てを管理者に貰って、Wi-FiルータのIP アドレスを指定する。接続先のセグメントで有効なIP アドレスを使用すること。
(例)192.168.1.*** の環境であれば、
  1. IP アドレス: 192.168.1.100 など
  2. サブネット マスク: 255.255.255.0
  3. Wi-FiルータのDHCP 設定は「有効」でOK
  4. デフォルト ゲートウェイ: 192.168.1.1 など、接続先のネットワークに合わせる
  5. DNS サーバー: 192.168.1.1 など

Wi-Fiルータの設定を変えると、接続が切れてしまうので、あらためて接続しなおせばOKです。ただしこの設定だと、Wi-Fiルータのインターネット接続のLEDランプは点灯しませんでしたが、正常に接続できています。

2019年6月30日日曜日

日本語で利用できる合成音声API

日本語で利用できる合成音声API(主に無料利用分)の一覧です。
アプリケーションから利用できる、テキストを音声に変換するサービス・音声読み上げAPIです。

オープンソース・ソフトウェアを使用するのと比較して、以下のメリットがあります。
  1. APIのほうが、開発・メンテナンス負荷は少ない。
  2. APIのほうが、性能は良い。


■ 無料利用可能な合成音声APIの一覧

Microsoft Azure - Speech Services (Text to Speech)
https://azure.microsoft.com/ja-jp/services/cognitive-services/speech-services/

IBM Watson - Text to Speech
https://www.ibm.com/watson/jp-ja/developercloud/text-to-speech.html

Amazon Polly
https://aws.amazon.com/jp/polly/

Google Cloud Text-to-Speech
https://cloud.google.com/text-to-speech/

docomo Developer support - 音声合成API
https://dev.smt.docomo.ne.jp/?p=docs.api.page&api_name=text_to_speech

合成音声APIの無料利用分について、上限一覧
Microsoft Azure1 か月あたり 5 百万文字まで無料
IBM Watson1 カ月あたり 10,000 文字
Amazon Polly1 か月あたり 500 万文字
Google Cloud1 か月あたり 0~400 万文字
docomo API月間2,000リクエスト(非商用)

これ以外にも、Google Home に接続して喋らせる方法もあり(費用は製品価格のみ)


■ 有料の合成音声API

HOYA VoiceText Web API(法人向け)、80,000円/月
https://voicetext.jp/
無料利用登録あり(有効期限は発行後90日)

株式会社エーアイ 音声合成システムAITalk(法人向け)
https://www.ai-j.jp/about/

Amazon Lex(対話型)
https://aws.amazon.com/jp/lex/