所遇问题
先抛出报错,若使用g2p-en库遇到和我一样的报错,可以尝试本章的解决方案~~
ImportError: cannot import name 'Required' from 'typing_extensions' (D:\Anaconda3.8.5\lib\site-packages\typing_extensions.py)
前言:近期小编开始接触语音识别技术,g2p-en库能将英语字母(拼写)转换为 音素(发音),它在一些任务中被认为是必不可少的,例如语音合成。
一、g2p-en库的安装
g2p-en库的安装很简单
- 在电脑搜cmd打开命令提示符或者是打开Anaconda3中的Anaconda Prompt。
- 输入以下安装命令,运行很快的,无需加镜像,如果按照很慢,可自行添加镜像
pip install g2p_en
二、g2p_en库使用出现的问题
1.1 问题1报错情况
在导入库的过程中"from g2p_en import G2p",出现了以下报错:
ImportError: cannot import name 'Required' from 'typing_extensions' (D:\Anaconda3.8.5\lib\site-packages\typing_extensions.py)
报错内容,明显指出是g2p_en库的导入抛出报错:
1.2 问题1解决方案
可能是typing_extensions过时了,导致导入错误
将typing_extensions卸载后,重新下载就好了~
卸载:pip uninstall typing_extensions
下载:pip install typing_extensions
重新测试,可见g2p_en库导入成果
1.3 问题2报错情况
但问题还没解决,导入成功后,对G2p进行实例化,又出现报错了!!!!(就逮着我一个人薅是吧,哭唧唧)
报错详情:
LookupError:
**********************************************************************
Resource cmudict not found.
Please use the NLTK Downloader to obtain the resource:
>>> import nltk
>>> nltk.download('cmudict')
For more information see: https://www.nltk.org/data.html
Attempted to load corpora/cmudict.zip/cmudict/
Searched in:
- 'C:\\Users\\Win10/nltk_data'
- 'D:\\Anaconda3.8.5\\nltk_data'
- 'D:\\Anaconda3.8.5\\share\\nltk_data'
- 'D:\\Anaconda3.8.5\\lib\\nltk_data'
- 'C:\\Users\\Win10\\AppData\\Roaming\\nltk_data'
- 'C:\\nltk_data'
- 'D:\\nltk_data'
- 'E:\\nltk_data'
**********************************************************************
1.4 问题2解决方案
其实该问题已在报错提示中,提及了解决的方案。
方法一:
按照报错的提示,导入nltk,并下载相关文件。如果仍出现报错,参考下图的报错情况(nltk.download(‘cmudict’)下载失败,仍存在问题2的报错),可使用方法二解决。
import nltk
nltk.download('cmudict')
方法二:
可在官网(https://github.com/nltk/nltk_data)直接下载nltk_data,将其整个下载下来,在其中的packages文件夹下可以找到所缺失的cmudict文件夹。
-
进入官网,下载nltk_data。
-
将其解压,复制【packages】文件夹至报错中提及的任一路径。
Searched in:
- ‘C:\Users\Win10/nltk_data’
- ‘D:\Anaconda3.8.5\nltk_data’
- ‘D:\Anaconda3.8.5\share\nltk_data’
- ‘D:\Anaconda3.8.5\lib\nltk_data’
- ‘C:\Users\Win10\AppData\Roaming\nltk_data’
- ‘C:\nltk_data’
- ‘D:\nltk_data’
- ‘E:\nltk_data’
-
由于nltk_data文件夹是不存在的,因此路径选择是调到上一层哈,小编选的是“D:\Anaconda3.8.5”,在该路径下,复制【packages】文件夹,并将“packages”改名为nltk_data。
-
在“D:\Anaconda3.8.5\nltk_data”路径下,搜索【cmudict】所在的文件夹。
-
这里要确保cmudict.zip与cmudict.xml同级,如果没看到cmudict.xml可在压缩包里拉出来。
到这一步基本上,所有问题都解决啦,给大家看看我跑出来的结果,啦啦啦啦~
如果还是出现上面的报错,最好重启一下服务,然后再运行代码哈
真开心,撒花(=v=)/`❀❀❀❀❀❀~