从设计到开发,硅谷技术专家教你做“声控”APP

2023-10-21 20:10

本文主要是介绍从设计到开发,硅谷技术专家教你做“声控”APP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

编者:本文为携程机票研发部技术专家祁一鸣在携程技术微分享中的分享内容,关注携程技术中心微信公号ctriptech,获知更多一手干货。

【携程技术微分享】是携程技术中心推出的线上公开分享课程,每月1-2期,采用目前最火热的直播形式,邀请携程技术人,面向广大程序猿和技术爱好者,一起探讨最新的技术热点,分享一线实战经验,畅谈精彩技术人生,搭建一个线上的技术分享社区。

祁一鸣,2016年4月加入携程, 任机票研发部技术专家。毕业于美国常春藤名校Dartmouth College本科,曾先后在硅谷的Oracle, Yahoo!和Salesforce总部效力过。从scratch到delivery完成过的最成功的产品是年销售额超1亿美金的商业社区网站模板。平时喜欢吃冰激凌和甜甜圈, 也蛮喜欢上海野兽派的花。


在6月中刚刚结束的2016苹果全球开发者大会上, 人工智能助手Siri又一次成为焦点。Siri Intelligence不仅已被加入到快速输入功能和照片应用中,苹果还将在iOS 10版本中第一次开放Siri SDK给广大开发者们,使用户通过自己的声音与各种iOS APP互动成为可能。

此次让我们在携程技术微分享中先睹为快,看看如何模拟Siri智能来设计并开发一款搜索和试听iTunes音乐的手机App。

分享内容分为上下两部分。上半部分以设计为主,我们将一起了解Siri SDK在iOS10中给用户带来的新功能,回顾了人工智能的发展史,并一起用Sketch和Principle两款工具设计声控音乐APP的页面和交互。

下半部分以开发为主,用Xcode和Objective-C来实现APP页面开发。同时将用一款全新的移动端软件开发工具包资源来做语音识别,将我们想听歌曲的名字从声音转化成文字。之后,通过苹果iTtunes搜索API接口来获取歌名的专辑图片和歌曲试听资源。最后,将这些资源整合在一起,用精细的UI动画效果来开发完成这款声控音乐APP。

一起来体验下自己完整做件产品的快乐吧~

设计部分

将用到的设计工具包括Sketch和Principle。

Sketch (http://sketchapp.com/)是一款专为产品和UI设计师量身定做的设计工具, 它在2015在设计工具中被评为APP of the Year. 比起传统型的photoshop设计工具, Sketch更加轻量灵活,且价格便宜 。

图片描述

我们先用Sketch绘制声控APP的第一个页面和第二个页面的prototype。 包括用Sketch自带的iOS UI Design 模板添加status bar, 用Sketch自带的绘图工具添加文字Label, 背景形状图案,图片。

图片描述

之后, 我们在Principle里导入 用Sketch设计的两张页面。 Principle是一款实现每个设计页面之间动画衔接的工具。它可以直接import Sketch设计稿,在设计稿页面之上添加丰富的动画。 作为一款业界有名的设计动画工具, Principle在硅谷也是被设计师们广泛使用的。

图片描述

首先我们在Principle里复制一张和设计稿第一页显示一模一样的 Artboard放在第一页之后。 当用户点击第一页中的麦克风图标之后,Principle将自动跳转到第二页, 我们对相应的提示文案做修改, 并实现一个新的动画:在第一页点击麦克风后,第二页的麦克风将围绕着图标中心旋转, 以此作为APP正在倾听用户声音的提示。 最后,当麦克风旋转的动画结束后,再添加一个自动跳转到第三页的动画,让用户看到搜索到音乐。三个页面的衔接如下图。

图片描述

实现的动画可以从以下的gif中看到。

图片描述

至此, 我们用Sketch和 Principle完成了一款“声控”APP的原型prototype以及页面交互设计。 主流程是, 用户用手tap麦克风, 麦克风旋转加上页面文案提示 告知用户APP正在倾听用户声音, 当APP解析到用户声音并找到相关的歌曲以后, 将跳转到下一页显示歌曲的专辑图片以及播放一段音乐的节选。

开发部分

完成设计之后,我们将更换装备,用Xcode和Objective-C来开发这款 智能音乐APP 。我们将使用一款全新的移动端软件开发工具包资源来做语音识别,将我们想听歌曲的名字从声音转化成文字。之后,通过苹果的音乐搜索API接口来获取歌名的专辑图片和歌曲试听资源。

开发完成以后的project结构如下:

图片描述

首先来介绍 在APP中如何实现 智能识别用户语音的功能。 语音识别是人工智能应用广泛的一个领域。在众多已有科技中, 我选择了使用Nuance Speech Kit 2 的iOS SDK来实现APP中的功能。SpeechKit的具体使用指南可以在 https://developer.nuance.com/... 中找到。在这个Xcode project中, 我们会用 CocoaPods (https://cocoapods.org/)来维护工程依赖。在Project的目录下, 新建一个名为 Podfile 文件, 然后在Podfile里添加一行

pod ‘SpeechKit’

保存文件后, 在本地App目录下, 执行命令

pod install

安装成功后,打开 .xcworkspace 工程 可以直接通过以下的import语句来使用SpeechKit

import <SpeechKit/SpeechKit.h>

安装成功后, 还需要在Nuance 的官网上注册一个开发者账号, 得到访问服务器的URL地址以及一个APP KEY,在之后调用云端的语音识别服务时会用到。

在下面的代码中, 将SKSServerUrl和SKSAppKey 替换成你账号里显示的数值。 这段代码起到的作用就是建立一个语音识别的session, 然后开始一个transaction去做automatic speech recognition识别手机设备听到的语音:

图片描述

Transaction成功以后的delegate回调方法里,我们只需获取recognition 参数里的最佳text推荐, 它便是对语音识别出最好的文字。

图片描述

识别了语音之后, 我们接下来要做的便是去获取与识别文字相关的音乐了。 苹果自己就有这样的公共接口可以让我们使用。

https://itunes.apple.com/sear...牛仔很忙

假设我对着APP说出了一首周杰伦的歌 “牛仔很忙”, 那么通过HTTP调用以上的url的发一个GET请求, 苹果就会通过搜索iTunes音乐库里返回所有的与“牛仔很忙”相关的所有音乐数据。

为了使demo的逻辑尽量简单, 我在之前的url里加上一个参数, 把返回的结果数量控制在一。

https://itunes.apple.com/sear...牛仔很忙&limit=1

这样一来,我从仅返回的一首歌的数据里获取关于这首“牛仔很忙”歌曲的专辑图片地址以及试听歌曲地址, 再把这些数据拼凑起来,组成一张页面, 就有了我们在设计稿中看到的第三页。

至于每个页面中的动画交互,则是由基本的CABasicAnimation 来完成。例如, 麦克风图标的旋转动画的代码如下。

图片描述

综合涉及的各个点,我们就开发完成了一款智能声控的音乐APP。两张Sketch设计稿, 三张Principle交互页面, 便有了这样一款娱乐的APP。 更多细节内容, 请大家移步观看视频。

这篇关于从设计到开发,硅谷技术专家教你做“声控”APP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/256681

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

Linux_kernel驱动开发11

一、改回nfs方式挂载根文件系统         在产品将要上线之前,需要制作不同类型格式的根文件系统         在产品研发阶段,我们还是需要使用nfs的方式挂载根文件系统         优点:可以直接在上位机中修改文件系统内容,延长EMMC的寿命         【1】重启上位机nfs服务         sudo service nfs-kernel-server resta