【问题标题】:'Audio data must be audio data' error with google speech recognition in pythonpython中的谷歌语音识别出现“音频数据必须是音频数据”错误
【发布时间】:2020-07-07 19:21:40
【问题描述】:

我正在尝试在 python 中加载音频文件并使用谷歌语音识别对其进行处理

问题在于,与 C++ 不同,python 不显示数据类型、类,或者通过创建新对象和重新打包数据来访问内存以在一种数据类型和另一种数据类型之间进行转换

我不明白如何在 python 中将一种数据类型转换为另一种数据类型

有问题的代码如下,

import speech_recognition as spr 
import librosa

audio, sr = librosa.load('sample_data/metal.mp3')

# create a speech recognition object 
r = spr.Recognizer() 

r.recognize_google(audio)

错误是:

audio_data must be audio data

如何转换音频对象以用于谷歌语音识别

【问题讨论】:

    标签: python windows speech-recognition google-speech-api librosa


    【解决方案1】:

    @Mich,我希望你现在已经找到了解决方案。如果没有,请尝试以下方法。

    首先,使用其他方法将 .mp3 格式转换为 .wav 格式作为预处理步骤。

    import speech_recognition as sr
    
    # Create an instance of the Recognizer class
    recognizer = sr.Recognizer()
    
    # Create audio file instance from the original file
    audio_ex = sr.AudioFile('sample_data/metal.wav')
    type(audio_ex)
    
    # Create audio data
    with audio_ex as source:
        audiodata = recognizer.record(audio_ex)
    type(audiodata)
    
    # Extract text
    text = recognizer.recognize_google(audio_data=audiodata, language='en-US')
    
    print(text)
    

    您可以从https://cloud.google.com/speech-to-text/docs/languages中选择语音语言

    此外,您可以使用以下命令设置音频响度的最小阈值。

    recognizer.set_threshold = 300 # min threshold set to 300
    

    【讨论】:

      【解决方案2】:

      Librosa 返回 numpy 数组,您需要将其转换回 wav。像这样的:

       raw_audio = np.int16(audio/np.max(np.abs(audio)) * 32767).tobytes()
      

      您可能最好使用 ffmpeg 包装器加载 mp3,而不使用 librosa,librosa 对音频做了一些奇怪的事情(标准化等)。最好使用原始数据。

      【讨论】:

      • 这个答案中什么是数据,什么是音频?
      【解决方案3】:

      用语音识别器试试这个:

      import speech_recognition as spr 
      
      with spr.WavFile('sample_data/metal.mp3') as source:     
           audio = r.record(source)  
      
      r = spr.Recognizer() 
      r.recognize_google(audio)
      

      【讨论】:

      • ValueError:音频文件无法读取为 PCM WAV、AIFF/AIFF-C 或 Native FLAC;检查文件是否损坏或其他格式
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 2018-01-10
      • 1970-01-01
      • 2018-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多