Spaces:
Configuration error
Configuration error
from smolagents.tools import Tool | |
import pronouncing | |
import string | |
import json | |
class WordPhoneTool(Tool): | |
name = "word_phonetic_analyzer" | |
description = "Analyzes the pronunciation of a word using the CMU dictionary to get its phonemes, syllable count and stress pattern" | |
inputs = {'word': {'type': 'string', 'description': 'The word to analyze for pronunciation patterns'}} | |
output_type = "string" | |
def forward(self, word: str) -> str: | |
import pronouncing | |
import string | |
import json | |
word = word.lower().strip(string.punctuation) | |
phones = pronouncing.phones_for_word(word) | |
if not phones: | |
result = { | |
'word': word, | |
'found': False, | |
'error': 'Word not found in dictionary' | |
} | |
else: | |
primary_phones = phones[0] | |
result = { | |
'word': word, | |
'found': True, | |
'syllable_count': pronouncing.syllable_count(primary_phones), | |
'phones': primary_phones.split(), | |
'stresses': pronouncing.stresses(primary_phones) | |
} | |
return json.dumps(result, indent=2) | |
def __init__(self, *args, **kwargs): | |
self.is_initialized = False | |