首先感谢您的精彩工作和开源精神!
在复现您的论文的过程中,我发现您在TABLE 1中提到的GrondTruth WER是0.047 ± 0.005。请问这里的GrondTruth指的是用Whisper-medium.en对READEDIT的310条原始音频做ASR,和原始文本做WER得到的吗?
我使用您论文提到的Whisper-medium.en库,计算代码如下:
import os
import torch
import pandas as pd
from datasets import Dataset, Audio
from transformers import WhisperForConditionalGeneration, WhisperProcessor
from evaluate import load
input_wav_dir = 'RealEdit_audio/RealEdit_audio'
text_path = 'RealEdit_audio/RealEdit.txt'
# 读取文本
text_df = pd.read_csv(text_path, sep='\t', header=0)[['wav_fn', 'orig_transcript']]
# 构建音频路径
text_df['audio'] = text_df['wav_fn'].apply(lambda x: os.path.join(input_wav_dir, x))
text_df['text'] = text_df['orig_transcript']
realedit_dataset = Dataset.from_dict({
'audio': text_df['audio'].tolist(),
'text': text_df['text'].tolist()
})
realedit_dataset = realedit_dataset.cast_column('audio', Audio())
# 计算WER
processor = WhisperProcessor.from_pretrained("openai/whisper-medium.en")
model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-medium.en").to("cuda")
def map_to_pred(batch):
audio = batch["audio"]
input_features = processor(audio["array"], sampling_rate=audio["sampling_rate"], return_tensors="pt").input_features
batch["reference"] = processor.tokenizer._normalize(batch['text'])
with torch.no_grad():
predicted_ids = model.generate(input_features.to("cuda"))[0]
transcription = processor.decode(predicted_ids)
batch["prediction"] = processor.tokenizer._normalize(transcription)
return batch
result = realedit_dataset.map(map_to_pred)
wer = load("wer")
print(100 * wer.compute(references=result["reference"], predictions=result["prediction"])) # 17.921440261865794
计算出WER为0.179,与您论文中提到的0.047 ± 0.005相差甚远。我怀疑是文本正则化的问题,但编写代码进行文本正则化处理后的WER仍为0.08左右,故想请教一下您是如何计算得到这个指标的,能否提供或开源一下评估代码,可以联系我的邮箱:1310825002@qq.com
感谢您耐心阅读,期待您的回复!
首先感谢您的精彩工作和开源精神!
在复现您的论文的过程中,我发现您在TABLE 1中提到的GrondTruth WER是0.047 ± 0.005。请问这里的GrondTruth指的是用Whisper-medium.en对READEDIT的310条原始音频做ASR,和原始文本做WER得到的吗?
我使用您论文提到的Whisper-medium.en库,计算代码如下:
计算出WER为0.179,与您论文中提到的0.047 ± 0.005相差甚远。我怀疑是文本正则化的问题,但编写代码进行文本正则化处理后的WER仍为0.08左右,故想请教一下您是如何计算得到这个指标的,能否提供或开源一下评估代码,可以联系我的邮箱:1310825002@qq.com
感谢您耐心阅读,期待您的回复!