2018-10-26追記
Limechatと連携するスクリプト(クリップボードにコピーするだけ)、NCVと連携するプラグイン、ハンドル取得を利用しない場合に訳文を棒読みちゃんに出力する機能はつけられそうです。私個人は不要なので、要望があれば。
棒読みちゃんに流れた文章やクリップボードに貼り付けられた文章をGASを利用して翻訳/表示するソフトです。
1回分の翻訳結果をテキストファイルに出力しているので、OBSのテキスト(GDI+)で結果を表示することが出来ます。
概要
棒読みちゃんに流れた文章を翻訳して表示します。クリップボード監視も一応出来ます。
日本語(+中国語)は英語に、それ以外の言語は日本語に翻訳されます(言語判定の結果に基づく)。
利用可能ソフトウェア
・棒読みちゃん+棒読みちゃんと連携できるソフトウェア(NCV、あんこちゃん、Limechat等)
ダウンロード
使い方
1. Google Apps Scriptをインストールする。
ブラウザを開いてGoogleにログインし、Googleドライブを開きます。左上の「新規」→「その他」→「アプリの追加」から、Google Apps Scriptをインストールしてください。インストールが終わったら、左上の「新規」→「その他」→「Google Apps Script」を押してください。無題のプロジェクトが開きます。プロジェクト名は「Translation」等分かりやすい名前にしておくと良いでしょう。
2. スクリプトを書く。
以下をコピペしてください。
function doGet(e) { var p = e.parameter; var translatedText = LanguageApp.translate(p.text, p.source, p.target); return ContentService.createTextOutput(translatedText); }
3. APIのURLを作成する。
「公開」→「ウェブアプリケーションとして導入」を開くとURLが表示されます。このURLを本ソフトで使用するので、保管しておいてください。
(アプリケーションにできるユーザーを匿名にしてURLを他人に教えれば、その方はこの手順なしに利用することが出来ます。しかし、あまりにこのAPIの利用頻度が高いと弾かれるため、ほどほどにしておきましょう。)
4. ソフトの設定を行う。
設定を開き、先程作成したURLをGAS URL欄に記入してください。メインウィンドウの「その他の設定」から開くことが出来ます。
4-1. 棒読みちゃんのテキストを取得する場合
タイトル取得を押すと起動中アプリケーションの一覧が表示されるので、棒読みちゃんを選択してください。選択すると右側のボックスに謎の文字列が表示されますが、最下行が読み上げる文章になるように、「xx行目の文字列を取得」を調整してください(棒読みちゃんの場合は9行目で取得できると思います)。
取得方法はハンドルにします。「開始」を押すと、棒読みちゃんで読まれた内容と翻訳結果が表に表示されるようになると思います。
4-2. クリップボードのテキストを取得する場合
取得方法をクリップボードにして「開始」を押すと、クリップボードにコピーされた内容を翻訳できます。
5. 補足
・表を右クリック→設定開/閉を押すと、設定項目がいい感じに隠れます(いつもの)。
・その他の設定にある「テキストファイルに出力」にチェックを入れると、本ソフトと同じ位置にある「output.txt」に取得したテキストと翻訳されたテキストが一回分のみ保存されます。OBS Studioでテキスト(GDI+)を追加し、「ファイルからの読み取り」にチェックを入れてこのテキストファイルを選択すれば、お好きなフォントで翻訳前後のテキストを配信画面に表示できます(翻訳処理から数秒遅れて反映されます)。
6. 蛇足
テキストファイルの出力は、テキストファイルの内容表示であればOBS側で自由度高く設定ができていいんじゃないかなと思ったからです。…コメジェネ連携の仕方が分からなかったわけでは
棒読みちゃんのソケット通信の利用も(ry
コメント
はじめまして。
さきほどダウンロードして使用させて頂きましたが、正しく動作できていないのでアドバイスを頂けると嬉しいです。
棒読みちゃんから文章は取得できるのですが、正しく翻訳されず、HTMLが翻訳結果として表示されてしまいます。
output.txt に出力して、拡張子をhtmlに変更して
output.htmlをブラウザに読み込ませたところ
google アカウントのログイン画面が表示されたので
ログインしてみたところ、ログイン後に正しく翻訳結果のテキストが表示されました。
APIのURLのURL公開は、匿名ユーザーでも可能に設定していますし
ChromeとEdgeは、念の為にgoogleアカウントにログイン状態にしてみましたが
やはり、GAS翻訳.exe の翻訳結果は、毎回HTML形式のテキストになってしまいます。
よい解決方法があれば、教えて頂けると助かります。
はじめまして。
HTML表示されるのはログインを求められる状況が原因だと思いますが、匿名ユーザーがアクセスできる設定で求められるのは原因がわからないですね…
このアプリはURLを投げて結果を受け取っているだけで他のブラウザのログイン情報等は関与しないので、アクセス権限の指定が上手くできていないと思うのですが…
原因切り分けのため、こちらでスクリプトを作成したので、↓のURLを適用するとどうなるか確認していただけると(10月末までは残しておきます)。
https://script.google.com/macros/s/AKfycbzYzulDDXHZq8JGv3nQLTSu1CHS_2-W6veZbPM3YC9ADBwH8WQB/exec
またこの件とは関係ないですが、挙動が怪しいところがあったので修正した(つもりの)ものを上げておきます。
https://dl.dropboxusercontent.com/s/3zei1ddi91horwg/GAS%E7%BF%BB%E8%A8%B3_%E4%BF%AE%E6%AD%A3.zip
(コメントが承認制になっていたようで…承認設定を無効にしました。メールアドレス等の情報が含まれているものは削除しました。失礼いたしました。