Я обычно храню созданные виджеты кнопок в списке. Я изменил ваш метод. Увидеть ниже.
def createTags(self):
# First create the widget and append to list variable
self.tags = [] #List to store button widgets
for items in self.LoadedInstallProfiles:
with open(items, "r") as jsonfiles:
loadeddata = json.load(jsonfiles)
text = loadeddata.get("profilename")
bg = loadeddata.get("profilecolor")
tag = Button( self.tagmenu, text=text, background=bg, command=print(text) )
self.tag.append( tag )
# Then display the widgets
for tag in self.tags:
tag.pack(side="top",fill="x")
There's a number of examples that get copied under /Developer/Examples/Speech/Recognition when you install XCode.
Cocoa class for speech recognition is NSSpeechRecognizer. I've not used it but as far as I know speech recognition requires you to build a grammar to help the engine choose from a number of choices rather then allowing you to pass free-form input. This is all explained in the examples referred above.
Вот хорошая хорошая статья О'Рейли , с которой можно начать.
Возможно, это немного поздно, но я все равно вмешаюсь.
Средства распознавания речи в OS X (как на стороне Carbon, так и на стороне Какао) предназначены для речевых команд распознавание, что означает, что они будут распознавать слова (или фразы, команды), которые были загружены в языковую модель речевой системы. Я проделал кое-что с небольшими словарями, и это работает довольно хорошо, но если вы хотите распознать произвольную речь, все может стать более непростым.
Еще нужно иметь в виду, что функциональность, которую предоставляют речевые API в OS X, не один на один. Углеродный материал предоставляет функциональность, которая не вошла в NSSpeechRecognizer
(в документации есть упоминание об этом).
Я не знаю о Какао,
Вы можете использовать SpeechSynthesis от ApplicationServices (10.0 +)
CFStringRef cfstr = CFStringCreateWithCString(NULL,"Hello World!", kCFStringEncodingMacRoman);
Str255 pstr;
CFStringGetPascalString(cfstr, pstr, 255, kCFStringEncodingMacRoman);
SpeakString(pstr);
или NSSpeechSynthesizer от AppKit (10.3 +)
NSSpeechSynthesizer *synth = [[NSSpeechSynthesizer alloc] initWithVoice:@"com.apple.speech.synthesis.voice.Alex"];
[synth startSpeakingString:@"Hello world!"];