如何将 Alan 的听写引擎集成到 Doctor.ai
用高度精确的 Alan AI 改进 Doctor.ai 的语音识别能力
对于一个语音机器人来说,其听写的能力是决定用户体验的好坏最重要因素之一。和一个话头醒尾的机器人交谈是很有趣的。而且说话比打字快两到三倍,所以口头交互的效率会高很多。
相比之下,像 Chrome 这样的断断续续的听写引擎会很快就让用户感到无语。在这种情况下,用户很快会意识到纠错所花的时间比说话表达所花的时间还要多。这样下去,用户会只打字不说话。这完全违背了开发语音机器人的初衷。
在开发医疗语音机器人 Doctor.ai(1,2,3,4,5和6)的过程中,我们很早就注意到了 Chrome 的听写引擎不是很好。它会听漏,甚至听错单词。它会生成语义混乱和不连贯的句子。更甚,医疗领域的对话是 Doctor.ai 最被期待的能力,但它在那方面的听力更是惨不忍睹。
我们一直在物色更好的引擎。这个新引擎要不仅擅长于日常的对话,而且还应该能够理解常见的医学术语,如疾病,药物和病原体等专业名词。我们物色的结果就是Alan AI。
官网介绍,Alan 是一个语音人工智能平台。自动语音识别(ASR)引擎的输出错误多,而Alan的口语理解(SLU)引擎就是专门为理顺这些数据而设计的。它有一个所谓的专业领域语言模型,可以更好地识别专业词汇,还可以动态适应用户的会话风格。
Alan 高度精确的听力给我们留下了深刻的印象(图 1)。它在正常和专业对话方面都完胜 Chrome。它听得懂许多生物医疗术语,如“photosynthesis”,“frontal sinus”,“Doxepin”,和“cowpox”(图 2)。正如你在图 1 中看到的,最让我们感到惊讶的是,尽管 Alan 也会听错一些单词,但每听完一句,它能够回头纠正错误并最终组成连贯的句子。
在本文中,我们将向你展示如何将 Alan 按钮集成到 Doctor.ai 的前端以改善用户体验(图 3)。它懂英语。如果你有企业版的 Alan,你也可以做一个德语版。Alan 的开发者计划有很慷慨的免费额度,所以这个项目不会产生开销。你可以在 GitHub仓库中找到这个项目的代码。
1.获取 Alan SDK 的 key
去Alan的网站注册。然后按照说明获得“开发者计划”。这个计划可以让你在 Alan 上免费互动超过一万次。进入 Alan Studio 后,单击 Create Voice Assistant 并命名doctorai_en。
进入 Studio 后,创建一个"Alan Integrations"项目。删除左侧面板上的所有原始脚本,并创建一个新的脚本。将代码 1 复制并粘贴到内容中。这个脚本捕捉用户的语音,并且去掉了Alan 自带的语音回复。最后单击</>Integrations 按钮。
fallback((p) => {
//p.play('Sorry, I have no answer');
console.log("I just capture your voice");
});
在 Integration 页面中,将Microphone timeout设置为 3 秒,这样 Alan 就不会捕捉来自 Doctor.ai 的语言回复。在这里你可以改变语言。最后,复制 SDK 的密钥。
2.修改 Doctor.ai 的前端
这里,我们更新了 Doctor.ai 前端的代码来整合 Alan 按钮。你可以在代码仓库中找到最新的代码。以下是简概。
chatbot 的初始化方式与之前的文章类似。但我们加了一个ref。接下来,我们使用 Alan 的parsed事件来捕获语音并将文本传输到聊天机器人的输入框。最后,我们将 Alan 按钮添加到前端的DOM里。
3.在 Amplify 启动前端
现在让我们设置 Amplify 前端并测试 Alan。你可以从我们的代码仓库中分叉代码到你的账户上。如这篇文章所述一步一步设置Doctor.ai。在设置过程中添加以下环境变量:
REACT_APP_NEO4JPASSWORD=[your neo4j password]
REACT_APP_NEO4JURI=bolt://[your_neo4j_server_ip]:7687
REACT_APP_NEO4JUSER=neo4j
REACT_APP_OPENAI_API_KEY=[your OpenAI Key]
REACT_APP_LANGUAGE=English
REACT_APP_ALAN_API=[your Alan SDK Key]
所以你的 Configure build settings 页面应该像这样:
一旦 Amplify 完成了设置,到你的机器人页面好好玩吧。在 Alan 捕捉到你的语音之后,转录的文本将出现在输入框里。你可以检查更改文本,然后再确定发送到机器人那。
4.德语版本
如果你有 Alan 的企业版,设置德语版本很容易。在 Alan Studio 创建一个新的项目并设置语言为 de(如图 10)。复制并保存 SDK 的 key。
在 Amplify 中的设置过程中,将 REACT_APP_LANGUAGE 改变为 German。
现在,你也可以用德语聊天了。
结论
在本文中,我们向你展示了如何将 Alan 的听写引擎集成到 Doctor.ai 中。这个引擎比 Chrome 更能成功捕捉我们的话语。尽管 Alan 还是会误解一些单词,但我们可以更容易地在输入框中纠正它们。这大大提高了我们与 Doctor.ai 交互的效率。
这个项目还展示了,扩展 Doctor.ai 是多么的容易。Doctor.ai 是模块化的,通过 API 进行通信。开发人员可以相应地切换单个组件。我们可以很容易地添加元素到 Amplify 前端,以提高用户体验。所以我们鼓励你使用 Doctor.ai 并告诉我们你的使用经验。