PitchRecognize

PitchRecognize[audio]

识别 audio 中的主音高,将其作为 TimeSeries 对象返回.

PitchRecognize[audio,spec]

返回根据指定 spec 处理的主音高.

PitchRecognize[video,]

识别 video 中第一条音轨的主音高.

更多信息和选项

  • PitchRecognize 亦称为音高检测或音高追踪.
  • PitchRecognize 假定信号在任意给定时间只含有一个音高.
  • 如果在特定时间未检测到音高,则为该时间返回 Missing[] 值.
  • 音高指定 spec 可为以下任意形式:
  • "Frequency"频率,单位为赫兹(默认)
    "FrequencyMagnitude"单位为赫兹的频率的幅值
    "QuantizedFrequency"以赫兹为单位的量化频率
    {"QuantizedFrequency",list}量化到 list 中的值的频率,单位为赫兹
    "MIDI",其中 freq 是单位为赫兹的频率
    "QuantizedMIDI"舍入后的 MIDI 值
    "SoundNotePitch"音高规范,其中 0 对应于中音 C(和 SoundNote 中的一样)
    f应用于识别出的频率的任意函数 f
  • 可以给出以下选项:
  • AcceptanceThreshold Automatic视为可接受的最小概率
    AlignmentCenter时间戳与分区对齐
    AllowedFrequencyRange Automatic最小和最大频率
    MetaInformationNone包括其他元信息
    Method Automatic所使用的方法
    MissingDataMethodNone对缺失值使用的方法
    PartitionGranularityAutomatic音频划分规范
    PerformanceGoal "Speed"优化的目标
    ResamplingMethodAutomatic用于重新抽样路径的方法
  • Method 的可能的设置包括:
  • Automatic自动选择
    "CREPE"训练好的用于音高估计的神经网络
    "Speech"基于声码器的语音基频估计
    "YIN"基于 YIN 的算法
  • 使用 Method->{"CREPE",TargetDevice->dev} 在设备 dev 上执行神经网络计算.
  • PitchRecognize 使用机器学习. 其方法、训练集和偏差在不同版本 Wolfram 语言中,可能会更改并产生不同结果.
  • PitchRecognize 可以下载存储在 $LocalBase 的本地对象库中的资源,可通过 LocalObjects[] 列出,用 ResourceRemove 删除.

范例

打开所有单元关闭所有单元

基本范例  (1)

识别录音的音高:

范围  (5)

识别音高并返回单位为 Hz 的频率:

以 MIDI 规范表示结果:

识别量化音高:

在与标准 MIDI 音高对应的频率上量化的频率(以 Hz 为单位):

量化的 MIDI 规范:

量化的 SoundNote 规范:

用特定值量化的频率:

用任意函数识别修改过的音高:

定义 MIDI 规范,其中中音 A 被设为 432 Hz:

识别音高:

识别视频的音高:

选项  (7)

AcceptanceThreshold  (1)

设置更高的 AcceptanceThreshold 以保留最确定的预测:

AllowedFrequencyRange  (1)

用特定频率范围限制音高识别的结果:

Method  (4)

默认的方法是使用各种 "YIN" 算法:

使用 "CREPE" 方法,利用神经网络计算音调:

"CREPE" 方法比 "YIN" 方法计算上更昂贵:

对于乐器,"CREPE" 方法上培训的网络更精确:

对于语音信号, "Speech" 方法更为准确:

PerformanceGoal  (1)

PerformanceGoal 设为 "Speed""CREPE" 方法会使用更小和更快的网络在同样的数据集上进行培训:

计算速度明显更快,但结果仍然精确:

应用  (4)

识别人声的音高:

计算音高 TimeSeries

绘制音高:

计算平均音调:

女性的声音一般比男性声音具有更高的音调:

检查一段录音中大提琴的音准:

计算音高 TimeSeries

计算音高的均值:

在大提琴上演奏的 A 的频率应为 110Hz. 该大提琴的音很准.

转录单声道乐器:

计算音高并用 SoundNote 规范来表示:

删除所有 Missing[] 值:

获取每个音符的音高和边界:

创建一个 Sound 对象:

用不同的乐器创建声音:

识别音高以重建信号.首先记录巴赫赋格曲:

使用 "CREPE" 方法跟踪信号的音调并返回量化的频率:

使用识别的音调生成音频信号:

属性和关系  (1)

"CREPE" 方法使用来自于 Wolfram Neural Net Repository 的 CREPE 网络:

可能存在的问题  (1)

如果使用了 "YIN" 方法,识别时可能会出现八度音阶错误:

调整 AllowedFrequencyRange 选项的值以消除错误:

巧妙范例  (1)

用颜色列表可视化识别出的音调:

其他范例:

Wolfram Research (2019),PitchRecognize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PitchRecognize.html (更新于 2024 年).

文本

Wolfram Research (2019),PitchRecognize,Wolfram 语言函数,https://reference.wolfram.com/language/ref/PitchRecognize.html (更新于 2024 年).

CMS

Wolfram 语言. 2019. "PitchRecognize." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/PitchRecognize.html.

APA

Wolfram 语言. (2019). PitchRecognize. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/PitchRecognize.html 年

BibTeX

@misc{reference.wolfram_2024_pitchrecognize, author="Wolfram Research", title="{PitchRecognize}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/PitchRecognize.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_pitchrecognize, organization={Wolfram Research}, title={PitchRecognize}, year={2024}, url={https://reference.wolfram.com/language/ref/PitchRecognize.html}, note=[Accessed: 21-November-2024 ]}