2022年11月02日 更新

Colaboratoryで、JSで記述した関数をPythonの関数の中で定義し、呼び出す方法

どうも、クラゲジュニアです。

Colaboratoryで、JavaScriptで記述した関数をPythonで定義した関数の中から呼び出す方法はいくつかあると思いますが、その一つの方法を紹介します。

方法

こちらのJSで書かれた音声合成のコードを例とします。

# モジュール読み込み
from IPython.display import display, Javascript
from google.colab.output import eval_js

# 関数を定義
def speech_text(text):
  js = Javascript('''
    var speech = new SpeechSynthesisUtterance();
    // 関数を定義
    function speech_text_js(data){
      speech.lang = 'ja-JP';
      speech.text = data;
      speechSynthesis.speak(speech);
    };
  ''')
  display(js)
  function_name = 'speech_text_js("{}")'.format(text)
  eval_js(function_name)
# 関数呼び出し
speech_text("おはようございます")

ポイントは引数です。 このように記載することにより、Pythonで渡した引数をJavaScriptの関数に渡すことができます。

以上です。