前提・実現したいこと
音声ファイルを分割し分割したファイルを全て文字起こししたいです
ここに質問の内容を詳しく書いてください。
音声を分割することはできましたが、その後の分割したファイルを文字起こしするとことがうまく行きませんでした。
分割した音声ファイルの初めのファイルだけが何回も文字起こしされてしまいます。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
ソースコード
コード
import wave
import struct
from scipy import fromstring,int16
import numpy as np
import os
import math
import speech_recognition as sr
import pandas as pd
import tkinter.filedialog
def cut_wav(filename,time):
wavf = filename wr = wave.open(wavf, 'r') ch = wr.getnchannels() width = wr.getsampwidth() fr = wr.getframerate() fn = wr.getnframes() total_time = 1.0 * fn / fr integer = math.floor(total_time*100) # 小数点以下切り捨て t = int(time*100) # 秒数[sec] frames = int(ch * fr * t /100) num_cut = int(integer//t) data = wr.readframes(wr.getnframes()) wr.close() X = np.frombuffer(data, dtype=int16) for i in range(num_cut + 1): outf = out_dir + '/' + str(i) + '.wav' if i > 0: start_cut = int(i*frames) - int(100000) else: start_cut = int(i*frames) end_cut = int(i*frames + frames) Y = X[start_cut:end_cut] outd = struct.pack("h" * len(Y), *Y) ww = wave.open(outf, 'w') ww.setnchannels(ch) ww.setsampwidth(width) ww.setframerate(fr) ww.writeframes(outd) ww.close() str_cut = "" list1 = [wavf,"",""] df_x = pd.DataFrame([list1]) df_x.columns = ['NO','音声ファイル','変換結果'] for ii in range(num_cut + 1): cutf = out_dir + '/' + str(ii) + '.wav' str_out = wav_to_text(outf) df_x.loc[ii] = [ii,str(ii) + '.wav',str_out] with pd.ExcelWriter(out_file) as writer: df_x.to_excel(writer,sheet_name='結果',index=False)
def wav_to_text(wavfile):
r = sr.Recognizer()
with sr.AudioFile(wavfile) as source: audio = r.record(source) wav_to_text = r.recognize_google(audio,language='ja-JP') print(wav_to_text) return wav_to_text
out_dir= "output"
file = os.path.exists(out_dir)
if file == False:
os.mkdir(out_dir)
fTyp = [("", ".wav")]
iDir = os.path.abspath(os.path.dirname(_))
f_name = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
cut_time = 60
out_file = "output/out.xlsx"
cut_wav(f_name,float(cut_time))### 試したこと
ここに問題に対して試したことを記載してください。
for文で繰り返すことを実践しようとしましたがうまく組み込ませることができませんでした
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。```ここに言語を入力python
コード
回答1件
あなたの回答
tips
プレビュー