在C ++中使用Gstreamer和google speech api(Streaming Transcribe)

问题描述 投票:1回答:2

我正在使用来自云平台的Google语音API来获取流媒体音频的语音到文本。我已经使用curl POST使用GCP对short audio file的请求完成了REST api调用。

我已经看过Google Streaming Recognize的documentation,它说“仅通过gRPC可以获得流式语音识别”。

我在OpenSuse Leap 15.0中安装了gRPC(也是protobuf)。这是目录的屏幕截图。

Directory

接下来我试图从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而不是用于模拟麦克风电话音频的功能的任何建议?

c++ speech-recognition gstreamer grpc google-speech-api
2个回答
1
投票

如何运行测试

按照qazxsw poi上的说明操作。先决条件 - 安装qazxsw poi,Screenshot2cpp-docs-samples,并在上面的链接中将环境设置为saib。

gstreamer而不是用于模拟麦克风电话音频的功能

对于这个程序,我创建了管道

grpc

通过更改管道中的适当元素,可以将音频文件更改为flac或mp3

protobuf

从rtp流中获取有效负载并将其写入文件的过程是在另一个线程中完成的,而不是将数据发送到谷歌并阅读响应。


0
投票

也许专用声卡可以听rtsp流?同

googleapis
© www.soinside.com 2019 - 2024. All rights reserved.