2

我在 iOS 中使用 Google 文本转语音服务。

我可以使用以下代码使用英语 TTS。

NSString *queryTTS = [text stringByReplacingOccurrencesOfString:@" " withString:@"+"];

NSString *linkTTS = [NSString stringWithFormat:@"http://translate.google.com/translate_tts?tl=en&q=%@",queryTTS];

NSData *dataTTS = [NSData dataWithContentsOfURL:[NSURL URLWithString:linkTTS]];

_googlePlayer = [[AVAudioPlayer alloc] initWithData:dataTTS error:nil]; 
[_googlePlayer play];

所以我将 url 地址更改为语音泰国 TTS,如以下链接。

NSString *queryTTS = [text stringByReplacingOccurrencesOfString:@" " withString:@"+"];

NSString *linkTTS = [NSString stringWithFormat:@"http://translate.google.com/translate_tts?tl=th&q=%@",queryTTS];

NSData *dataTTS = [NSData dataWithContentsOfURL:[NSURL URLWithString:linkTTS]];

_googlePlayer = [[AVAudioPlayer alloc] initWithData:dataTTS error:nil]; 
[_googlePlayer play];

在我将该链接更改为 之后"th",该 google TTS 服务不会说出我的泰语文本。

我的代码错了吗?

或者如果没有,我该如何更改 Google Text To Speech API 中的语言?

谢谢你的阅读。

4

1 回答 1

0

只是想说一声谢谢。我一直在寻找如何在 iPhone 上使用 API,这很有帮助。另外,我尝试将语言更改为泰语并没有问题。

* ** 更新 ** *

抱歉,我无法让它工作。我没有任何泰语文本,所以我只使用了英语,它把这个词拼了出来。我认为这意味着它正在工作。但是,当我用正确的词改成韩文和中文时,我什么也听不见了。然而,英语、法语、德语和意大利语都有效。

我可以通过添加以下内容来解决此问题:

NSURL *url = [NSURL URLWithString:[linkTTS stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSData *dataTTS = [NSData dataWithContentsOfURL:url];

我的问题(也可能是你的问题)是 URL 中有国际字符。这导致 [NSURL URLWithString] 返回 nil。

这将在模拟器中工作,并且要完成剩下的工作,请查看此线程:

iPhone SDK - 谷歌 TTS 和编码

基本上,您必须将您的用户代理更改为其他内容,例如“Mozilla/5.0”。

于 2012-08-18T14:45:46.817 回答