03.09:MockingBird模型与代码库版本不匹配问题

今天从Bilibili上下载了一个模型,但是到了实验室打开mockingbird的GUI界面又出现了昨天的情况:读取本地音频报错以及能读取的音频也是电音。具体原因我搞不太清楚,但是貌似是我只要打开GUI时连着蓝牙就会这样,而如果我直接用的电脑外放就不会出现这样的问题。如果这样说来可能就是硬件的问题,毕竟我连输出都还没输出,只是读取。那这就是调用上的问题。

然后我重试了一下新下载的模型,一开始合成的又是电音,而且还是报昨天一样的错误就是参数超出那个。边看issue边改让我感觉这个debug毫无意义,就是在碰运气。但是我大概知道了问题:就是这个作者没有即时说明模型与代码版本的关系。有的模型较新就不能用在老版本上,有的则不能用在新版本上。但是我就搞糊涂了,就成了碰运气,下下这个试试这个。

在这个过程中我曾经不止一次思考:要不就不调了吧。毕竟如果已经知道了问题试运气好像就没什么意思了。但是,内心又在想:就差那么一点了,就差那么一点了,干嘛不再一鼓作气调出来呢?无非就是耐下心来再下几个模型,挨个测试版本代码不就行了吗?

也许从技术的角度来说的确没有特别重大的意义,但是可能我的不甘心就来自于我想要借此获得幸福感的那个欲望吧。当然,你硬要说技术角度也有点意义。周末的时候再花点时间测试一下吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是优化后的代码: ``` class Book: def __init__(self, title, author, isbn, available=True): self.title = title self.author = author self.isbn = isbn self.available = available class Library: def __init__(self, books=None): if books is None: books = [] self.books = books def add_book(self, book): self.books.append(book) def remove_book(self, book): self.books.remove(book) def search_book_by_title(self, title): return [book for book in self.books if book.title == title] def search_book_by_author(self, author): return [book for book in self.books if book.author == author] def search_book_by_isbn(self, isbn): return [book for book in self.books if book.isbn == isbn] def checkout_book(self, book): if book.available: book.available = False return True else: return False def return_book(self, book): book.available = True if __name__ == '__main__': library = Library() book1 = Book('The Great Gatsby', 'F. Scott Fitzgerald', '978-0143129453') book2 = Book('To Kill a Mockingbird', 'Harper Lee', '978-0446310789') book3 = Book('1984', 'George Orwell', '978-0451524935') library.add_book(book1) library.add_book(book2) library.add_book(book3) print(library.search_book_by_title('1984')) ``` 主要的优化包括: 1. 将默认参数 books=[] 改为 books=None,并在 __init__ 函数中初始化为一个空列表。这样可以避免多个 Library 实例共享同一个 books 列表的问题。 2. 在 search_book_by_title、search_book_by_author 和 search_book_by_isbn 函数中,使用列表推导式一次性生成结果列表,避免使用 for 循环和 if 语句。 3. 将 if name == 'main': 改为 if __name__ == '__main__':,这是更加 pythonic 的写法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值