- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想为我正在开发的新闻视频翻译应用程序添加性别检测功能,以便该应用程序可以根据屏幕上的语音在男声和女声之间切换。我不期望 100% 的准确性。我用EZAudio获取一段音频的波形数据,用平均RMS值设置一个男女之间的threshold(cutOff)值。最初 cutOff = 3.3。
- (void)setInitialVoiceGenderDetectionParameters:(NSArray *)arrayAudioDetails
{
float initialMaleAvg = ((ConvertedTextDetails *)[arrayAudioDetails firstObject]).audioAverageRMS;
// The average RMS value of a time period of Audio, say 5 sec
float initialMaleVector = initialMaleAvg * 80;
// MaleVector is the parameter to change the threshold according to different news clippings
cutOff = (initialMaleVector < 5.3) ? initialMaleVector : 5.3;
cutOff = (initialMaleVector > 23) ? initialMaleVector/2 : 5.3;
}
最初 adjustValue = -0.9 和 tanCutOff = 0.45。这些值 5.3、23、cutOff、adjustValue 和 tanCutOff 是从严格测试中获得的。还使用 tan of values 来放大值的差异。
- (BOOL)checkGenderWithPeekRMS:(float)pRMS andAverageRMS:(float)aRMS
{
//pRMS is the peak RMS value in the audio snippet and aRMS is the average RMS value
BOOL male = NO;
if(tan(pRMS) < tanCutOff)
{
if(pRMS/aRMS > cutOff)
{
cutOff = cutOff + adjustValue;
NSLog(@"FEMALE....");
male = NO;
}
else
{
NSLog(@"MALE....");
male = YES;
cutOff = cutOff - adjustValue;
}
}
else
{
NSLog(@"FEMALE.");
male = NO;
}
return male;
}
adjustValue 的用途是在每次翻译新闻视频时校准阈值,因为每个视频都有不同的噪音水平。但我知道这种方法很菜鸟。我可以做些什么来创建一个稳定的阈值?或者如何规范化每个音频片段?
也欢迎使用其他或更有效的方法来根据音频波数据确定性别。
编辑:根据 Nikolay 的建议,我使用 CMU Sphinx 研究了性别识别。谁能建议我如何使用 Open Ears(适用于 iOS 平台的 CMU Sphinx)提取 MFCC 特征并输入 GMM/SVM 分类器?
最佳答案
准确的性别识别可以通过 MFCC 特征的 GMM 分类器实现。你可以在这里阅读:
到目前为止,我还不知道这方面的开源实现,尽管许多组件在开源语音识别工具包(如 CMUSphinx)中可用。
关于ios - 从音频的波形数据中检测说话人的性别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30397126/
我希望以尽可能小的(大小/性能)成本将用户的性别存储在数据库中。 到目前为止,我想到了 3 个场景 Int - 与代码中的 Enum 对齐(1 = 男性,2 = 女性,3 = ...) char(1)
我正在使用 flutter/Dart 开发移动应用程序。 该应用程序需要使用 JSON 文件进行本地化。 我需要处理字符串中的复数/性别。 实际上我正在使用 sprintf 库,在 JSON 代码中有
1、通过身份证号查询所在省市 ? 1
我有一个生殖对的边缘列表如下: male_ID=c(1,2,3,4,5), female_ID=c(6,7,8,9,10), a=cbind(male_ID, female_ID)使用 Igraph
我得到了以下 Patients 表。 HospitalId INT, GenderId BIT, Age TINYINT, DiseaseId SMALLINT GenderId = 0 为男性 Ge
我已经在 Play 商店中部署了一个应用程序。我需要获取下载该应用程序的人的年龄 和性别。是否可以获取这些属性,或者我是否需要实现 Google Analytics 才能获取这些属性? 最佳答案 恐怕
是否可以为包含年龄组、性别和访问次数作为数据的 csv 数据集创建带有 highcharts 的钻取饼图?我一直在尝试这样做,但我得到的只是一团糟,只有错误。 var options = { cha
AdRequest 对象有指定年龄和性别的方法,但我找不到在 InterstitialAd 对象上指定它的方法。谁知道怎么做? 最佳答案 InterstitialAd 似乎有一个方法 loadAd(A
工作中需要用到身份证验证,还要支持检查15位和18位。 我一时手懒,问同事有没有现成的函数可用,同事google了一下,扔给我一个 asp-vbscript版本的函数。 可我这边是客户端j
我从 jQuery 1.4.4 升级到 jQuery 1.7.2,但出现语法错误。我认为这是由于“.”在选择器的 Basics.Gender 部分。 $('[name=Basics.Gender]')
在“音频分析”领域是否有先前的开源工作来检测人声(比如尽管有一些背景噪音),确定说话者的性别,可能确定没有。演讲者的数量、演讲者的年龄以及演讲者的情绪? 我的预感是,像 CMU Sphinx 这样的语
我收到这个错误: Notice: Undefined variable: picture in C:\Users\Raj\PhpstormProjects\comment03\Wall\wall-fu
我正在为我的 Android 应用程序使用 Firebase 身份验证。用户可以通过多个提供商(Google、Facebook、Twitter)登录。 成功登录后,有没有办法使用 Firebase a
谷歌从哪里获得这些数据,是否有可能在没有它的情况下在我自己的网站上手动获得这些数据(假设它以某种Cookie /用户代理字符串/标识符/等形式存在)? 最佳答案 Google从第3方双击Cookie获
我想使用 Firebase Auth 和 Google Sign-In 获取用户的生日和性别。不幸的是,登录发生后,我只得到用户的电子邮件、显示名称、照片网址和电话号码。我看到我可以向 GoogleS
我正在使用下面的代码获取用户详细信息,但它只给我姓名、电子邮件、ID,但没有提供所有个人资料信息。请告诉我如何获取所有基本信息。 - (void)loginButton: (FBSDKLogin
我正在通过 Python 使用 YouTube API。我已经可以收集特定视频的所有评论,包括作者姓名、日期和评论内容。 我还可以使用单独的代码提取特定作者的个人信息(年龄、性别、兴趣……)。但我不能
我刚刚使用 Laravel Socialite 制作了一个授权 Controller 。第一次我只检索姓名和电子邮件数据,然后我尝试检索性别,但出现错误 Undefined property: Lar
我正在开发一个 Android 应用程序,其中任何使用我们的应用程序登录到 Facebook 的 Android 用户,我需要从 Facebook 中提取他的照片、他的性别和他的全名。我正在为此使用
Model == null ? new SelectList(genders, "Value", "Text") : new SelectList(genders, "Value", "Text",
我是一名优秀的程序员,十分优秀!