语种检测 python库

前言

记录使用过的语种检测python库。

语言及其对应英文缩写表参考:
维基百科:List of ISO 639-1 codes
ISO 639-1代码表截图

一、fastText

官网

https://fasttext.cc/

支持的语言

# 可以识别 176 种语言
af als am an ar arz as ast av az azb ba bar bcl be bg bh bn bo bpy br bs bxr ca cbk ce cebckb co cs cv cy da de diq dsb dty dv el eml en eo es et eu fa fi fr frr fy ga gd gl gn gom gu gv he hi hif hr hsb ht hu hy ia id ie ilo io is it ja jbo jv ka kk km kn ko krc ku kv kw ky la lb lez li lmo lo lrc lt lv mai mg mhr min mk ml mn mr mrj ms mt mwl my myv mzn nah nap nds ne new nl nn no oc or os pa pam pfl pl pms pnb ps pt qu rm ro ru rue sa sah sc scn sco sd sh si sk sl so sq sr su sv sw ta te tg th tk tl tr tt tyv ug uk ur uz vec vep vi vls vo wa war wuu xal xmf yi yo yue zh

安装

pip install fasttext-langdetect
# 网址:https://pypi.org/project/fasttext-langdetect/

使用

from ftlangdetect import detect

input_text = input('Enter input text\n')
lan = detect(text=input_text, low_memory=False)['lang']
print(f"Detected language: {lan}")
# Enter input text
# I do not speak english
# Detected language: en

其他

网页 https://pypi.org/project/fasttext-langdetect/ 中还包括信息:

  1. 在 Wili-2018 数据集上 cld2、langid 和 langDetect 对 fasttext 模型进行基准测试的结果。
  2. cld2、langid、langDetect、fasttext分别在每种语言上的召回率结果。

二、langid

langid.py is a standalone Language Identification (LangID) tool.

支持的语言

# 可以识别 97 种语言
af、am、an、ar、as、az、be、bg、bn、br、bs、ca、cs、cy、da、de、dz、el、en、eo、es、et、eu、fa、fi、 fo、fr、ga、gl、gu、he、hi、hr、ht、hu、hy、idis、it、ja、jv、ka、kk、km、kn、ko、ku、ky、la、lb、 lo、lt、lv、mg、mk、ml、mn、mr、ms、mt、nb、ne、nl、nn、no、oc、或、pa、pl、ps、pt、qu、ro、ru、rw、 se、si、sk、sl、sq、sr、sv、sw、ta、te、th、tl、tr、ug、uk、ur、vi、vo、wa、xh、zh、zu

安装

pip install langid
# 网址:https://pypi.org/project/py3langid/

使用

import langid

>>> langid.classify("I do not speak english")
('en', 0.57133487679900674)

其他

网页 https://pypi.org/project/py3langid/ 中还包括可选参数等信息。

三、polyglot

官网

https://polyglot.readthedocs.io/en/latest/index.html

支持的语言

# 可以识别 165 种语言
from polyglot.utils import pretty_list
print(pretty_list(Detector.supported_languages()))

安装

pip install polyglot
# 网址:https://polyglot.readthedocs.io/en/latest/Installation.html

使用

from polyglot.detect import Detector

detector = Detector(arabic_text)
lang = detector.language
print(lang)  # name: Arabic      code: ar       confidence:  99.0 read bytes:   907
language = re.findall("code: ([_a-zA-Z]+) ", lang)[0]

其他

网页 https://polyglot.readthedocs.io/en/latest/Detection.html 中还包括混合语言文本检测等信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现多语种语音交互可以使用Python的语音处理库和机器学习库。以下是一个简单的多语种语音交互的Python实现示例: 1. 首先,需要使用Python的语音处理库PyAudio录制用户的语音输入。可以使用以下代码片段实现: ```python import pyaudio import wave # 录音参数 CHUNK = 1024 # 每个缓冲区的大小 FORMAT = pyaudio.paInt16 # 采样格式 CHANNELS = 1 # 声道数 RATE = 16000 # 采样率 RECORD_SECONDS = 5 # 录音时长 # 创建PyAudio对象 audio = pyaudio.PyAudio() # 打开音频流 stream = audio.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("开始录音...") frames = [] # 录音 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("录音结束!") # 关闭音频流和PyAudio对象 stream.stop_stream() stream.close() audio.terminate() # 保存录音文件 wf = wave.open("record.wav", 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(audio.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() ``` 2. 接下来,需要使用Python的机器学习库scikit-learn进行语音识别。可以使用以下代码片段实现: ```python import speech_recognition as sr # 创建Recognizer对象 r = sr.Recognizer() # 读取录音文件 with sr.AudioFile('record.wav') as source: audio_data = r.record(source) # 识别语音输入 text = r.recognize_google(audio_data, language='en-US') # 以英语识别 print("您说的是:", text) ``` 3. 最后,需要使用Python的翻译库pydeepl进行语言翻译。可以使用以下代码片段实现: ```python import pydeepl # 翻译语音输入 translated_text = pydeepl.translate(text, target_language='zh') print("翻译结果:", translated_text) ``` 以上是一个简单的多语种语音交互的Python实现示例,可以根据实际需求进行扩展和优化。需要注意的是,语音识别和语言翻译的准确率取决于语音质量和模型的训练数据,因此需要进行充分的测试和调优。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值