语音技术的起源可以追溯到爱迪生发明留声机和贝尔发明电话。从这一时刻起,语音正式成为了一种可以被人为制造并物有效存储、传输的信号。19世纪60年代声源-滤波器模型被提出,而在此后的几十年中,语音研究的基本概念没有突破。这时不少美国学者认为实现语音识别恐怕要比登月还难,随后1969年随着阿波罗11号的登月,语音难于上终于成为了事实,语音识别与合成研究也遭遇了长时间的低谷。
2
随着计算机技术与人工智能技术的兴起,智能语音技术在20世纪80年代后成为热点,这个时候语音研究的最大突破,来自于李开复的导师、卡内基梅隆大学教授Raj Reddy用专家系统的方式做语音识别系统。1988年,在导师Raj Reddy的支持下,李开复用统计方法来解决语音识别的难题并在博士论文中提出了世界上第一个“非特定人连续语音识别系统”,这一成果使得统计学方法在语音识别领域展露头角并逐渐代替之前的模型,同时它也推动了隐马尔可夫模型(HMM)在语音识别领域的进一步研究。 3
神经网络在1980年代中期到1990年代的二次复兴,使得研究者们开始探索将神经网络运用于语音识别研究之中。但早期的神经网络的识别结果并不比GMM-HMM好,在很多人都放弃的时候,邓力却看好神经网络,2010年左右,邓力和俞栋将前馈神经网络引入到声学模型建模中并取得了很好的效果。2010年10月,俞栋分享了使用深度神经网络和senones建模的相关研究的成果。这一技术之后在2012被微软在一次会议上当场演示英文语音识别之后合成中文语音——整场演示非常成功,引起了产业界的轰动,也揭开了语音产业应用的新一页。 4
2008年,科大讯飞凭借领先的语音技术上市。2010年,百度加入语音江湖,并于当年10月在掌上百度上推出语音搜索。2010年前后,AI初创公司思必驰、云之声和出门问问等加入语音产业。2014年之后,阿里、京东、腾讯等巨头成为新一波语音产业的助推者,相继从智能音箱、智能手表、车载语音设备等领域切入智能语音市场,自此智能语音时代蓝海已来。其实,智能语音到来的背后是以深度学习为代表的整个AI蓝海时代的到来。人们这几年见证了层出不穷的模型、被刷爆的各大榜单,然而人们同时也见证了理性市场下AI落地之难。以智能音箱为例,它在始推出之际确实很受人欢迎,但是这两年人们渐渐恢复理智,早已不是当年被AlphaGo震撼和痴迷的模样。于此同时,市面上的智能音箱却没有给人更多的惊喜。智能音箱同质化严重,人们很难区分各个音箱有何差别,也很难识别音箱的“智能”程度有几分;往往一时心动买来的音箱在满足几天好奇心之后只能作为“音箱”来听歌,甚至几个月后被人遗忘在角落。我们不禁要问一句,AI落地真的很难吗?正如吴恩达所言:AI是新的电力(AI is the new electricity)。作为推动未来世界生产力的基础设施,只有将其置于各种具体场景中,才能发挥最大化的价值。AI落地难,除了AI技术水平本身的限制外,更多的还是在于具体场景的结合上需要更多的试错,以及如何弥补于大众认识间的误差。打个比方,现在AI的落地正如一百多年前的前汽车时代,当亨利·福特想要造出更好的车,而大众想要的却是“一匹更快的马”。AI落地不难,今年上半年,一场疫情突如袭来。在疫情之中,无接触服务被迫切需要,智能语音也因此诞生了不少创新应用。如全程实现无接触、无障碍的智能语音电梯,人们通过语音操作就可以方便快捷地操作电梯完成“上行下行”、“到达指定楼层”等全部乘梯操作,有效减少了交叉感染,间接遏制了疫情蔓延。当然,要让AI、智能语音走入更多的场景,我们要做的还更多。
5
语音说到底是一种交互方式,就像键盘、鼠标、和触摸屏,语音正在成为下一代人机交互的方式。智能语音技术是人工智能产业链上的关键一环,是AI落地的一个重要场景。智能家居是AI落地的完美场景,而语音交互技术则是智能家居应用中的刚需,同时智能音箱又是语音交互技术的载体。那么我们该如何提高智能音箱的智能化和人性化,如何让语音技术点亮智能家居 ,让智能家居助力美好生活 ,让美好生活和每个人息息相关?我们在畅想智能家居的同时又该如何更好地用技术实现智慧教育、智慧交通、智慧医疗、智慧社区,让AI落地遍及方方面面?这一切都可以在今年CCF-GIAR前沿语音技术专场上找到答案。作为国内最早关注AI 技术变革与发展的媒体之一,雷锋网致力于对 AI 对整个社会发展各个行业和领域所产生影响的关注和报道,这其中自然包括 AI 在前沿语音技术方面的进展。2020 年,在中国计算机学会(CCF)的主办之下,雷锋网联合香港中文大学(深圳),将在承办全球人工智能与机器人峰会 (CCF-GAIR) ;本次大会将以 “AI 新基建,产业新未来" 为主题,探讨 AI 的学术基础研究和产业落地。
接口申请官网地址:www.weilaitec.com
接口地址(例子):
http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip
用户端消息内容。
String msg ="你在干嘛呀?";
apikey参数。这个apikey就是网站上申请的APIKEY
apikey ="";
//客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)
String ip ="";
//这里一定要encode转换编码。转成GBK。
msg = URLEncoder.encode(msg, "GBK");
三个参数全部小写
msg参数就是传输过去的对话内容。
msg参数要编码成gbk,不然会乱码。
接口具体代码:
package ai.nlp.jiekou.test;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import ai.nlp.util.changliang.ChangLiangZi;
public class ApiTest {
/**
* Get请求,获得返回数据
* @param urlStr
* @return
*/
private static String opUrl(String urlStr)
{
URL url = null;
HttpURLConnection conn = null;
InputStream is = null;
ByteArrayOutputStream baos = null;
try
{
url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(5 * 10000);
conn.setConnectTimeout(5 * 10000);
conn.setRequestMethod("POST");
if (conn.getResponseCode() == 200)
{
is = conn.getInputStream();
baos = new ByteArrayOutputStream();
int len = -1;
byte[] buf = new byte[128];
while ((len = is.read(buf)) != -1)
{
baos.write(buf, 0, len);
}
baos.flush();
String result = baos.toString();
return result;
} else
{
throw new Exception("服务器连接错误!");
}
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
if (is != null)
is.close();
} catch (IOException e)
{
e.printStackTrace();
}
try
{
if (baos != null)
baos.close();
} catch (IOException e)
{
e.printStackTrace();
}
conn.disconnect();
}
return ChangLiangZi.WU;
}
public static void main(String args []){
//三个参数全部小写
//msg参数就是传输过去的对话内容。
//msg参数要编码成gbk,不然会乱码。
String msg ="你在干嘛呀?";
//apikey参数。
String apikey ="UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV";
//客户端ip,最终用户端的唯一标识(可以是用户端的IP,或者手机设备号,或者微信号或者,qq号码等能证明身份的唯一标识就可以)
String ip ="127.0.0.1";
//这里一定要encode转换编码。转成GBK。
try
{
msg = URLEncoder.encode(msg, "GBK");
} catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
System.out.println(opUrl("http://a239p06512.zicp.vip/Web/BuAppJava.bujqrex?apikey="+apikey+"&msg="+msg+"&ip="+ip));
}
}