public class WinSAPI
extends java.lang.Object
コンストラクタと説明 |
---|
WinSAPI(java.lang.String fileName)
コンストラクタ:クラスを初期化し、シンセサイザーを生成します。
|
修飾子とタイプ | メソッドと説明 |
---|---|
void |
dispose()
シンセサイザー開放:リソースとシンセサイザーオブジェクトを開放します。
|
int |
getSpeed()
読み上げ速度取得:現在の読み上げ速度を取得します。
|
java.lang.String |
getVoice()
音声名称取得:現在選択されている音声データ名称を取得します。
|
int |
getVolume()
読み上げ音量取得:現在の音量を取得します。
|
boolean |
isAsySpeak()
非同期発声終了検査:非同期読み上げの状態を返却します。
|
void |
setSpeed(int speed)
読み上げ速度指定:読み上げ速度を変更します。
|
int |
setVoice(java.lang.String voiceName)
音声名称指定:発声に利用する音声データ名称を指定します。
|
void |
setVolume(int volume)
読み上げ音量指定:読み上げ時の音量を変更します。
|
void |
speakAsyMsg(java.lang.String msg)
非同期読み上げ:与えられた文章を非同期モードで音声化します。
|
void |
speakAsySsmlMsg(java.lang.String msg)
SSML非同期読み上げ:与えられた文章を非同期モードで音声化します。
|
void |
speakMsg(java.lang.String msg)
同期読み上げ:与えられた文章を同期モードで音声化します。
|
void |
speakSsmlMsg(java.lang.String msg)
SSML同期読み上げ:与えられた文章を同期モードで音声化します。
|
public WinSAPI(java.lang.String fileName)
fileName
- 発声データをWAVファイルに保存する場合に指定します。nullまたは空文字ならデフォルトデバイス(スピーカー)に出力します。
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI(""); //生成(スピーカー出力)
//sapi = new WinSAPI("C:\\Temp\\hoge.wav"); //生成(WAVファイル出力)
sapi.speakMsg("Hello Processing" );
sapi.dispose();
}
void draw(){
}
public void dispose()
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.speakMsg("Hello Processing" );
sapi.dispose(); //開放
}
void draw(){
}
public void setSpeed(int speed)
speed
- +10 から -10。0なら等倍速で読み上げます
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.speakMsg("Hello");
sapi.setSpeed(7); //[Processing]部分は速読する
sapi.speakMsg("Processing");
sapi.dispose();
}
void draw(){
}
public void setVolume(int volume)
volume
- 0 から 100。0なら無音、100ならMAX音量で読み上げます
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.speakMsg("Hello");
sapi.setVolume(0); //[Processing]部分は無音になる
sapi.speakMsg("Processing");
sapi.dispose();
}
void draw(){
}
public int setVoice(java.lang.String voiceName)
voiceName
- 音声データ名称。正式名称指定の他に、名称に含まれる部分文字列指定でも可能です
-99:変更失敗;
0:成功;
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.setVoice("Microsoft Zira Desktop"); //Windows10 標準英語音声データを指定
sapi.speakMsg("Zira is english voice data"); //英語で読み上げます
sapi.dispose();
}
void draw(){
}
public int getSpeed()
+10 から -10。0なら等倍速です
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
println( sapi.getSpeed() ); // 0 が表示される
sapi.dispose();
}
void draw(){
}
public java.lang.String getVoice()
音声データ正式名称
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
println( sapi.getVoice() ); //[Microsoft Haruka Desktop]が表示される
sapi.dispose();
}
void draw(){
}
public int getVolume()
0 から 100 。0なら無音。100ならMAX音量
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
println( sapi.getVolume() ); //100 が表示される
sapi.dispose();
}
void draw(){
}
public void speakMsg(java.lang.String msg)
setVoice(java.lang.String)
で
音声データを指定しておく必要があります。msg
- 読み上げる文章
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.setVoice("Microsoft Haruka Desktop");
sapi.speakMsg("貴社の記者が汽車で帰社する"); //読み上げます
sapi.dispose();
}
void draw(){
}
public boolean isAsySpeak()
false:読み上げていない;
true:読み上げ中;
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.setVoice("Microsoft Haruka Desktop");
sapi.speakAsyMsg("貴社の記者が汽車で帰社する");
while( sapi.isAsySpeak()){ //非同期読み上げの終了を待つ
delay(100);
}
sapi.dispose();
}
void draw(){
}
public void speakAsyMsg(java.lang.String msg)
dispose()
すると、強制的に発声が停止します。読み上げ中か否かは isAsySpeak()
で知ることが可能です。setVoice(java.lang.String)
で
音声データを指定しておく必要があります。msg
- 読み上げる文章
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.setVoice("Microsoft Haruka Desktop");
sapi.speakAsyMsg("貴社の記者が汽車で帰社する"); //非同期読み上げ
while( sapi.isAsySpeak()){
delay(100);
}
sapi.dispose();
}
void draw(){
}
public void speakAsySsmlMsg(java.lang.String msg)
dispose()
すると、強制的に発声が停止します。読み上げ中か否かは isAsySpeak()
で知ることが可能です。setVoice(java.lang.String)
で
音声データを指定しておく必要があります。msg
- 読み上げる文章
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.setVoice("Microsoft Haruka Desktop");
sapi.speakAsySsmlMsg("<speak version=\"1.0\" xml:lang=\"ja-JP\"><sub alias=\"ピカチュウ\">光宙</sub></speak>);
while( sapi.isAsySpeak()){
delay(100);
}
sapi.dispose();
}
void draw(){
}
public void speakSsmlMsg(java.lang.String msg)
setVoice(java.lang.String)
で
音声データを指定しておく必要があります。msg
- 読み上げる文章
import WinSAPI.WinSAPI;
void setup(){
WinSAPI sapi = null;
sapi = new WinSAPI("");
sapi.setVoice("Microsoft Haruka Desktop");
sapi.speakSsmlMsg("<speak version=\"1.0\" xml:lang=\"ja-JP\">今日は<say-as interpret-as=\"date\" format=\"ymd\">2017/04/30</say-as>です。</speak>");
}
void draw(){
}