如何设计人工神经网络用于说话人识别应用?

时间:2015-02-19 16:15:16

标签: artificial-intelligence neural-network

我想设计一个使用人工神经网络的扬声器识别软件(给定音频声音,我希望能够识别说话者是谁)。 我想将扬声器的名称存储在数据库中,每个发言者都有一个唯一的ID:

id first_name last_name

网络设计如下: - 输入是音频特性(频率,音高等......) - 隐藏的图层 - 单个输出:扬声器的数据库ID

我的问题是网络架构背后的逻辑是否有效。让网络输出成为数据库ID(我在发现的最大ID上进行规范化吗?

)是否正确?

我想过有多个输出,每个输出对应一个扬声器。但随着扬声器数量的增加,输出的数量会随之增加,所以如果我有10 000个扬声器,我必须有10,000个输出,我认为这是不合理的。

这是使用ANN解决此类问题的正确方法吗?

1 个答案:

答案 0 :(得分:1)

  

我的问题是网络架构背后的逻辑是否有效。让网络输出成为数据库ID(我在发现的最大ID上进行规范化吗?

)是否正确?

这是错误的方式。如果你将输出视为数字,你会对一个人施加某种亲密关系,那么一些人(那些与id s更接近的人)的言论比那些距离更远id的人更相似,所以有些人错误比其他错误更受惩罚。

  

我想过每个输出对应的多个输出   对某位发言者但随着扬声器数量的增加,   输出数量会随之增加,所以如果我有10 000   发言者,我必须有10,000个输出,我认为   不合理的。

不幸的是,这是正确的方法。通常,使用softmax输出单元,然后执行多类分类。通过这种方式,您不会强加任何偏好,并且所有错误都会受到惩罚,而与标识符的接近程度无关。

实际上,你试图解决的问题非常困难(从我的角度来看)。我甚至怀疑一个人可以区分10,000个扬声器!您需要为每个扬声器提供大量语音数据,一些智能预处理,以及更智能的机器(最有可能是深度)学习算法,以使其工作。不要以为你只能投入一个人工神经网络,并且只是工作。有很多类型的人工神经网络,在一般情况下我们仍然不知道如何可靠地训练它们。