// // BDSSpeechSynthesizerDelegate.h // BDSSpeechSynthesizer // // Created by 段弘 on 13-11-23. // Copyright (c) 2013年 百度. All rights reserved. // #import <Foundation/Foundation.h> @class BDSSpeechSynthesizer; typedef enum BDSAudioPlayerPauseSources { BDS_AUDIO_PLAYER_PAUSE_SOURCE_USER, BDS_AUDIO_PLAYER_PAUSE_SOURCE_AUDIO_INTERRUPT, BDS_AUDIO_PLAYER_PAUSE_SOURCE_ENTERED_BACKGROUND }BDSAudioPlayerPauseSources __attribute__((deprecated("This parameter will be removed from paused callback. Current implementation of synthesizerPaused is kept in for backward compatibility for now, but will always pass BDS_AUDIO_PLAYER_PAUSE_SOURCE_USER as source. Start using - (void)synthesizerdidPause; instead."))); typedef enum BDSAudioFormat{ BDS_AUDIO_FORMAT_PCM_8K = 0, BDS_AUDIO_FORMAT_PCM_16K = 1, BDS_AUDIO_FORMAT_MP3 = 2 }BDSAudioFormat; @protocol BDSSpeechSynthesizerDelegate <NSObject> /** * @brief 合成器开始工作 * * @param speechSynthesizer 合成器对象 */ @optional /** * @brief Began synthesizing new sentence. * Will receive one call for each queued sentence when SDK starts synthesizing them * * @param SynthesizeSentence Sentence ID generated BY SDK and returned by * speakSentence- and synthesizeSentence- interface. * * SynthesizeSentence may be any value from NSInteger's value * range, including negative values but excluding -1, which is reserved to * indicate none/error. */ - (void)synthesizerStartWorkingSentence:(NSInteger)SynthesizeSentence; /** * @brief Finished synthesizing a sentence. * Will receive one call for each queued sentence when SDK finishes synthesizing them * * @param SynthesizeSentence Sentence ID generated BY SDK and returned by * speakSentence- and synthesizeSentence- interface. * * SynthesizeSentence may be any value from NSInteger's value * range, including negative values but excluding -1, which is reserved to * indicate none/error. */ - (void)synthesizerFinishWorkingSentence:(NSInteger)SynthesizeSentence; /** * @brief Began speak a sentence. * Will receive one call for each queued sentence when SDK begans playback on them * Not called if only synthesizing * * @param SpeakSentence Sentence ID generated BY SDK and returned by * speakSentence- interface. * * SpeakSentence may be any value from NSInteger's value * range, including negative values but excluding -1, which is reserved to * indicate none/error. */ - (void)synthesizerSpeechStartSentence:(NSInteger)SpeakSentence; /** * @brief 朗读完成 * Will receive one call for each queued sentence when SDK finishes playback on them * Not called if only synthesizing * * @param SpeakSentence Sentence ID generated BY SDK and returned by * speakSentence- interface. * * SpeakSentence may be any value from NSInteger's value * range, including negative values but excluding -1, which is reserved to * indicate none/error. */ - (void)synthesizerSpeechEndSentence:(NSInteger)SpeakSentence; /** * @brief 新的语音数据已经合成 * * @param newData 语音数据 * @param fmt Audio format in passed buffer. * @param newLength Currently synthesized character count of current sentence. * * @param SynthesizeSentence Sentence ID generated BY SDK and returned by * speakSentence- and synthesizeSentence- interface. * * SynthesizeSentence may be any value from NSInteger's value * range, including negative values but excluding -1, which is reserved to * indicate none/error. */ - (void)synthesizerNewDataArrived:(NSData *)newData DataFormat:(BDSAudioFormat)fmt characterCount:(int)newLength sentenceNumber:(NSInteger)SynthesizeSentence; /** * @brief Gives an estimation about how many characters have been spoken so far. * Not called if only synthesizing * * @param length Currently finished speaking character count of current sentence. * * @param SpeakSentence Sentence ID generated BY SDK and returned by * speakSentence- interface. * * SpeakSentence may be any value from NSInteger's value * range, including negative values but excluding -1, which is reserved to * indicate none/error. */ - (void)synthesizerTextSpeakLengthChanged:(int)newLength sentenceNumber:(NSInteger)SpeakSentence; /** * @brief invoked when player gets paused */ - (void)synthesizerdidPause; - (void)synthesizerPaused:(BDSAudioPlayerPauseSources)src __attribute__((deprecated("src parameter will be removed from paused callback. Current implementation of synthesizerPaused is kept in for backward compatibility for now, but will always pass BDS_AUDIO_PLAYER_PAUSE_SOURCE_USER as pause source. Start using - (void)synthesizerdidPause; instead."))); /** * @brief invoked when player is resumed from pause */ - (void)synthesizerResumed; /** * @brief 合成器发生错误 * * @param error 错误对象 * @param SpeakSentence Sentence ID generated BY SDK and returned by * speakSentence- interface. * * @param SynthesizeSentence Sentence ID generated BY SDK and returned by * speakSentence- and synthesizeSentence- interface. * * SpeakSentence may be any value from NSInteger's value * range, including negative values, also -1 may be encountered in this callback * if error happened while only synthesizing or playback haven't started yet. * * SynthesizeSentence may be any value from NSInteger's value * range, including negative values, also -1 may be encountered in this callback * if error happened in player and synthesizer had already finished it's work. */ - (void)synthesizerErrorOccurred:(NSError *)error speaking:(NSInteger)SpeakSentence synthesizing:(NSInteger)SynthesizeSentence; /** * @brief invoked when user calling cancel interface */ - (void)synthesizerCanceled; @end