使用 TTS.lib 的文本转语音实时推文
Text to Speech live Tweets using TTS.lib
我正在尝试将特定用户的推文放入处理程序,然后使用 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);
错误说明了一切:tts.speak()
函数采用单个 String
值,但你给它一个 String[]
数组。
换句话说,您一次只能传递一条推文。相反,您一次传递每条推文。该函数不知道如何处理它,所以你得到了错误。
您只需传入一个 String
值。你如何做到这一点取决于你的目标到底是什么。您可能只传递第一条推文:
tts.speak(twArray[0]);
或者您可以一次传入每条推文:
for(String tweet : twArray){
tts.speak(tweet);
}
我正在尝试将特定用户的推文放入处理程序,然后使用 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);
错误说明了一切:tts.speak()
函数采用单个 String
值,但你给它一个 String[]
数组。
换句话说,您一次只能传递一条推文。相反,您一次传递每条推文。该函数不知道如何处理它,所以你得到了错误。
您只需传入一个 String
值。你如何做到这一点取决于你的目标到底是什么。您可能只传递第一条推文:
tts.speak(twArray[0]);
或者您可以一次传入每条推文:
for(String tweet : twArray){
tts.speak(tweet);
}