A.wavファイルのみ実行すると文字起こしできたが、A.wavとB.wavファイルをリスト化して一つずつ文字起こしを実行するとUnknownValueErrorが出てきた
発生している問題・エラーメッセージ
UnknownValueError Traceback (most recent call last) <ipython-input-31-494701daff7a> in <module> 166 with sr.AudioFile(outf) as source: 167 audio = r.record(source) --> 168 f_text = r.recognize_google(audio, language="ja-JP") 169 print(f_text) 170 ~/opt/anaconda3/lib/python3.8/site-packages/speech_recognition/__init__.py in recognize_google(self, audio_data, key, language, show_all) 856 # return results 857 if show_all: return actual_result --> 858 if not isinstance(actual_result, dict) or len(actual_result.get("alternative", [])) == 0: raise UnknownValueError() 859 860 if "confidence" in actual_result["alternative"]: UnknownValueError:
該当のソースコード
Python
1import speech_recognition as sr 2import wave 3import struct 4from scipy import fromstring, int16 5import numpy as np 6import math 7from googleapiclient.discovery import build 8import youtube_dl 9
Python3
1wav_list = ['A.wav','B.wav'] 2name_list = ['A','B'] 3 4for i in range(2): 5 wr = wave.open(wav_list[i], "r") 6 7 ch = wr.getnchannels() 8 width = wr.getsampwidth() 9 fr = wr.getframerate() 10 fn = wr.getnframes() 11 total_time = 1.0 * fn / fr 12 integer = math.floor(total_time) 13 t = int(time) 14 frames = int(ch * fr * t) 15 num_cut = int(math.ceil(integer / t)) 16 data = wr.readframes(wr.getnframes()) 17 wr.close() 18 19 X = np.frombuffer(data, dtype=int16) 20 21 for j in range(num_cut): 22 outf = wav_list[i] 23 start_cut = int(j * frames) 24 end_cut = int(j * frames + frames) 25 Y = X[start_cut:end_cut] 26 outd = struct.pack("h" * len(Y), *Y) 27 28 # 書き出し 29 ww = wave.open(outf, "w") 30 ww.setnchannels(ch) 31 ww.setsampwidth(width) 32 ww.setframerate(fr) 33 ww.writeframes(outd) 34 ww.close() 35 36 # txt起こし 37 r = sr.Recognizer() 38 with sr.AudioFile(outf) as source: 39 audio = r.record(source) 40 f_text = r.recognize_google(audio, language="ja-JP") 41 print(f_text)
補足情報(FW/ツールのバージョンなど)
Mac, python3, jupyter, Anacondaを使用しています
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。