我正在使用Google API进行语音转文本。
以下是我的python代码:
from google.cloud import speech_v1p1beta1 as speech
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="C:\\Users\\chetan.patil\\Speech Recognition-db71b5de7c80.json" #Specified key
client=speech.SpeechClient()
speech_file="Chetan_Recording_20Secflac.flac" #import file
with open(speech_file,'rb') as audio_file:
content=audio_file.read()
audio=speech.types.RecognitionAudio(content=content)
config=speech.types.RecognitionConfig(encoding=speech.enums.RecognitionConfig.AudioEncoding.LINEAR16,
language_code='en_US',enable_speaker_diarization=True,audio_channel_count=1,
sample_rate_hertz=44100)
response = client.recognize(config, audio)
当我运行最后一行代码时。它给出错误为“ 400指定FLAC编码以匹配文件头”
即使我尝试使用.wav文件,其给出的错误也为“ 400必须使用单声道(单声道)音频,但WAV标头指示2个声道”
有人可以帮我吗?
答案 0 :(得分:0)
当我运行最后一行代码时。它给出错误为“ 400指定FLAC编码以匹配文件头”
您需要speech.enums.RecognitionConfig.AudioEncoding.FLAC
来处理FLAC文件
即使我尝试使用.wav文件,其给出的错误也为“ 400必须使用 单声道(单声道)音频,但WAV标头指示2个声道”
wav文件确实应该是单声道的,看起来就像您尝试过立体声文件一样。
答案 1 :(得分:0)
删除整个编码配置似乎也有效。我的意思是从配置设置中删除 encoding=speech.enums.RecognitionConfig.AudioEncoding.LINEAR16
,因为这可以从音频文件的标题中推断出来。