Add ngram_size option
This commit is contained in:
8
slice.py
8
slice.py
@@ -165,6 +165,14 @@ if __name__ == "__main__":
|
|||||||
logger.warning(f"Output directory {output_dir} already exists, deleting...")
|
logger.warning(f"Output directory {output_dir} already exists, deleting...")
|
||||||
shutil.rmtree(output_dir)
|
shutil.rmtree(output_dir)
|
||||||
|
|
||||||
|
# モデルをダウンロードしておく
|
||||||
|
_ = torch.hub.load(
|
||||||
|
repo_or_dir="litagin02/silero-vad",
|
||||||
|
model="silero_vad",
|
||||||
|
onnx=True,
|
||||||
|
trust_repo=True,
|
||||||
|
)
|
||||||
|
|
||||||
# Silero VADのモデルは、同じインスタンスで並列処理するとおかしくなるらしい
|
# Silero VADのモデルは、同じインスタンスで並列処理するとおかしくなるらしい
|
||||||
# ワーカーごとにモデルをロードするようにするため、Queueを使って処理する
|
# ワーカーごとにモデルをロードするようにするため、Queueを使って処理する
|
||||||
def process_queue(
|
def process_queue(
|
||||||
|
|||||||
@@ -20,12 +20,14 @@ def transcribe_with_faster_whisper(
|
|||||||
initial_prompt: Optional[str] = None,
|
initial_prompt: Optional[str] = None,
|
||||||
language: str = "ja",
|
language: str = "ja",
|
||||||
num_beams: int = 1,
|
num_beams: int = 1,
|
||||||
|
no_repeat_ngram_size: int = 10,
|
||||||
):
|
):
|
||||||
segments, _ = model.transcribe(
|
segments, _ = model.transcribe(
|
||||||
str(audio_file),
|
str(audio_file),
|
||||||
beam_size=num_beams,
|
beam_size=num_beams,
|
||||||
language=language,
|
language=language,
|
||||||
initial_prompt=initial_prompt,
|
initial_prompt=initial_prompt,
|
||||||
|
no_repeat_ngram_size=no_repeat_ngram_size,
|
||||||
)
|
)
|
||||||
texts = [segment.text for segment in segments]
|
texts = [segment.text for segment in segments]
|
||||||
return "".join(texts)
|
return "".join(texts)
|
||||||
@@ -51,6 +53,7 @@ def transcribe_files_with_hf_whisper(
|
|||||||
language: str = "ja",
|
language: str = "ja",
|
||||||
batch_size: int = 16,
|
batch_size: int = 16,
|
||||||
num_beams: int = 1,
|
num_beams: int = 1,
|
||||||
|
no_repeat_ngram_size: int = 10,
|
||||||
device: str = "cuda",
|
device: str = "cuda",
|
||||||
pbar: Optional[tqdm] = None,
|
pbar: Optional[tqdm] = None,
|
||||||
) -> list[str]:
|
) -> list[str]:
|
||||||
@@ -62,7 +65,10 @@ def transcribe_files_with_hf_whisper(
|
|||||||
"language": language,
|
"language": language,
|
||||||
"do_sample": False,
|
"do_sample": False,
|
||||||
"num_beams": num_beams,
|
"num_beams": num_beams,
|
||||||
|
"no_repeat_ngram_size": no_repeat_ngram_size,
|
||||||
}
|
}
|
||||||
|
logger.info(f"generate_kwargs: {generate_kwargs}")
|
||||||
|
|
||||||
if initial_prompt is not None:
|
if initial_prompt is not None:
|
||||||
prompt_ids: torch.Tensor = processor.get_prompt_ids(
|
prompt_ids: torch.Tensor = processor.get_prompt_ids(
|
||||||
initial_prompt, return_tensors="pt"
|
initial_prompt, return_tensors="pt"
|
||||||
@@ -70,7 +76,6 @@ def transcribe_files_with_hf_whisper(
|
|||||||
prompt_ids = prompt_ids.to(device)
|
prompt_ids = prompt_ids.to(device)
|
||||||
generate_kwargs["prompt_ids"] = prompt_ids
|
generate_kwargs["prompt_ids"] = prompt_ids
|
||||||
|
|
||||||
logger.info(f"generate_kwargs: {generate_kwargs}")
|
|
||||||
pipe = pipeline(
|
pipe = pipeline(
|
||||||
model=model_id,
|
model=model_id,
|
||||||
max_new_tokens=128,
|
max_new_tokens=128,
|
||||||
@@ -116,7 +121,7 @@ if __name__ == "__main__":
|
|||||||
parser.add_argument("--use_hf_whisper", action="store_true")
|
parser.add_argument("--use_hf_whisper", action="store_true")
|
||||||
parser.add_argument("--batch_size", type=int, default=16)
|
parser.add_argument("--batch_size", type=int, default=16)
|
||||||
parser.add_argument("--num_beams", type=int, default=1)
|
parser.add_argument("--num_beams", type=int, default=1)
|
||||||
|
parser.add_argument("--no_repeat_ngram_size", type=int, default=10)
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
with open(os.path.join("configs", "paths.yml"), "r", encoding="utf-8") as f:
|
with open(os.path.join("configs", "paths.yml"), "r", encoding="utf-8") as f:
|
||||||
@@ -134,6 +139,7 @@ if __name__ == "__main__":
|
|||||||
compute_type: str = args.compute_type
|
compute_type: str = args.compute_type
|
||||||
batch_size: int = args.batch_size
|
batch_size: int = args.batch_size
|
||||||
num_beams: int = args.num_beams
|
num_beams: int = args.num_beams
|
||||||
|
no_repeat_ngram_size: int = args.no_repeat_ngram_size
|
||||||
|
|
||||||
output_file.parent.mkdir(parents=True, exist_ok=True)
|
output_file.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
|
||||||
@@ -175,6 +181,7 @@ if __name__ == "__main__":
|
|||||||
initial_prompt=initial_prompt,
|
initial_prompt=initial_prompt,
|
||||||
language=language,
|
language=language,
|
||||||
num_beams=num_beams,
|
num_beams=num_beams,
|
||||||
|
no_repeat_ngram_size=no_repeat_ngram_size,
|
||||||
)
|
)
|
||||||
with open(output_file, "a", encoding="utf-8") as f:
|
with open(output_file, "a", encoding="utf-8") as f:
|
||||||
f.write(f"{wav_file.name}|{model_name}|{language_id}|{text}\n")
|
f.write(f"{wav_file.name}|{model_name}|{language_id}|{text}\n")
|
||||||
@@ -189,6 +196,7 @@ if __name__ == "__main__":
|
|||||||
language=language,
|
language=language,
|
||||||
batch_size=batch_size,
|
batch_size=batch_size,
|
||||||
num_beams=num_beams,
|
num_beams=num_beams,
|
||||||
|
no_repeat_ngram_size=no_repeat_ngram_size,
|
||||||
device=device,
|
device=device,
|
||||||
pbar=pbar,
|
pbar=pbar,
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user