[圖片上傳失敗...(image-2e0a59-1600661451880)]
訊飛 TTS
語音合成 Flutter插件
[圖片上傳失敗...(image-6a6c9d-1600661451880)]
Fluttify系列插件
依賴:
dependencies:
flutter:
sdk: flutter
xftts_fluttify: ^x.x.x
配置
iOS
Info.plist
配置:
<key>NSMicrophoneUsageDescription</key>
<string>需要麥克風權限</string>
<key>NSLocationUsageDescription</key>
<string>需要定位權限</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>需要定位權限</string>
<key>NSContactsUsageDescription</key>
<string>需要聯(lián)系人權限</string>
導入:
import 'package:xftts_fluttify/xftts_fluttify.dart';
使用:
初始化
初始化即創(chuàng)建語音配置對象,只有初始化后才可以使用MSC的各項服務。建議將初始化放在程序入口處敷存,初始化代碼如下:
await XfTTS.init('你的appid');
創(chuàng)建合成器對象
合成器對象為單例际乘,創(chuàng)建方法為:
Synthesizer synthesizer = await XfTTS.createSynthesizer();
創(chuàng)建后漓帚,后續(xù)的語言合成操作皆在此對象上操作梭伐。
開始語音
通過調用合成器的開始合成語音方法兵琳,可以讓app“說話”,代碼如下:
await synthesizer.startSpeaking('你要說的話');
在合成過程中罐氨,可以控制播放的狀態(tài):
// 暫停播放,僅在合成播放模式下有效滩援,暫停播放岂昭,并不會暫停音頻的獲取過程, 只是在把播放器暫停
await synthesizer.pauseSpeaking();
// 在暫停后狠怨,在當前暫停位置開始播放合成的音頻
await synthesizer.resumeSpeaking();
// 調用此函數(shù)约啊,取消當前合成會話,并停止音頻播放
await synthesizer.stopSpeaking();
另外佣赖,可以通過:
await synthesizer.isSpeaking();
來判斷當前是否在合成/播放過程中恰矩。
設置參數(shù)
以下均為SDK常用參數(shù)說明,均在setParameter()
方法里面設置憎蛤,設置示例:setParameter(SpeechConstant.VOICE_NAME, voicer);
更多詳細參數(shù)請參考:MSC Android API文檔.
參數(shù)名稱 | 名稱 | 說明 |
---|---|---|
ENGINE_TYPE | 引擎類型 | 通過此參數(shù)設置離線模式外傅,普通版設置為TYPE_LOCAL纪吮,高品質版設置為TYPE_XTTS |
voice_name | 發(fā)音人 | 通過此參數(shù)設置不同的發(fā)音人,達到不同的語言和方言碾盟、性別等效果技竟,默認發(fā)音人:xiaoyan |
speed | 合成語速 | 通過此參數(shù)熙尉,設置合成返回音頻的語速检痰,值范圍:[0,100]椎椰,默認:50 |
volume | 合成音量 | 通過此參數(shù)俭识,設置合成返回音頻的音量套媚,值范圍:[0堤瘤,100],默認:50 |
pitch | 合成語調 | 通過此參數(shù)慎皱,設置合成返回音頻的語調,值范圍:[0天揖,100]今膊,默認:50 |
sample_rate | 采樣率 | 通過此參數(shù)設置音頻的采樣率市埋,可選值:8000聘裁,16000衡便,默認:16000 |
tts_audio_path | 合成錄音保存路徑 | 通過此參數(shù)谴餐,可以在合成完成后在本地保存一個音頻文件,值范圍:有效的文件相對或絕對路徑(含文件名)呆抑,默認值:null |
audio_format | 音頻格式 | 通過此參數(shù)設置合成音頻文件格式厌殉,可選:pcm公罕、wav楼眷,默認值:pcm |
釋放資源
在不需要使用語音合成引擎的時候罐柳,需要釋放掉對應的資源张吉,調用方法如下:
await synthesizer.destroy();
社區(qū)
QQ群 938842596 |
---|
<img src="https://github.com/fluttify-project/fluttify-project/blob/master/resources/1593774713224_temp_qrcode_share_9993.png?raw=true" height="300"> |
LICENSE
Copyright 2020 yohom
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.