我们如何将文本输入发送到 google 助手?

How can we send text input to the google assistant?

目前google小助手SDK支持语音输入,也就是说我的问题很简单:我想和google小助手对话,但不使用语音,只是聊天。这当然是 可能的 ,例如,在 Google Allo 中。 google 是否公开了用于文本输入的 API?

所以看起来 sdk 不接受文本,但它确实接受音频文件输入。它甚至输出为音频文件。

python -m pushtotalk -i somefile.wav -o outputfile.wav

这让我开始思考,我写了一个脚本:

echo  >> query.txt
espeak -f query.txt -w audio_query.wav
python -m pushtotalk -i audio_query.wav -o audio_response.wav &> pushtotalk.log
pocketsphinx_continuous -infile audio_response.wav 2> pocketsphinx.log > response.txt
cat response.txt

rm response.txt query.txt audio_query.wav audio_response.wav pocketsphinx.log pushtotalk.log

这只是一个 shell 脚本,但也可以转换为 python。要使用它,请将脚本另存为 pushtotalk_script.sh 和 运行 ./pushtotalk_script.sh "how tall is mount kilamanjaro?。我正在使用 espeak 将文本转换为 wav 文件。然后使用 assistant sdk 得到响应。你可以在这里停下来播放响应。 Pocketsphinx 是由 CMU 创建的音频转录器引擎。您可以使用 apt-get 找到这些工具的软件包,但如果您使用 OSX,pocketsphinx 软件包将不起作用,您需要点击这些 formulas. Also, here's a python module 才能使用 espeak。还有一个 pocketsphinx 的回购作为 python 模块,但我不能 link 超过两个 links.

Google 的助手在理解 espeak 的输出方面似乎没有太大问题。但是,Pocketsphinx 通常在转录文本时会遇到一些麻烦。但它适用于简单的响应。根据问题和回答音频文件的长度,整个过程大约需要 5 到 10 秒。

v1alpha2 版本的 Google Assistant SDK 服务现在支持它