Google Home (오케 구구루)에서 한자 테스트를 시작합시다.

소개



2017년 겨울방학 새벽에 한자 테스트를 하기 때문에, 확실히 연습해와 초등학생의 아이에게 한자의 숙제가 나왔습니다.
하지만 대답이 작성된 인쇄물만 배포되었으며 연습용 인쇄물은 없었습니다.
문제만 쓴 프린트를 자작하면 좋았습니다만, 인쇄의 수고를 생각하면, 귀찮게 하거나 궁극적으로 쓰레기가 된다고 생각해, Google Home에서 문제를 읽어보기로 했습니다.

전제



Google Home은 자발적으로 발성하는 것은 표준으로 할 수 없습니다.
"Google Home 말하기"등으로 검색하여 설정했습니다.
google-home-notifier를 Raspberry Pi에 설치하고 firebase 업데이트를 트리거로
발성시키는 구조로 하고 있습니다.

개요





「오케구구루 한자 테스트」의 호칭으로, 「IFTTT」를 경유해, Google SpreadSheet내의 스크립트가 기동합니다.
스크립트로, 한자의 문제가 기재된 SpreadSheet를 1셀씩 읽어, 출제한다고 하는 흐름입니다.

준비



다음과 같은 느낌으로 문제에 대한 SpreadSheet를 준비합니다.


상세



IFTTT를 통해 스크립트를 실행합니다.
"한자 테스트 시작 파일"이라는 파일에 행을 추가하여 파일 변경을 트리거로 설정된 스크립트를 실행합니다.



스크립트 트리거 설정


다음과 같은 스크립트를 실행합니다.

코드.gs
// 漢字テスト用のファイル
var spreadsheet = SpreadsheetApp.openById('1_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
var sheet = spreadsheet.getSheetByName('問題');

// 問題の記載された列
var questionColumn = 1;

function readTest() {
  // 読上げ開始位置
  var currentRow = 1;
  // 問題  
  var questionStr = "";


  // 問題の読上げ
  questionStr = sheet.getRange(currentRow,questionColumn).getValue();
  while ( questionStr != "") {
    Logger.log(questionStr);
    CommonScripts.sendGoogleHomeLiving(questionStr);

    // 問題を出したあとは30秒待機
    Utilities.sleep(30000);
    currentRow = currentRow + 1;
    questionStr = sheet.getRange(currentRow,questionColumn).getValue();
  }


}


Google Home에 말하기 위한 방법은 밖으로 하고 있어 다음과 같이 구현하고 있습니다. (Firebase의 레코드 업데이트를 감지하고 말합니다)

CommonScripts.gs

function sendGoogleHomeLiving(message){
  var url = "https://hogehogehoge.firebaseio.com/test.json";
  var payload =
   {
     "message" : message
   };

   var options =
   {
     "method" : "PUT",
     "contentType": "application/json",
     "payload" : JSON.stringify(payload)
   };
  Logger.log(JSON.stringify(payload));
  UrlFetchApp.fetch(url, options);


  // 同じ命令を繰り返した時に発声しないので、DBの値をクリア  
  if( message != "" ) {
   sendGoogleHomeLiving(""); 
  }


}

요약



이 녀석 덕분에 한자 테스트에 합격한 것 같습니다.
아이도, 새로운 탓인지, 진행해 「오케-구-구루 한자 테스트」라고 하면,
한자 연습을 하고 있었습니다.

다만, 구현에 있어서 몇가지 과제(깨달음)도 있었습니다.
・Google Action Script의 실행시간에 제한(6분)이 있어, 넘으면 도중에 멈춰 버린다.
 →이번, 한자를 쓰고 있는 시간을 고려해, 도중에 sleep를 넣고 있습니다. 그렇다면 아무래도 처리 시간이 길어집니다.
htps : //에서 ゔぇぺぺrs. 오, ぇ. 코 m / 아 ps-sc 리 pt / 구이 s / 세 r

・「시장(이치바)」이 문제입니다만, 한자로 입력해 두면, Google Home은 「시죠」라고 읽었습니다. 이 근처는 히라가나로 입력하는 등의 대책이 필요했습니다.

Google Home, GoogleAppsScript 재미
아이의 지육에도 좋은 것은! ? 그리고 마음대로 생각합니다!

좋은 웹페이지 즐겨찾기