質問するログイン新規登録

質問編集履歴

2

追記

2021/08/16 08:26

投稿

cunwe
cunwe

スコア65

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,13 @@
1
+ ##目的
2
+ スプシのセルに入ってるテキスト(中国語)を発話させたい
3
+ ##現状
1
- 目的は題名の通りです。以下のGASを書いてる横で対象のスプシのシートを開いて、実行ボタンを押すと`ReferenceError: SpeechSynthesisUtterance is not defined`と言われてしまうのですがどうしたらいいでしょうか。
4
+ 以下のGASを書いてる横で対象のスプシのシートを開いて、実行ボタンを押すと`ReferenceError: SpeechSynthesisUtterance is not defined`と言われてしまうのですがどうしたらいいでしょうか。
2
- また、`SpeechSynthesisUtterance`はWeb Speech APIの[仕様](https://wicg.github.io/speech-api/)に書いてあったモジュール(?)なのですがこのように外部のAPIはGAS内で使えるのでしょうか?ちなみにセルに入ってるテキストが取得できることまでは確認できました。どなたかご教授いただけますと幸いです。よろしくお願いいたします。
5
+ また、`SpeechSynthesisUtterance`はWeb Speech APIの[仕様](https://wicg.github.io/speech-api/)に書いてあったモジュール(?)なのですがこのように外部のAPIはGAS内で使えるのでしょうか?ちなみにセルに入ってるテキストが取得できることまでは確認できました。
6
+
7
+ ## 調べて・下記の回答者のご助言でわかったこと
8
+ speech.htmlのようなHTMLファイルを別に作って、gasファイルで取得したセルの値を渡す。HTMLファイルはもう一つindex.htmlみたいなのが必要っぽい。
9
+
10
+ 以下main.gsファイル
3
11
  ```
4
12
  function speak (response_text) {
5
13
  // 現在アクティブなスプレッドシートを取得

1

追記

2021/08/16 08:26

投稿

cunwe
cunwe

スコア65

title CHANGED
@@ -1,1 +1,1 @@
1
- スプシのセルの値取得したい
1
+ スプシのセルに入ってるテキスト(中国語)発話させたい
body CHANGED
@@ -1,12 +1,27 @@
1
- 目的は題名の通りです。以下のGASを書いてる横で対象のスプシのシートを開いて、実行ボタンを押しても「不明なエラーが発生しました。」てしまうのですが原因がわかりません。かご教授ただけますと幸いです。よろくお願いいたします
1
+ 目的は題名の通りです。以下のGASを書いてる横で対象のスプシのシートを開いて、実行ボタンを押`ReferenceError: SpeechSynthesisUtterance is not defined`と言われてしまうのですがどうしいいでしょうか
2
+ また、`SpeechSynthesisUtterance`はWeb Speech APIの[仕様](https://wicg.github.io/speech-api/)に書いてあったモジュール(?)なのですがこのように外部のAPIはGAS内で使えるのでしょうか?ちなみにセルに入ってるテキストが取得できることまでは確認できました。どなたかご教授いただけますと幸いです。よろしくお願いいたします。
2
3
  ```
3
- function myFunction () {
4
+ function speak (response_text) {
4
5
  // 現在アクティブなスプレッドシートを取得
5
6
  var ss = SpreadsheetApp.getActiveSpreadsheet();
7
+ // そのスプレッドシートにあるn-1番目のシートを取得
8
+ // var sheet = ss.getSheets()[2];
6
9
  // 現在開いているシートを取得
7
10
  var sheet = ss.getActiveSheet();
8
11
  // そのシートにあるアクティブなセルを取得
9
12
  var text = sheet.getRange("B2").getValue();
10
13
  Logger.log(text);
14
+ var text = new SpeechSynthesisUtterance();
15
+ // 発言を作成
16
+ text.text = response_text;
17
+ // 言語 中国語
18
+ text.lang = "zh-CH"
19
+ // 速度 0.1-10
20
+ text.rate = 1
21
+ // 高さ 0-2
22
+ text.pitch = 1
23
+ // 音量 0-1
24
+ text.volume = 1
25
+ speechSynthesis.speak(text);
11
26
  }
12
27
  ```