Delete speech_length_calculator.py
This commit is contained in:
@@ -1,51 +0,0 @@
|
|||||||
import re
|
|
||||||
import math
|
|
||||||
|
|
||||||
class SpeechLengthCalculator:
|
|
||||||
@classmethod
|
|
||||||
def INPUT_TYPES(s):
|
|
||||||
return {
|
|
||||||
"required": {
|
|
||||||
"text": ("STRING", {"multiline": True, "default": 'Enter your script here. "Make sure to put spoken words inside quotes!"'}),
|
|
||||||
"fps": ("INT", {"default": 24, "min": 1, "max": 120, "step": 1}),
|
|
||||||
"additional_time": ("FLOAT", {"default": 0.0, "min": 0.0, "step": 0.1}),
|
|
||||||
},
|
|
||||||
"optional": {
|
|
||||||
"text_input": ("STRING", {"forceInput": True}),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Added "STRING" to RETURN_TYPES
|
|
||||||
RETURN_TYPES = ("INT", "INT", "INT", "STRING")
|
|
||||||
# Added "text" to RETURN_NAMES
|
|
||||||
RETURN_NAMES = ("slow_frame_count", "average_frame_count", "fast_frame_count", "text")
|
|
||||||
FUNCTION = "calculate_speech"
|
|
||||||
CATEGORY = "WhatDreamsCost"
|
|
||||||
|
|
||||||
def calculate_speech(self, text, fps, additional_time=0.0, text_input=None):
|
|
||||||
# Prioritize the connected text_input if provided, otherwise fallback to the text widget
|
|
||||||
active_text = text_input if (text_input is not None and isinstance(text_input, str) and text_input.strip() != "") else text
|
|
||||||
|
|
||||||
# Regex to find words inside double quotes, single quotes, or smart quotes
|
|
||||||
matches = re.findall(r'"([^"]*)"|\'([^\']*)\'|“([^”]*)”|‘([^’]*)’', active_text)
|
|
||||||
|
|
||||||
# Extract matches, handling all possible captured groups from the regex
|
|
||||||
quoted_text = " ".join([next((g for g in m if g), "") for m in matches])
|
|
||||||
|
|
||||||
# Split by whitespace to get words and count them
|
|
||||||
words = quoted_text.split()
|
|
||||||
word_count = len(words)
|
|
||||||
|
|
||||||
def calc_frames(wpm):
|
|
||||||
if word_count == 0 and additional_time == 0:
|
|
||||||
return 0
|
|
||||||
minutes = word_count / wpm
|
|
||||||
seconds = (minutes * 60) + additional_time
|
|
||||||
return math.ceil(seconds * fps)
|
|
||||||
|
|
||||||
slow_frames = calc_frames(100)
|
|
||||||
avg_frames = calc_frames(130)
|
|
||||||
fast_frames = calc_frames(160)
|
|
||||||
|
|
||||||
# Added active_text as the 4th returned value
|
|
||||||
return (slow_frames, avg_frames, fast_frames, active_text)
|
|
||||||
Reference in New Issue
Block a user