読者です 読者をやめる 読者になる 読者になる

落書きノート

ふと自分が気になった事を書いてます

JavaプログラムでText to Speech Mac OS Xで

Mac OS XJavaプログラムで手軽にText to Speechをやってみました。もちろんKyokoかOtoyaの音声機能が必要になると思うので事前に用意しておいてくださいね。

import java.io.IOException;
import java.util.Scanner;

class speechtest {
    public static void main(String[] args) {
        String message = "";
        String flag = "";
        Scanner scan = new Scanner(System.in);
        try {
            do {
                System.out.println("メッセージを入力してください。");
                message = scan.nextLine();
                Runtime runtime = Runtime.getRuntime();
                runtime.exec("say " + message);
                System.out.println("終了しますか?(y/n)");
                flag = scan.nextLine();
            } while(flag.equals("n"));
            
        } catch (IOException ex) {
            
        }
    }
}

コマンドラインでメッセージを入力するとその通りにKyokoさんかOtoyaさんが喋ってくれます。sayコマンドがうまく動かないなと思ったら、絶対パスを指定してみるとかやってみれば行けるかも。String.formatメソッドを使えばもっと凝ったことが出来るかも。もしかしたら使う必要ないかもですが。

Java Speech APIがあるということで、FreeTTSとか色々考えましたけど、英語しか対応していないし、無理やり日本語で喋らせることも出来るようですが、漢字だと無理だと思うしで、使うのは諦めました。

以前、Text to Speechの機能と動画プレイヤーの機能をプログラムで操作するということもしてましたけど、Javaでやるんだったら何だろう…。Java Media Frameworkがあったかな。UIはJavaFXでいけそうですかね。モダンにやるなら。連続で喋らせる場合にはThread.sleepメソッドなどで処理を止めるしか無いかな…。