GoogleHome에서 문자 발생(이마이치)

원래 GoogleHome은 좋은 느낌으로 음성을 문자열로 받아주고, 녹음하고 문자 일으키는 것 같은 앱보다 더 좋은 느낌으로 할 수 있는 것은 아닌지? 라고 생각했기 때문에 해 보았다.

구성



GoogleHome → Actions on Google → Dialogflow → GoogleAppsScript

기록용 스프레드시트, 스크립트



GoogleAppsScript를 선택한 이유는 어쩐지 스프레드시트 열고 있을 때 생각해 왔기 때문.
출력 대상은 텍스트 파일로 좋다고 생각합니다.
출력 대상 스프레드 시트에 날짜, 시간 및 텍스트 열이 있다고 가정합니다.


Transcription.gs
var prop = PropertiesService.getScriptProperties();
// このあたりはプロジェクトのプロパティにそれっぽのを登録しておく
var sheetId = prop.getProperty('SHEET_ID');
var sheetName = prop.getProperty('SHEET_NAME');

function doPost(e) {
  var result = JSON.parse(e.postData.contents).result;
  try {
    var ss = SpreadsheetApp.openById(sheetId);
    var sh = ss.getSheetByName(sheetName);
    var lastrow = sh.getLastRow();
    sh.insertRowAfter(lastrow);
    lastrow++;

    var now = new Date();
    var date = Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy-MM-dd');
    var time = Utilities.formatDate(now, 'Asia/Tokyo', 'HH:mm:ss');
    sh.getRange(lastrow, 1).setValue(date);
    sh.getRange(lastrow, 2).setValue(time);
    sh.getRange(lastrow, 3).setValue(result.resolvedQuery);
  } catch(ex) {
    return ContentService.createTextOutput('NG');
  }
  return ContentService.createTextOutput('OK');
}

가능하면 「공개」→「어플리케이션으로서 도입」
다음 사용자로 응용 프로그램 실행 : 자신
애플리케이션에 액세스 할 수있는 모든 사용자 : 모두 (익명 사용자 포함)
다음과 같은 URL이 발급되므로 메모

https://script.google.com/macros/s/<스크립트 ID>/exec

Actions on Google에서 프로젝트 만들기



텍토에 프로젝트를 만들고 Dialogflow를 호출하도록 설정

DialogFlow



GoogleHome에게 말한 내용을 받고 GAS를 불러옵니다.

Fulfillment



Fulfillment를 활성화하고 WebHook에 GAS URL 설정


Intents



Default Fallback Intent



보통은 잘 인식할 수 없었던 패턴이 여기에 흐르지만, 기본적으로 모든 것을 여기에서 처리한다.

Text response를 일단 삭제하고 "."만 등록 (응답으로 일일이 말하면 템포가 나쁘기 때문에)
아래쪽에 있는 Fullfillment를 열고 「Use webhook」에 체크


어떻게 생각해도 본래의 사용법과는 다른

Default Welcome Intent



특히 뭔가를하는 것은 아니지만 종료 방법을 잊어 버리면 힘들기 때문에 Text response
文字起こしへようこそ。終了する時は「バルス」と言ってください。

함께 등록하십시오.

종료용 Intent 추가



Exit에서도 이름을 붙여

User says에 「바루스」 「바루스」정도를 등록해 둔다
회의 도중 절대 아닐 말로 하는 것이 좋다
※「종료」라든가는 다른 흐름으로 보통으로 나올 것 같은 워드이므로 피한다

하단의 Google Assistant를 열고 'End conversation'을 선택합니다.


이 시점에서 오른쪽 상단의 Try it now에 텍토에 문자를 넣으면 스프레드 시트에 기록 될 것입니다.

Actions on Google의 App Information



Actions on Google로 돌아와 Assistant app name, Sample invocations에 이름을 붙인다.
게시하지 않으므로 오류를 지울 필요가 없습니다.



오른쪽 하단 SAVE로 저장

Overview로 돌아와 오른쪽 하단 "TEST DRAFT"


Simulator 화면으로 이동하므로 시험에 연결하고 문자를 입력해 보기 → 스프레드시트에 기록될 것


여기까지 하면 GoogleHome에 똑같이 말을 걸면 문자 일어나 앱이 기동하기 때문에 텍토에 말을 걸면 스프레드시트에 기록된다

감상



1문화 → 「.」의 발화(실제로는 아무것도 말하지 않지만) → 피콘 → 1문화 → →.
수수께끼에 템포가 나쁘다.

그렇다고는 해도, 아무튼 정밀도로 상당히 장문에서도 인식되는 것 같다.


↑는 1행 기록되는 분의 발화 후에 의식적으로 조금 열었다. 어느 정도 긴 문장을 단번에 인식할 수 있을까는 해서의 즐거움으로.

모두가 의견을 나누는 듯한 토론에는 적합하지 않을지도 모르지만, 한 사람이 발표하는 장소 따위에서는 사용할 수 있을지도.

좋은 웹페이지 즐겨찾기