您是否已经看过
Porfirievich在做什么? 她将文本附加到您的任何短语中。 真正有趣的事情出来了,因为她接受了陀思妥耶夫斯基,托尔斯泰,普希金,布尔加科夫,果戈理和佩列文等书籍的培训。
我想
:“用列维坦的声音来表达这件事,将是Google新年大餐助手的绝佳替代品……” 而且我决定不将此活动推迟到
新的一年之后 (因为您自己理解)。
削减工作的全过程是在专有
的开源Aimybox框架上创建一个
开源语音助手Porfirievich ,然后代替常规的Google助手启动它。 好吧,与此同时,
您可以拖曳Alice 。
如果您想立即尝试所有这些操作,则可以从此处安装最新版本
Porfirievich API
该中心最近刊登了
一篇文章 ,讲述了米哈伊尔·格兰金(Mikhail Grankin)如何教
GPT-2神经网络
将 “有意义的”文本
附加到任何短语上。 原来好笑。 此外,可通过常规HTTP API打开对神经网络的访问。
我们转到您可以向Porfiryevich发出请求的站点,打开检查器,查看请求的去向和格式。

此API没有限制,但是开发人员仍然建议下载Porfiryevich模型并将其部署在他的服务器上。
Aimybox SDK
我们有Porfirievich API! 现在,有必要对智能手机的实际语音应用程序进行处理,以识别和合成语音。
一个很好的解决方案是
开放的Aimbox框架 ,他们已经在
这里和
这里的 Habré上编写了有关该
框架的文章。 它使您可以快速创建语音应用程序或在现有项目中嵌入语音功能。 同时,已经存在可以自定义的
精美GUI 。
您可以自己克隆示例应用程序 ,并在其基础上创建一个项目。顺便说一下, iOS SDK的第一个版本最近已经出现,因此对于iOS可以重复相同的操作。
Aimybox可以与任何对话框引擎一起使用,例如
Aimylogic,Rasa或Dialogflow ,并且还允许您实现与任何其他引擎的连接。 在我们的情况下,我们需要直接将请求发送到Porfirevich API并解析答案。 为此,不需要任何操作,只需编写相应的
Request ,
Response类和
DialogAPI本身的
实现,即可实际发送请求并解析响应。
识别与综合
在任何开箱即用的Android设备上,Google均可提供免费的语音识别和语音合成功能,因此无需担心。 当然,这只是声音,我想换一些更适合Porfirevich文学音节的东西...
列维坦之声
以前,
Yandex Speechkit-a (用于识别和合成语音的基于云的解决方案)具有出色的Levitan语音,非常适合我们的项目。 现在一切都移到了
Yandex Cloud上 ,一切都付了钱(没有任何1万个试用请求),所以我不得不寻找替代方案。
Alice-station.aimylogic.com有如此出色的技能测试服务。 在它上面,您可以选择用于合成答案的声音,并直接在浏览器中测试您的技能。 我们查看其API,并找到语音合成请求所指向的端点

在这里您可以看到,如果在此URL的
Speaker参数中替换
levitan ,则可以得到所需的结果。 这就是我们所需要的!
实际上, PorfirResponse类只是将该URL替换为必要的参数,以使语音合成器仅播放生成的mp3,而不用发音来自Porfiryevich的响应文本。将Google Assistant替换为Porfiryevich
您只需打开应用程序并点击麦克风按钮,即可启动我们的语音Porfiryevich。 但是,它比常规的Google助手运行起来要愉快得多,因为许多智能手机都内置了助手支持(例如,在我的Oneplus 7上,您可以按住电源按钮从任何屏幕上激活助手)。
为此,您只需要在
AndroidManifest中再注册一个意图过滤器
android.intent.action.ASSIST ,将
android:launchMode =“ singleTop”标志并在
MainActivity中实现
onNewIntent方法,即可在助手模式下调用应用程序时启动语音识别。
override fun onNewIntent(intent: Intent?) { super.onNewIntent(intent) if (intent?.action == Intent.ACTION_ASSIST) { val aimybox = (application as PorfirApplication).aimybox val channel = aimybox.stateChannel.openSubscription() launch { channel.consume { aimybox.startRecognition() } }.invokeOnCompletion { channel.cancel() } } }
在智能手机设置中,您需要选择Porfirevich作为默认助手。 设置->应用程序->默认应用程序
上色
在
styles.xml和
strings.xml文件中,您可以更改标准Aimybox GUI的颜色,并同时指定助手启动时将在屏幕上显示的起始短语。
我们启动
其实一切! 发射后,您可以观察到这些珍珠




如果您将另一台装有Yandex Alice的智能手机放在旁边并在上面进行聊天,则可以得到两个不太健康的人的“理智”对话

接下来是什么?
到目前为止,这些都是我想到的想法
- 在应用程序的主屏幕上,显示Porfirevich答案的历史记录,并可以共享。
- 使用设置进行屏幕设置-对话模式,响应时间,语音选择等。
如果您有更好的主意或发现了错误,请
随时使用Github ,现在所有项目代码都位于此。 您也可以捐赠(编写代码)。
有用的链接