对于Mac机上录制的音频,Google Speech API会引发无效的音频通道计数异常。
我只是在使用Google提供的示例应用程序。
com.google.api.gax.grpc.ApiException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Invalid audio channel count
at com.google.api.gax.grpc.ExceptionTransformingCallable$ExceptionTransformingFuture.onFailure(ExceptionTransformingCallable.java:109)
at com.google.api.gax.core.ApiFutures$1.onFailure(ApiFutures.java:52)
at com.google.common.util.concurrent.Futures$6.run(Futures.java:1764)
at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:456)
at com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:817)
at com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:753)
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:634)
at io.grpc.stub.ClientCalls$GrpcFuture.setException(ClientCalls.java:466)
at io.grpc.stub.ClientCalls$UnaryStreamToFuture.onClose(ClientCalls.java:442)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.close(ClientCallImpl.java:481)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl.access$600(ClientCallImpl.java:398)
at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:513)
at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:52)
at io.grpc.internal.SerializingExecutor$TaskRunner.run(SerializingExecutor.java:154)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Invalid audio channel count
at io.grpc.Status.asRuntimeException(Status.java:545)
... 13 more
Run Code Online (Sandbox Code Playgroud)
这需要任何特殊的配置吗?
这个错误是什么意思?
有没有办法从storm命令行客户端显示所有当前运行的Storm拓扑?
Storm文档没有说明这一点.
http://storm.apache.org/documentation/Command-line-client.html
Spark Streaming 如何fileStream从一个时间间隔到另一个时间间隔识别监控目录中的新文件?
它是基于新文件名还是文件创建时间戳或任何其他方法?
newFilesOnly辩论的意义何在?
fileStream(String directory, Class<K> kClass, Class<V> vClass, Class<F> fClass, Function<org.apache.hadoop.fs.Path,Boolean> filter, boolean newFilesOnly, org.apache.hadoop.conf.Configuration conf)
Run Code Online (Sandbox Code Playgroud) 如何在Spark流中获取当前批处理时间戳(DStream)?
我有一个火花流应用程序,输入数据将进行多次转换.
我需要在执行期间使用当前时间戳来验证输入数据中的时间戳.
如果我与当前时间进行比较,那么时间戳可能与每个RDD转换执行不同.
有没有办法获得时间戳,特定的Spark流微批处理已经开始或它属于哪个微批处理间隔?
我正在尝试将二进制格式的音频剪辑发送到 Kafka 主题。
但 Kafka 没有收到该消息。
以下是我的制作人:
import java.util.Properties;
import org.apache.kafka.clients.producer.KafkaProducer;
import org.apache.kafka.clients.producer.ProducerRecord;
import org.apache.log4j.BasicConfigurator;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class AudioProducer {
public static void main(String[] args) {
BasicConfigurator.configure();
System.out.println("program started");
Properties properties = new Properties();
properties.put("bootstrap.servers", "broker-host:9092");
properties.put("acks", "all");
properties.put("retries", 0);
properties.put("batch.size", 26214400);
properties.put("linger.ms", 1);
properties.put("buffer.memory", 2*26214400);
properties.put("max.request.size", 26214400);
properties.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
properties.put("value.serializer", "org.apache.kafka.common.serialization.ByteArraySerializer");
KafkaProducer<String,byte[]> producer = new KafkaProducer<String, byte[]>(properties);
try {
byte[] temp =Files.readAllBytes(Paths.get(args[0]));
System.out.println("input path:"+args[0]);
producer.send(new ProducerRecord<String,byte[]>("audio-queue", "test-key",temp ));
} catch (IOException e) {
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud) 我知道hadoop REST API可以通过程序访问作业状态。
同样,是否有任何方法可以在程序中获取火花作业状态?
在eclipse中执行Java程序时如何打印当前正在执行的方法名?
例如:
public class Bits {
public static void main(String[] args) {
System.out.println("method:main");
int result=TotSum(24,35);
System.out.println("total sum:" + result);
}
private static int TotSum(int i, int j) {
System.out.println("method:TotSum");
return (i+j);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
方法:主
方法:TotSum
总金额:59
在eclipse中是否可以自动打印当前正在执行的方法名称(而不是像以下代码那样在每个方法中使用硬编码的sysout语句或logger语句)?
public class Bits {
public static void main(String[] args) {
int result=TotSum(24,35);
System.out.println("total sum:" + result);
}
private static int TotSum(int i, int j) {
return (i+j);
}
}
Run Code Online (Sandbox Code Playgroud)
这个问题的所有答案都建议在程序中添加一些代码.
但我的问题是找出当前执行方法而不添加任何代码.
就像Java的eclipse功能一样.
我的输入字符串是
element1-element2-element3-element4a|element4b-element5-
Run Code Online (Sandbox Code Playgroud)
预期的产出是
element1-element2-element3-element4a-element5-
element1-element2-element3-element4b-element5-
Run Code Online (Sandbox Code Playgroud)
因此短划线( - )是分隔符,管道(|)表示位置的两个替代元素.
我能够为包含单个管道的输入生成组合:
ArrayList<String> finalInput = new ArrayList<String>();
String Input = getInputPath();
StringBuilder TempInput = new StringBuilder();
if(Input.contains("|")) {
String[] splits = Input.split("\\|", 2);
TempInput.append(splits[0]+"-"+splits[1].split("-", 2)[1]);
finalInput.add(TempInput.toString());
TempInput = new StringBuilder();
String[] splits1 = new StringBuilder(Input).reverse().toString().split("\\|", 2);
finalInput.add(TempInput.append(splits1[0]+"-"+splits1[1].split("-", 2)[1]).reverse().toString());
}
Run Code Online (Sandbox Code Playgroud)
但是如果有多个管道符号,则此逻辑会失败.
有没有有效的方法来使用拆分字符串与组合?
输入:
element1-element2-element3-element4a|element4b-element5-element6a|element6b
Run Code Online (Sandbox Code Playgroud)
输出:
element1-element2-element3-element4a-element5-element6a
element1-element2-element3-element4b-element5-element6a
element1-element2-element3-element4a-element5-element6b
element1-element2-element3-element4b-element5-element6b
Run Code Online (Sandbox Code Playgroud) 我们正在以伪模式执行 Storm 拓扑。
Storm 拓扑运行良好并且能够连接 Storm UI (8080)。
但是 Storm UI 没有显示正在运行的拓扑信息。
也重新启动了storm UI 进程,但没有用。
Storm 是否需要特殊配置才能在 Storm UI 中显示正在运行的拓扑?