Skip to content

Entertech/LooktechVoice

Repository files navigation

Looktech 唤醒和命令模型训练

数据准备

数据采集要求

明确文档中对于最后实际用于训练的数据要求。

/1_Voice Wake-up Data Collection Specification.pdf

唤醒和命令词数据

真人数据(采集)

  • 手动切分数据
  • 使用项目工程切分唤醒词数据

'''

工程提示词(Claude)

给我写一个音频分割的 jupyter notebook 代码。

文件夹里面的每个音频,包含了多种命令词,需要把他们切分成不同的音频,每个音频都是一个文件。

所有的命令词如下:

  • Hey Memo
  • Take a picture
  • Take a video
  • Stop recording
  • Pause
  • Next
  • Play
  • Volume up
  • Volume down

我们有个音频文件夹,包含所有收集的唤醒词和命令词音频数据。每个音频的原始命名为AUS_Perth_Male_40.wav, 也就是国家_城市_性别_年龄.wav

每个音频文件包含所有命令词语音片段,里面可能有错读的,也可能有其他的,只需要切分出正确读的音频文件并做好命名。

识别

使用微软 asr 做语音识别,识别出正常的语音片段,然后切分并按文件夹保存。

使用微软 ASR 服务的时候,为了提高识别率需要将要识别的命令词作为热词添加到服务中。

切分语音片段

有一些切分的要求:

  • 避免发音错误:确保正确发音,不得有误读现象。
  • 避免多余的声音:避免咳嗽、交谈或其他噪音。
  • 呼吸和口腔声音:自然的呼吸和口腔声音是允许的,但不能在喘息时进行录音。
  • 避免不自然的停顿:正常的呼吸停顿是允许的,但不应过长,停顿时间不应超过0.5秒。
  • 避免口吃或中断:唤醒词应流畅发音,不应出现口吃或停顿。

每个音频文件应只包含⼀个唤醒词。

  • 禁止空白音频文件。
  • 避免语音截断:比如将“Hi Siri”剪辑为“Hi Si”。

避免:

  1. 录音文件在截切的时候,错误的剪切位置,导致包含了前面的词的部分。
  2. 唤醒词尾部被截断或丢失,唤醒词音频不完整
  3. 单个唤醒词说话停顿时间过长,明显大于500ms
  4. 单个音频文件包含多个唤醒词语音

保存

按照以下格式保存最终音频:用户编号-命令词-命令词音频片段 命令词音频片段的命名为:编号_国家_城市_性别_年龄_命令词_语速_编号 文件结构如下 SPK001

SPK002

...

SPK009

SPK010

    /HeyMemo
    
        /SPK001_AUS_Perth_Male_40_HeyMemo_Fast_001.wav
        
        /SPK001_AUS_Perth_Male_40_HeyMemo_Fast_002.wav
        
        /SPK001_AUS_Perth_Male_40_HeyMemo_Normal_003.wav
        
        /SPK001_AUS_Perth_Male_40_HeyMemo_Slow_004.wav
        
        ...
        
    /Play
    
    /Next
    
    /TakeAPhoto
    
    /StartRecording 
    
    ...

验证

最好每个录音文件切分保存后能使用微软的 ASR 再识别一次,看是否是准确的。

格式:16位,16KHz,单声道,wav文件。 '''

工程优化

需要分步骤让我好调试,比如所有都好之后,先处理 1 个文件,我看没问题,最终才 run 整个文件夹。 以及其他你能想到的工程优化策略。

合成数据

调研筛选目前比较的语音生成模型。设计合适的提示词。 模型调研报告:类似 ChatTTS,选用多个不一样的模型。 具体实现方案:

  • 模型选用,Huggingface 托管,使用 api 调用。
  • 具体目标:样本数量,分布(区域、性别、年龄、情感?)
  • 音色控制:比如“美国,男性、20 岁、兴奋,正常语速”
  • 语音生成和标签保存
  • 校对和测试
  • ...

项目工程:

后续真人实机数据 眼镜发售后,在征得用户许可的前提下可以保存用户和眼镜交互的所有录音。录音文件也会保留对应的文本。

  • 根据唤醒和命令词,从中文本筛选出录音文件。
  • 在录音文件中切分出我们需要的数据片段
  • 打好标签,自动加入训练集
  • 训练之后测试,给出测试报告,并更新模型

噪声数据

在 Hugging face 下载噪声数据集。按照工程要求切分噪声数据集。 数据集: 项目工程:

训练

项目工程源码

恒玄交付版本:2024.2.26

自有工程

Looktech GitHub 训练工程:

训练测试

测试报告

测试

模拟测试

电脑上搭建测试环境,使用真人测试。 测试报告

真机测试

在恒玄样机上进行测试。 测试报告

About

Looktech Invoke and Intent model.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages