« [Windows Mobile] MortScriptで遊ぶ | Main | [Windows Mobile] Windows Mobile用クロスコンパイラ、CeGCC再び »

2007.03.01

[Windows Mobile] Windows Mobileでも英文音声合成ソフトウェアfliteで遊ぶ

Windows Mobile / Pocket PC / Window CEでも音声合成がやりたくなり、EmacsCEの作者で有名なRainerさんがポートした英文音声合成ソフトウェアfliteを使ってみました。
EmacsCEが動くなら、恐らくfliteもW-ZERO3で使えるのではないでしょうか。

サンプル音声

iPAQ h2210上で読み上げたものを置いておきます。

Pocket PCで再生すると切れませんが、Mac OS X上のFirefoxから再生すると後ろが切れますな。
変換が必要かも……。

You need more practice.

Alice Through the Looking Glass

GNU is Not UNIX

The GNU Project was launched in 1984 to develop a complete UNIX operating system which is free software: the GNU system. (GNU is a recursive acronym for “GNU’s Not UNIX”; it is pronounced “guh-noo.”)

Variants of the GNU operating system, which use the kernel Linux, are now widely used; though these systems are often referred to as “Linux”, some say they are more accurately called GNU/Linux systems because of the suite of GNU tools they use.

サンプルスクリプト

fliteはコマンドラインインターフェイスであるため、MortScriptから呼び出して使ってみます。

サンプルをいくつか書いてみましたので参考にしてみてください。

(1) クリップボードの英文を読み上げる
「FliteClip.mscr」をダウンロード

(2) 英文のテキストファイル「\FliteFile.txt」を読み上げる
「FliteFile.mscr」をダウンロード

(3) 英文のテキストファイル「\FliteFile.txt」を読み上げたものをwavファイルに保存する
「FliteFile2Wav.mscr」をダウンロード

(4) 現在時刻を英文で読み上げる
「FliteWatch.mscr」をダウンロード

fliteのインストール

fliteをインストールします。

General Paranoyaxc Softwareにあるfliteのページから、flite-wince-arm-hpc-wce300.tar.gzcelib-3.13-dll-bin-all-platforms.tar.gzをダウンロードしてきます。

flite-wince-arm-hpc-wce300.tar.gzからは、

flite.exe
flite.dll

を。celib-3.13-dll-bin-all-platforms.tar.gzからは、wince-arm-pocket-wce300-releaseフォルダの中の、

celib.dll

を取り出してきて、三つまとめて「\SD Card\FLITE\」にコピーします(上記スクリプトのデフォルトパス。異なる場所にインストールする場合はスクリプトの該当個所を書き換えてください)。

既にEmacsCEなどを使っていて、celib.dllを\Windowsディレクトリにコピーしている場合はcelib.dllは必要ありません。

ほとんどの人はARM CPUのマシンをお使いでしょうから、それを前提に説明しています。
MortScriptはARM用しかありませんが、fliteは各種CPU用がありますので、ARM CPU搭載機種以外でも使うことができます。

MortScriptのインストール

Downloads - MortScript (PC, PPC, Smartphone, PNA): ProgramからMortScript 4.0 RC10(現時点最新バージョン)をダウンロードしてきてPPC用をインストールします。
拡張子mscrのファイルがMortScriptに関連づけられるので、以降スクリプトの実行はダブルクリック等でできるようになります。

実際に試してみる

ここまで来たら、後はスクリプトを実行するだけです。

(1) クリップボードの英文を読み上げる

クリップボードに英文をコピーして実行してください。

(2) 英文のテキストファイル「\FliteFile.txt」を読み上げる

ルートディレクトリに「FliteFile.txt」という名前の英文テキストファイルを用意し、実行してください。

(3) 英文のテキストファイル「\FliteFile.txt」を読み上げたものをwavファイルに保存する

ルートディレクトリに「FliteFile.txt」という名前の英文テキストファイルを用意し、実行してください。
wavファイルのファイル名を問い合わせるので入力してください。
ルートディレクトリにファイルを保存します。

(4) 現在時刻を英文で読み上げる

ただ実行するだけで時刻を読み上げます。

注意点

スクリプト中では対策してますが(対策というか、エラーを出してます)、fliteは空白を含むパスにあるファイルを読むことができないようです(バックスラッシュでエスケープしてもだめ)。

「\My Documents」以下とかでもだめ。

改行を含まないテキストファイルを読むこともできません。(-tオプションを伴うテキストを読むことは可能)

あとがき

本当はQMAIL3で着信メールのアドレスを読み上げたかったのですが、Windows Mobile / Windows CE上ではQMAIL3のマクロから外部コマンドを実行できるんですかね?
Win32ではWSHのShellオブジェクトを呼び出して実行する手が使えるようですが。

ご存知の方がいらしたら、ぜひ教えてください。

|

« [Windows Mobile] MortScriptで遊ぶ | Main | [Windows Mobile] Windows Mobile用クロスコンパイラ、CeGCC再び »