まず、この質問が尋ねられたことを知っています、 自然な音声テキスト読み上げ?
私は何らかの種類のテキストを音声エンジンに変換しますが、完全な電子書籍/テキストを変換します。簡単に言えば、座って読むのに十分な時間が取れなくなったので、たくさん旅行するので、オーディオブックを聞いて楽しんで、リストされているすべての提案を試してみました...しかし...
私はuser85321の提案と小さなスクリプト、そのコンパクトで要点が本当に好きですが、何らかの理由で、いくつかの段落よりも大きなテキストは多くの引数に関するエラーメッセージで終わります:
bash: ./speech.sh: Argument list too long
これを防ぐためにスクリプトを変更したり、スクリプトに追加したりする方法はありますか?
私はpico2wavの音声が好きです。googleTTのようにラグ/ポーズが少ないです。はい、「The」の代わりに「THE」という奇妙なスペルの問題があります。塞栓症。
元の投稿にリストされているように、pico2wavをオフラインバックアップとして使用するフォールバックを含むスクリプトを含め、GoogleTTを使用してスクリプトを試しました。残念ながら、本を分割してチャンクに分割した後でも、ランダムな間隔で停止します。そのため、ランダムなスピーチの塊をつなぎ合わせようとすることは王室のPITAです。
私の最後の連絡先は、libreoffice(pico2wavを使用)のテキスト読み取りプラグインでした。これは、しばらくするとひねりを伴うargsと同じ問題があるようです。
過去数ヶ月にわたってこれを探し回った後、私はレンガの壁にいるので、助けや提案は大歓迎です。
私の落書きを読んでくれてありがとう。
何らかの理由で、pico2wave
は引数として入力のみを受け入れます。したがって、一度に処理できるテキストの長さは、引数の最大サイズによって制限されます。おそらくxargs
を使用して、テキストをこの制限を超えない部分に分割できます。この方法でxargs
を使用してこのスクリプトを実行します。
xargs -a input.txt ./speech.sh
使用する必要のない関連xargs
オプション:
--max-chars=max-chars
-s max-chars
Use at most max-chars characters per command line, including the
command and initial-arguments and the terminating nulls at the
ends of the argument strings. The largest allowed value is
system-dependent, and is calculated as the argument length limit
for exec, less the size of your environment, less 2048 bytes of
headroom. If this value is more than 128KiB, 128Kib is used as
the default value; otherwise, the default value is the maximum.
1KiB is 1024 bytes.
私は同様の問題があり、私のために働いた次のスクリプトに出くわしました: https://github.com/GwadaLUG/pico-read-speaker これはpythonスクリプトですテキストファイルを分割して、pico2waveに渡します。次に、すべての出力.wavファイルを1つの巨大な.wavに結合します。