我正在使用来自云平台的Google语音API来获取流媒体音频的语音到文本。我已经使用curl POST
使用GCP对short audio file
的请求完成了REST api调用。
我已经看过Google Streaming Recognize的documentation,它说“仅通过gRPC可以获得流式语音识别”。
我在OpenSuse Leap 15.0中安装了gRPC(也是protobuf)。这是目录的屏幕截图。
接下来我试图从this link运行streaming_transcribe示例,我发现示例程序使用本地文件作为输入,但将其模拟为微型输入(按顺序捕获64K块),然后将数据发送到Google服务器。
对于检查grpc的初始测试是否在我的系统上正确设置,我运行了make run_tests
。我已将Makefile更改为:
...
...Some text as original Makefile
...
.PHONY: all
all: streaming_transcribe
googleapis.ar: $(GOOGLEAPIS_CCS:.cc=.o)
ar r $@ $?
streaming_transcribe: streaming_transcribe.o parse_arguments.o googleapis.ar
$(CXX) $^ $(LDFLAGS) -o $@
run_tests:
./streaming_transcribe -b 16000 resources/audio.raw
./streaming_transcribe --bitrate 16000 resources/audio2.raw
./streaming_transcribe resources/audio.flac
./streaming_transcribe resources/quit.raw
clean: rm -f *.o streaming_transcribe \
googleapis.ar \
$(GOOGLEAPIS_CCS:.cc=.o)
这不能很好地工作(原始的Makefile也不行)。但是运行Makefile后会创建qazxsw poi文件。所以我手动运行该文件并得到以下响应
streaming_transcribe.o
有关如何运行测试和使用gstreamer而不是用于模拟麦克风电话音频的功能的任何建议?
如何运行测试
按照qazxsw poi上的说明操作。先决条件 - 安装qazxsw poi,和cpp-docs-samples,并在上面的链接中将环境设置为saib。
gstreamer而不是用于模拟麦克风电话音频的功能
对于这个程序,我创建了管道
grpc
通过更改管道中的适当元素,可以将音频文件更改为flac或mp3
protobuf
从rtp流中获取有效负载并将其写入文件的过程是在另一个线程中完成的,而不是将数据发送到谷歌并阅读响应。
也许专用声卡可以听rtsp流?同
googleapis