音声読み上げ

読み上げの Basic 認証

読み上げ機能では、リクエストされた URL にアクセスするため、 アクセス先が Basic 認証で保護されていると読み上げることができません。 この場合、Basic 認証のアカウントを設定することでアクセスできるようになります。

Basic 認証環境での設定

読み上げの設定

config/voice.yml(存在しない場合は config/defaults/voice.yml をコピー)で設定することができます。

SHIRASAGI の読み上げ機能は、内部では OpenJTalk を使っており、OpenJTalk に対してオプションを設定することで、 速度、トーンなどを調整することができます。

上で取り上げた以外の代表的な OpenJtalk のオプションは次のとおりです。

オプション 意味 指定できる値
-p 速度 1 以上の整数
-a 音質 0.0 ~ 1.0
-r 話速 0.0 以上の小数点数
-jf 抑揚 0.0 以上の小数点数

参考: http://moblog.absgexp.net/openjtalk/

読み上げの範囲指定

<!-- read-voice --><!-- end-read-voice --> で囲むと、音声読み上げを使用する範囲を設定できます。 <!-- skip-voice --><!-- end-skip-voice --> で囲むと、音声読み上げを使用しない範囲を設定できます。 delete-tags を編集することで読み上げないタグを設定できます。 kuten-tags を編集することで文字列を区切るタグを設定できます。 音声読み上げの範囲指定に使用する文字は config/voice.yml から変更できます。

scraper:
  voice-marks: [ "read-voice", "end-read-voice" ]
  skip-marks: [ "skip-voice", "end-skip-voice" ]
  delete-tags:
    - style
    - script
    - noscript
    - iframe
    - rb
    - rp
  kuten-tags:
    - h1
    - h2
    - h3
    - h4
    - h5
    - p
    - br
    - div
    - pre
    - blockquote
    - ul
    - ol
    - table
<!-- read-voice -->
  <p>読み上げる</p>
<!-- skip-voice -->
  <p>読み上げない</p>
<!-- end-skip-voice -->
<!-- end-read-voice -->

読み上げ使用時の Rack サーバの注意点

読み上げをご利用になる場合、必ず Rack サーバが 2 多重以上でリクエストを処理できることを確認して下さい。 Unicorn をご利用の場合 config/unicorn.rb を確認し、ワーカープロセス数を 2 以上に設定してください。

vi config/unicorn.rb
# 初期値は2
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 2)