使用TTS.lib的文本到语音实况推文

时间:2016-02-14 18:11:38

标签: java string twitter processing text-to-speech

我正在尝试将特定用户的推文发送到Processing,然后使用TTS库发出声明。到目前为止,我已经设法将推文发送到Processing,并按照我的要求打印。但是,考虑到我的新手水平技能,添加TTS的东西是证明有问题的地方。

目前发生的是我收到错误消息:

TTS类型中的方法speak(String)不适用于参数(String [])

有人有什么想法吗?非常感谢帮助。感谢。

import twitter4j.util.*;
import twitter4j.*;
import twitter4j.management.*;
import twitter4j.api.*;
import twitter4j.conf.*;
import twitter4j.json.*;
import twitter4j.auth.*;

import guru.ttslib.*;


import java.util.*;

TTS tts;
tts = new TTS();

ConfigurationBuilder cb = new ConfigurationBuilder();

cb.setOAuthConsumerKey("XXXX");
cb.setOAuthConsumerSecret("XXXX");
cb.setOAuthAccessToken("XXXX");
cb.setOAuthAccessTokenSecret("XXXX");

java.util.List statuses = null;


Twitter twitter = new TwitterFactory(cb.build()).getInstance();

String userName ="@BBC";
int numTweets = 19;
String[] twArray = new String[numTweets];

  try {
    statuses = twitter.getUserTimeline(userName);
  }
  catch(TwitterException e) {
  }

  for (int i=0; i<statuses.size(); i++) {
    Status status = (Status)statuses.get(i);

    //println(status.getUser().getName() + ": " + status.getText());
    twArray[i] = status.getUser().getName() + ": " + status.getText();

  }

println(twArray);

tts.speak(twArray);

1 个答案:

答案 0 :(得分:0)

错误说明了一切:tts.speak()函数只取一个String值,但你给它一个String[]数组。

换句话说,您一次只能传递一条推文。相反,你立即传递每条推文。该函数不知道如何处理,所以你得到错误。

您只需传入一个String值。你如何做到这一点取决于你的目标是什么。您可能只是传递第一条推文:

tts.speak(twArray[0]);

或者您可以一次传递一条推文:

for(String tweet : twArray){
   tts.speak(tweet);
}