Пример #1
0
api = Api(app)

api.add_resource(SendSoundFile, '/api/SendSoundFile', '/api/SendSoundFile<id>', resource_class_kwargs={'db_session':db.session})
api.add_resource(ClassifySoundApi, '/api/ClassifySoundFile', '/api/ClassifiySoundFile<id>', resource_class_kwargs={'db_session':db.session, 'api':api})

if __name__ == '__main__':
    usage = "python api.py -p '/media/dataset/*.wav'"
    parser = argparse.ArgumentParser(description="usage is %s" % usage)
    parser.add_argument('--wav-files', '-w', type=str, required=True, nargs='+')
    parser.add_argument('--pickle-file', '-l', type=str, default=None)
    parser.add_argument('--pickle-out-file', '-o', type=str, default='/tmp/classif.pickle')

    args = parser.parse_args()

    print("args is %s" % args)
    if args.pickle_file is None:
        api.sound_classification_obj = SoundClassification(wav_file_list=args.wav_files)
        api.sound_classification_obj.learn()
    else:
        with open(args.pickle_file, 'r') as pickle_file:
            print('loading classifier from file')
            api.sound_classification_obj = pickle.load(pickle_file)
            print('classifier loaded')

    app.run(debug=False, host='0.0.0.0', use_reloader=False)
    print("quitting")

    with open(args.pickle_out_file, 'w') as out_pickle_file:
        print('saving classifier to %s' % args.pickle_out_file)
        pickle.dump(api.sound_classification_obj, out_pickle_file)