GoogleHomeで文字起こし(イマイチ)
そもそもGoogleHomeっていい感じに音声を文字列として受け取ってくれるし、録音して文字起こしみたいなアプリよりもいい感じに出来るのでは?って思ったのでやってみた。
構成
GoogleHome → Actions on Google → Dialogflow→ GoogleAppsScript
記録用スプレッドシート、スクリプト
GoogleAppsScriptを選んだ理由はなんとなくスプレッドシート開いてるときに思いついたから。
出力先はテキストファイルでいいと思う
出力先のスプレッドシートに日付、時間、テキストの列があるものとする。
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で保存
Simulator画面に移動するので試しに接続し、文字を入力してみる→スプレッドシートに記録されるはず
ここまでやればGoogleHomeに同じように話しかければ文字起こしアプリが起動するのでテキトーに話しかければスプレッドシートに記録される
感想
1文話す → 「.」の発話(実際には何も言わないが) → ピコン → 1文話す → 「.」 → ピコン...
となり地味にテンポが悪い
↑は1行記録される分の発話後に意識的に少し開けた。どれぐらい長い文章を一気に認識できるかはためしてのお楽しみってことで。
みんなで意見を出し合うようなディスカッションには向かないかもしれないが、一人が発表する場なんかでは使えるかも。
Author And Source
この問題について(GoogleHomeで文字起こし(イマイチ)), 我々は、より多くの情報をここで見つけました https://qiita.com/tomatosum/items/5274d393e85a162239c8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .