HarmonyOS 鸿蒙Next中media.AVRecorder怎么录制wav格式的音频,为什么在其他平台无法语音识别

HarmonyOS 鸿蒙Next中media.AVRecorder怎么录制wav格式的音频,为什么在其他平台无法语音识别 目前使用这个配置参数输出wav格式的音频,鸿蒙5可以语音转文字,鸿蒙6无法转文字,安卓苹果,和pc平台都无法转,鸿蒙转出来的比较特殊码?fileFormat如果改成CFT_WAV,反而无法录音

private avProfile: media.AVRecorderProfile = {
    audioBitrate: 128000, // 音频比特率
    audioChannels: 1, // 音频声道数
    audioCodec: media.CodecMimeType.AUDIO_AAC, // 音频编码格式,当前支持ACC,MP3,G711MU
    audioSampleRate: 16000, // 音频采样率
    fileFormat: media.ContainerFormatType.CFT_MPEG_4A, // 封装格式,当前支持MP4,M4A,MP3,WAV
  };

更多关于HarmonyOS 鸿蒙Next中media.AVRecorder怎么录制wav格式的音频,为什么在其他平台无法语音识别的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

录制wav格式AVRecorderProfile设置参数如下:

private avProfile: media.AVRecorderProfile = {
    audioBitrate: 64000, // set audioBitrate according to device ability
    audioChannels: 1, // set audioChannels, valid value 1-8, CFT_WAV supports 1
    audioCodec: media.CodecMimeType.AUDIO_G711MU, // set audioCodec, AUDIO_G711MU matching  CFT_WAV
    audioSampleRate: 8000, // set audioSampleRate according to device ability
    fileFormat: media.ContainerFormatType.CFT_WAV, // set fileFormat, CFT_WAV
  }

更多关于HarmonyOS 鸿蒙Next中media.AVRecorder怎么录制wav格式的音频,为什么在其他平台无法语音识别的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


此楼是补充一楼的代码段回复的参考文档。

参考文档

在HarmonyOS鸿蒙Next中,使用media.AVRecorder录制WAV格式音频需配置音频编码格式为AVRecorder.AAC_AUDIO_CODEC_FORMAT_WAV,并设置正确的采样率、声道数和位深度。录制完成后生成标准WAV文件。其他平台无法语音识别可能因WAV文件头信息不兼容、平台特定编码要求差异或音频参数(如采样率)未匹配目标平台规范。建议检查文件格式完整性和目标平台支持的音频规格。

在HarmonyOS Next中,使用media.AVRecorder录制WAV格式音频时,需要正确配置参数。根据你的代码,问题在于音频编码格式与文件格式不匹配。

正确配置应该是:

  • fileFormat: media.ContainerFormatType.CFT_WAV
  • audioCodec: media.CodecMimeType.AUDIO_PCM(WAV格式通常使用PCM编码)

你当前配置使用AAC编码但文件格式设为MP4,这导致生成的音频文件在其他平台无法识别。WAV格式需要PCM编码,而AAC编码更适合MP4容器。

在HarmonyOS 6中可能对编码格式验证更严格,因此无法转文字。其他平台无法识别是因为文件实际是AAC编码的MP4文件,但扩展名可能被错误设置为.wav。

建议修改配置为: audioCodec: media.CodecMimeType.AUDIO_PCM fileFormat: media.ContainerFormatType.CFT_WAV

这样生成的WAV文件将使用标准PCM编码,能够在各平台正常进行语音识别。

回到顶部