Skip to content
memakura edited this page May 2, 2018 · 23 revisions

(English) (他の拡張ブロック)

s2speak の使い方

  • scratch 2.0 (オフライン版) で音声合成ができます。
  • OpenJTalk という音声合成エンジンを使っています。
  • ひとまず Windows (64bit) 版です。

s2speak block_and_sample

インストール方法

  1. https://github.com/memakura/s2speak/releases にて、Downloads にある s2speak-(バージョン番号)-amd64.msi をダウンロードします。
    • msiファイルおよびインストールされるファイル一式はいずれもサイズが大きいので注意してください(100MB 以上は必要です!)
  2. ダウンロードされた msi ファイルを実行します。
    1. Windows8 以上では「WindowsによってPCが保護されました」と出る場合があるので、[詳細情報] をクリックして [実行] してください。
    2. Windows7 では「発行元が不明」と出るかもしれませんが、これも同じく[実行] を選んでください。
    3. このほかウイルスチェックソフトでも発行元が不明に関して何かしら警告が出る可能性があります。
  3. インストール先は変えることができますが、特に指定しなければ "C:\Program Files\s2speak" にインストールされます。(以下ではここにインストールしたことを前提に説明します。)

s2speak の起動方法

  • デスクトップ上の s2speak を実行するとコマンドプロンプト(黒い画面)が出てきます。そこに「==== Running on http://127.0.0.1:50210 ====」が表示されれば起動完了です。
    1. 正しく起動されていれば、Scratch の「その他」ブロックの s2speak にて赤丸から緑丸になります。
    2. なおコマンドプロンプトには、インストール先フォルダの s2speak\htsvoices\voices.cfg で登録されている「声の番号 : 声の名前」のリストが起動時に表示されます。

s2speakの終了方法

  • 実行時に開いたコマンドプロンプトで Ctrl+C を押すか、[X]マークで閉じてください。

デモおよび Scratch でのプロジェクトの作り方

  • 以下のデモが参考になります。
    • "C:\Program Files\s2speak\00scratch\s2speak_demo.sb2"
    • 旗を押すと全種類の声を聴けます。
    • t を押すと時間を教えてくれます。
    • d を押すと簡単な会話が始まります。
  • 新たに作成するとき
    1. Scratch2 offline editor でシフトキーを押しながら「ファイル」->「実験的なHTTP拡張を読み込み」を選んでください。
    2. "C:\Program Files\s2speak\00scratch\s2speak_JA.s2e" を選択してください。(このファイルはデスクトップなど、別の分かりやすい場所にコピーしておいてもよいです。)
      • s2speak_JA.s2eからもダウンロードできます。(右クリックの「名前を付けてリンク先を保存」などで保存できます。)

ブロックの説明

[...]と話す
テキストボックスの中に書いた言葉を話します。話し終わるのを待たずに、次のブロックに進みます。しゃべりながら何か動かしたい場合などはこちらを使います。
[...]と話す(終わるまで待つ)
話し終わるまでそのブロックで待ちます。
声を(...)にする
声を変えます。(どの番号でどんな声が出るかは試してみてください。番号と声の対応は今後変わる可能性があります)
話す音量を(...)にする
声の大きさを変えます。0-100で指定してください。あまり大きくしないほうがよいです。
声の名前
声には名前もついています。現在指定している声の名前が取り出せます。
話す音量
現在指定している音量を取り出せます。

他のモジュールとの組み合わせ

s2listen は Scratchとの通信で 50210 番ポートを使用します。

音声認識 s2listen の使用ポートは 50211 および 10500 なので、下の図のように同時利用が可能です。組み合わせると音声対話システムを作成できます。また、Arduino を制御できる s2aiomicro:bit用のs2microbit-ble は 50209 を使用するため、LED や モータ制御、センサなどと組み合わせても面白そうです。

音声認識との組み合わせ

拡張機能:声の追加や変更 (htsvoices)

インターネット上には .hts 形式の声のファイルが公開されていたりします。ここでは声のファイルの追加方法を説明します。

  1. 追加の .hts ファイルもしくはフォルダを "C:\Users(ユーザ名)\AppData\Local\s2speak\htsvoices" に置き、同フォルダに voices.cfg を作成します。
    • 初めて実行したときに htsvoicesフォルダが自動作成されます。
    • htsファイルの置き方や voices.cfg の作成は "C:\Program Files\s2speak\htsvoices" を参考にしてください。
    • s2speak実行時に、"C:\Program Files\s2speak\htsvoices" に追加する形で htsファイルが読み込まれます。 (voice_id の番号も追加されて順にふられます。)
  2. 必要に応じて 00scratch\s2speak_JA.s2e をコピー・編集して使ってください。(voice_id の番号を追加する必要があります。)

コード、辞書や声のファイルについて

  • nvdajp(https://github.com/nvdajp/nvdajp) というスクリーンリーダー(読み上げソフト)の開発コードの一部を使用しています。具体的には以下の通りです。
    • DLL を呼ぶための python-jtalk スクリプトは https://github.com/nvdajp/python-jtalk/ からです。
    • jtalk directory は nvdajp に付属のものです。
    • Mecab と OpenJTalk DLLs はもともと32bit版でしたが、64bit で別途コンパイルしました。
  • nvdajp および OpenJTalk や Mecab、htsvoices などはそれぞれのラインセンスに従います。ThirdPartyLicenses.txt や COPYING などを確認してください。

ライセンス

  • GPL 3.0
  • ThirdPartyLicenses.txt も確認してください。