2014-09-28 52 views
2

我在使用iOS 8.0.2和XCode 5上的AVSpeechSynthesis時遇到了問題。我在模擬器上試了一下,發現「語音初始化錯誤:2147483665」。然後我在iPhone 5上試了一下,沒有發現任何錯誤,但沒有發言。AVFoundation語音合成iOS 8和XCode 6

在我的.h文件我輸入

進口

,並有@property(強,非原子)AVSpeechSynthesizer *合成;

在我的.m文件我合成的合成

我有AVFoundation在我的框架中引用

在我viewDidLoad中我下面

self.synthesizer = [[AVSpeechSynthesizer的alloc]初始化] ; self.synthesizer.delegate = self;

後來在我的代碼來控制什麼是說我下面

AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:dialog]; 
utterance.rate = AVSpeechUtteranceDefaultSpeechRate; 
utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-au"]; 
[self.synthesizer speakUtterance:utterance]; 

我有CCViewController:的UIViewController在我的視圖控制器。

有誰知道什麼是錯的? AVFoundation是否適用於iOS 8?

我看到一個類似的帖子在堆棧溢出說,以初始化我的發言@「」,但沒有奏效。

任何幫助,將不勝感激。

感謝, 格雷格

+0

8.1模擬器不做TTS。下載7.1模擬器並將其用於測試。 – vijayst 2014-11-06 07:45:06

回答

2

你有什麼應該有一個小的調整工作,我認爲(見下文),但只有一個設備,而不是在模擬器上。當我嘗試運行您的代碼或代碼時,我在模擬器中使用了AVSpeachUtterance,我複製了相同的錯誤消息。不知道這是一個錯誤還是隻是模擬器的限制。爲了使事情正常工作,請嘗試註釋掉該行:

utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-au"]; 

它是否工作呢?如果沒有這行代碼,我們在iPhone 5(8.0.2)上應該能夠正常工作,但是如果我使用這裏顯示的任何代碼語言代碼(What are the BCP-47 voice codes available for iOS 7 AVSpeechSynthesisVoice?),則不會使用任何文本。當我明確地設置語言時,我可以讓事情起作用的唯一方法是使用@「en-GB」,這也是手機在設置中配置的語言。如果我在設置中更改手機的語言,則可以使用其他語言代碼,例如美國英語和@「en-US」。

作爲工作的通知你,所需虛擬文本的初始位@錯誤,即」「把事情似乎被固定在8.0.2

+1

我嘗試了這種評論聲音的方法。但是,它沒有奏效。 – vijayst 2014-11-04 05:23:50