短いテキストの音声合成
H5/JS SDK
1. ブラウザ互換性
| オペレーティングシステム | 対応ブラウザの最低バージョン | |
|---|---|---|
| chrome | Firefox | |
| Windows 7 | 41.0.2272.76 | 46 |
| Windows 10/11 | 43.0.2357.81 | 46 |
| MAC OS | 43.0.2357.81 | 46 |
2. 導入
<!-- 【1.1】ストリーミングプレーヤーのファイルを導入する -->
<script type="text/javascript" src="static/pcm-player.js"></script>
<!-- 【1.2】SDKのコアファイルを導入する -->
<script type="text/javascript" src="sdk/TtsSDK.min.js"></script>注意:
音声ストリームの再生。 音声ストリームの再生には、pcm-player プラグインを使用することができますが、他の方法でも構いません。あくまで参考としてご利用ください。
3. パラメータの配置
3.1 エンジンパラーメータ
(1)パラメータのインスタンス
-
app_id と secretの設定
-
app_id と secretを取得するために、営業担当にご連絡ください。
-
signature と timestamp
- ユーザーはインターフェースを呼出して、 timestamp と signatureを取得します。
-
合成パラメータの設定
- JSON を通して、
payloadフィールドに合成パラメータを設定します。 - パラーメータが不足している場合や、値が範囲を超えている場合、
onErrorコールバックでエラーコード及びエラーメッセージが返されます。
- JSON を通して、
| パラーメータ | タイプ | 必須かどうか | 説明 | デフォルト値 |
|---|---|---|---|---|
| text | String | はい | 合成音声のテキストの長さの制限は、1024バイト(UTF-8エンコード)です。 | 必須 |
| format | String | いいえ | 音声エンコードの形式は、wav / pcm / mp3で、デフォルト形式はpcmです。 | pcm |
| sample_rate | Integer | いいえ | 音声のサンプリングレートは、デフォルト値は 24000ですが、8000も16000も選択できる。 | 24000 |
| lang_type | String | はい | 言語のオプション | 必須 |
| voice | String | いいえ | ボイスのオプション | 日本語Yuko 英語Julie 中国語Xiaohui |
| emotion | String | いいえ | 感情・スタイル | なし |
| volume | Float | いいえ | 音量、範囲は [0.1, 3]で、デフォルト値は1で、通常は小数点以下1桁で十分です。 | 1 |
| speech_rate | Float | いいえ | 話速、範囲は [0.2, 3]で、デフォルト値は1で、通常は小数点以下1桁で十分です。 | 1 |
| pitch_rate | Float | いいえ | ピッチ、範囲は [0.1,3.0]で、デフォルト値は1で、通常は小数点以下1桁で十分です。 | 1 |
| silence_duration | Integer | いいえ | 文末の無音時間、単位はms,デフォルト値は125です | 125 |
| enable_timestamp | Boolean | いいえ | 是否开启返回时间戳功能 | false |
例 (方法1、おすすめ):バックエンドから timestamp、signatureを取得します。
new TTSEngine({
app_id: '',
signature : '',
timestamp : 1234567890,
payload: {
text: '',
format: '',
sample_rate: 24000,
lang_type: '',
voice: '',
emotion: '',
volume: 1,
speech_rate: 1,
pitch_rate: 1,
silence_duration: 125,
enable_timestamp: false,
}
})例 (方法2,不安全): secret をプロジェクトエンドに記述し、 signatureでフロントエンド側で生成します。
new TTSEngine ({
app_id: '',
secret : '',
payload: {
text: '',
format: '',
sample_rate: 24000,
lang_type: '',
voice: '',
emotion: '',
volume: 1,
speech_rate: 1,
pitch_rate: 1,
silence_duration: 125,
enable_timestamp: false,
}
})3.2 初期化方法
(1)パラーメータの配置
| 名前 | タイプ | 説明 | デフォルト値 |
|---|---|---|---|
| engineFirstInitDone | Function | 初期化成功時のコールバック方法 | なし |
| engineFirstInitFail | Function | 初期化失敗時のコールバック方法 | なし |
(2)パラメータのインスタンス
new TTSEngine ({
engineFirstInitDone : function () {},
engineFirstInitFail : function (status,msg) {}
})3.3 合成結果の返却
(1) パラーメータの配置
| 名前 | タイプ | 説明 | デフォルト値 |
|---|---|---|---|
| onTimestamp | Function | エンジンが返すタイムスタンプ情報 | なし |
| onDuration | Function | エンジンが返す合成音声の長さ | なし |
| onResult | Function | エンジンが返す合成されたバイナリデータのコールバック | なし |
| onCompleted | Function | エンジンが返す合成されたtask_idの情報 | なし |
| onWarning | Function | エンジンからの警告結果のコールバックメソッド | なし |
| onError | Function | エンジンからのエラー結果のコールバックメソッド | なし |
(2) パラメータのインスタンス
new TTSEngine ({
onTimestamp : function (taskId, payload) {},
onDuration : function (taskId, payload) {},
onResult : function (data) {},
onCompleted : function (taskId) {},
onWarning : function (status, msg, taskId) {},
onError : function (status, msg, taskId) {}
})3.4 ネットワーク
(1)パラーメータの配置
| 名前 | タイプ | 説明 | デフォルト値 |
|---|---|---|---|
| onNetworkError | Function | ネットワーク監視用のコールバック | 无 |
(2)パラーメータのインスタンス
new TTSEngine ({
onNetworkError : function (status, msg) {},
})4. メソッド呼出し
startSynthesis()
機能:音声合成を開始します。
cancelSynthesis()
機能:音声合成をキャンセルします。
destroySynthesis()
機能:音声合成インスタンスを破棄します。