日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

iOS SDK(舊版)

本文介紹了如何使用阿里云智能語音服務提供的舊版iOS SDK,包括SDK的安裝方法及SDK代碼示例。請注意,新用戶請關注新版iOS SDK。

注意

推薦您使用新版本iOS SDK,本版本后續將不再更新。詳情請參見iOS SDK

前提條件

  • 首先閱讀接口說明,詳情請參見接口說明

  • 已在智能語音管控臺創建項目并獲取appkey,詳情請參見創建項目

  • 已獲取智能語音服務訪問令牌,詳情請參見獲取Token概述

語音合成

語音合成即將文本轉化為語音。我們支持多個說話人聲音,支持PCM/WAV/MP3格式輸出,示例實現了基于PCM的語音合成和播放。

調用步驟

說明

請使用Embedded Binaries方式導入SDK到工程中。

  1. 導入NlsSdk中的AliyunNlsClientAdaptor.h、NlsSpeechSynthesizerRequest.h以及SynthesizerRequestParam.h頭文件。

  2. 實現NlsSpeechSynthesizerRequest的NlsSpeechSynthesizerDelegate回調方法。

  3. 創建AliyunNlsClientAdaptor對象nlsClient。

    該對象全局只需創建一次且可以重復使用。

  4. 通過調用nlsClient對象的createSynthesizerRequest方法獲得NlsSpeechSynthesizerRequest對象。

    該NlsSpeechSynthesizerRequest對象不可重復使用,一個請求創建一個對象。

  5. 通過SynthesizerRequestParam設置參數,如access Token、appkey等。

  6. 通過NlsSpeechSynthesizerRequest的setSynthesizerParams傳入步驟5中設置的SynthesizerRequestParam對象。

  7. 調用NlsSpeechSynthesizerRequest對象的start方法,開始語音合成。

  8. 通過NlsSpeechSynthesizerDelegate回調的-(void)OnBinaryDataReceived:(NlsDelegateEvent)event voiceData:(Byte *)data length:(NSInteger)length; 方法傳入合成語音數據。

  9. 使用NLSPlayAudio工具播放步驟8接收的語音數據。

關鍵接口

  • AliyunNlsClientAdaptor:語音處理客戶端,利用該客戶端可以進行一句話識別、實時語音識別和語音合成的語音處理任務。該客戶端為線程安全,建議全局僅創建一個實例。

  • NlsSpeechSynthesizerRequest:語音合成處理的請求對象,線程安全。

  • SynthesizerRequestParam:語音合成相關參數。

  • NlsSpeechSynthesizerDelegate:語音合成相關回調函數。在獲得結果、遇到錯誤等事件發生時會觸發回調。

代碼示例

#import <Foundation/Foundation.h>
#import "Synthesizer.h"
@interface Synthesizer()<NlsSpeechSynthesizerDelegate>{
    IBOutlet UITextView *textViewSynthesizer;
}
@end
@implementation Synthesizer
-(void)viewDidLoad{
    [super viewDidLoad];
    //1. 全局參數初始化操作
    //1.1 初始化語音合成客戶端
    _nlsClient = [[NlsClientAdaptor alloc]init];
    //1.2 初始化語音播放工具類
    _nlsAudioPlayer = [[NLSPlayAudio alloc]init];
    //1.3 初始化合成參數類
    _requestParam = [[SynthesizerRequestParam alloc]init];
    //1.4 設置log級別
    [_nlsClient setLog:NULL logLevel:1];
}
-(IBAction)startSynthesizer{
    //2. 創建請求對象和開始語音合成
    if(_synthesizerRequest!= NULL){
        _synthesizerRequest = NULL;
    }
    //2.1 初始化語音播放類
    [_nlsAudioPlayer cleanup];
    _nlsAudioPlayer = [[NLSPlayAudio alloc]init];
    //2.2 創建請求對象,設置NlsSpeechSynthesizerRequest回調。
    _synthesizerRequest = [_nlsClient createSynthesizerRequest];
    _synthesizerRequest.delegate = self;
    //2.3 獲取頁面合成文本
    NSString *inputText = [textViewSynthesizer text];
    //2.4 設置SynthesizerRequestParam請求參數
    [_requestParam setFormat:@"pcm"];
    [_requestParam setText:inputText];
    [_requestParam setToken:@""];
    [_requestParam setAppkey:@""];
    //2.5 傳入請求參數
    [_synthesizerRequest setSynthesizerParams:_requestParam];
    //2.6 開始語音合成
    [_synthesizerRequest start];
}
/**
 *3. NlsSpeechSynthesizerDelegate接口回調
 */
//3.1 本次請求失敗
- (void)OnTaskFailed:(NlsDelegateEvent)event statusCode:(NSString *)statusCode errorMessage:(NSString *)eMsg {
    NSLog(@"OnTaskFailed, statusCode is: %@ error message :%@",statusCode,eMsg);
}
//3.2 服務端連接關閉
- (void)OnChannelClosed:(NlsDelegateEvent)event statusCode:(NSString *)statusCode errorMessage:(NSString *)eMsg {
    NSLog(@"OnChannelClosed, statusCode is: %@",statusCode);
}
//3.3 回調合成語音數據,通過NlsAudioPlayer工具播放。
- (void)OnBinaryDataReceived:(NlsDelegateEvent)event voiceData:(Byte *)data length:(NSInteger)length{
    NSLog(@"Received voice data length %lu", length);
    [_nlsAudioPlayer process:data length:length];
}
//3.4 合成結束
- (void)OnSynthesizerCompleted:(NlsDelegateEvent)event result:(NSString *)result statusCode:(NSString *)statusCode errorMessage:(NSString *)eMsg {
}
//3.5 合成開始
- (void)OnSynthesizerStarted:(NlsDelegateEvent)event result:(NSString *)result statusCode:(NSString *)statusCode errorMessage:(NSString *)eMsg {
}
@end