>백엔드 개발 >파이썬 튜토리얼 >Python 타사 라이브러리 gTTs/pyttsx3/speech를 사용하는 방법

Python 타사 라이브러리 gTTs/pyttsx3/speech를 사용하는 방법

WBOY
WBOY앞으로
2023-05-12 18:43:062446검색

Python 텍스트 음성 변환(연구 및 완성된 기능)

프로젝트 요구 사항으로 인해 텍스트를 음성으로 변환해야 하므로 첫 번째 단계는 연구를 수행하는 것입니다

음성 합성 기술이란 무엇인가요?

음성 합성 (텍스트 음성 변환), TTS라고 합니다. 텍스트를 음성으로 변환하는 기술로 컴퓨터가 인간의 입을 흉내내고 다양한 음색을 통해 표현하고 싶은 내용을 표현할 수 있습니다.
TTS는 신경망 설계를 통해 텍스트를 자연스러운 음성 흐름으로 지능적으로 변환할 수 있습니다. 시각 장애가 있는 환자의 사용을 크게 촉진하고 텍스트의 가독성도 향상시킵니다. TTS 애플리케이션에는 음성 기반 하드웨어와 소리 감지 시스템이 포함되며 음성 인식 프로그램과 함께 사용되는 경우가 많습니다.

이제 많은 제조업체가 자체 음성 합성 서비스 또는 API를 출시했습니다. 이 기사에서는 Python 환경에서 타사 음성 합성 라이브러리에 대해서만 연구합니다.

코드로 구현하는 방법 ?

위에서 언급했듯이 시중에는 많은 제품이 있지만 개발자로서 코드를 디버깅할 수 있는 무료 도구를 찾고 있는데 gTTs 라이브러리, pyttsx3 라이브러리 및 Speech가 있습니다. 도서관은 필요에 따라 수평적 비교를 하기 위해 우회를 피할 수 있습니다.

타사 라이브러리 이름인터넷 연결 필요ggts &radic ;말하기X√X 음성 mp3 데이터를 파일에 쓰기단점: 말하기 속도 조정을 지원하지 않으며 각 용도가 과학적으로 연결되어야 함 인터넷에서는 단독으로 사용할 수 없습니다음성 재생 기능에서는 두 가지 방법을 선택했습니다첫 번째는 오디오를 자동으로 재생하는 playsound 라이브러리입니다(재생 진행률은 조정할 수 없습니다)The 두 번째는 시스템 자체 플레이어를 호출하는 os 라이브러리입니다(진행 조정 가능) 기능 를 참조하세요. function pyttsx3 library pyttsx3 library : Python의 텍스트-음성 변환 라이브러리로 오프라인에서 작동 가능합니다.
중국어 및 영어 지원 일본어 지원 말하는 속도 조절 가능 사람 목소리 수준과 유사
장점: 중국어, 영어, 일본어를 포함한 여러 언어 지원, Google 번역 API 지원, 사람 목소리가 꽤 좋음
playsound 라이브러리 재생 및 GTTS 라이브러리를 참조하여 텍스트 변환
# 函数功能: 用gtts库阅读文本,保存为.mp3文件后, 用系统内置的浏览器阅读出来, 打开mp3文件, 函数执行结束(播放方式为os库)
def gtts_os_debug(text,mp3_filepath,language):#参数说明:参数1是朗读的文字,参数2是保存路径,参数3是数字{0英文,1中文,2日语}
    #大成功,可惜的是os调用自带播放器, 实际上只执行了"打开mp3"的操作, 它并不会在音频播报完后再进行下一条语句
    from gtts import gTTS
    import os
    # 已知zh-tw版本违和感较高,所以我们用zh-CN来进行后续工作
    if int(language) ==0 :
        s = gTTS(text=text, lang='en', tld='com')
        # s = gTTS(text=text, lang='en', tld='co.uk')#我比较喜欢美音,但是如果你喜欢英国口音可以尝试这个
    elif int(language) ==1 :
        s = gTTS(text=text, lang='zh-CN')
    elif int(language) ==2 :
        s = gTTS(text=text, lang='ja')
    try:
        s.save(mp3_filepath)
    except:
        os.remove(mp3_filepath)
        print(mp3_filepath,"文件已经存在,但是没有关系!已经删掉了")
        s.save(mp3_filepath)
    print(mp3_filepath,"保存成功")
    os.system(mp3_filepath)#调用系统自带的播放器播放MP3
gtts_os_debug(text="I'm gtts library,from google Artificial Intelligence & Google Translate.",mp3_filepath="gtts英文测试.mp3",language=0)
gtts_os_debug(text="我是gtts库, 你想听听我的声音吗",mp3_filepath="gtts中文测试.mp3",language=1)
gtts_os_debug(text="真実はいつもひとつ" ,mp3_filepath="gtts日语测试.mp3",language=2)
재생용 os 라이브러리 및 텍스트 변환용 GTTS 라이브러리
# 函数功能: 用gtts库阅读文本,保存为.mp3文件后, 用playsound库阅读出来, 阅读完毕, 函数执行结束
def gtts_debug(text,mp3_filepath,language):#参数说明:参数1是朗读的文字,参数2是保存路径,参数3是数字{0英文,1中文,2日语}
    #大成功,已经实现了定制化文字转语音,但是播放的playsound需要改进(playsound库本身可能会出现bug...)
    from gtts import gTTS
    from playsound import playsound
    import os
    if int(language) ==0 :
        s = gTTS(text=text, lang='en', tld='com')
        # s = gTTS(text=text, lang='en', tld='co.uk')#我比较喜欢美音,但是如果你喜欢英国口音可以尝试这个
    elif int(language) ==1 :
        s = gTTS(text=text, lang='zh-CN')
    elif int(language) ==2 :
        s = gTTS(text=text, lang='ja')
    try:
        s.save(mp3_filepath)
    except:
        os.remove(mp3_filepath)
        print(mp3_filepath,"文件已经存在,但是没有关系!已经删掉了")
        s.save(mp3_filepath)
    print(mp3_filepath,"保存成功")
    playsound(mp3_filepath)
gtts_debug(text="I'm gtts library,from google Artificial Intelligence & Google Translate.",mp3_filepath="gtts英文测试.mp3",language=0)
gtts_debug(text="我是gtts库, 你想听听我的声音吗",mp3_filepath="gtts中文测试.mp3",language=1)
gtts_debug(text="真実はいつもひとつ" ,mp3_filepath="gtts日语测试.mp3",language=2)
장점: 오프라인에서 작동 가능, 음성 직접 읽기 지원, 볼륨 및 속도 조절 가능

단점: 처음에는 영어(여성) 및 중국어(여성) 음성만 사용할 수 있는 패키지이며, 다른 언어 음성 패키지는 별도로 다운로드해야 합니다

텍스트 및 독해 변환을 위한pyttsx3 라이브러리function
def pyttsx3_debug(text,language,rate,volume,filename,sayit=0):
    #参数说明: 六个重要参数,阅读的文字,语言(0-英文/1-中文),语速,音量(0-1),保存的文件名(以.mp3收尾),是否发言(0否1是)
    import pyttsx3
    engine = pyttsx3.init()  # 初始化语音引擎
    engine.setProperty('rate', rate)  # 设置语速
    #速度调试结果:50戏剧化的慢,200正常,350用心听小说,500敷衍了事
    engine.setProperty('volume', volume)  # 设置音量
    voices = engine.getProperty('voices')  # 获取当前语音的详细信息
    if int(language)==0:
        engine.setProperty('voice', voices[0].id)  # 设置第一个语音合成器 #改变索引,改变声音。0中文,1英文(只有这两个选择)
    elif int(language)==1:
        engine.setProperty('voice', voices[1].id)
    if int(sayit)==1:
        engine.say(text)  # pyttsx3->将结果念出来
    elif int(sayit)==0:
        print("那我就不念了哈")
    engine.save_to_file(text, filename) # 保存音频文件
    print(filename,"保存成功")
    engine.runAndWait() # pyttsx3结束语句(必须加)
    engine.stop() # pyttsx3结束语句(必须加)
pyttsx3_debug(text="我是pyttsx3, 初次见面, 给您拜个早年",language=0,rate=200,volume=0.9,filename="ptttsx3中文测试.mp3",sayit=1)
pyttsx3_debug(text="I'm fake Siri, your smart voice Manager",language=1,rate=200,volume=0.9,filename="ptttsx3英文测试.mp3",sayit=1)

음성 라이브러리

speech를 참조하세요.
    : Windows 기반 음성 합성 모듈, 코드 한 줄로 읽기 가능
  • 장점: Windows 시스템을 사용하므로 설치 및 사용이 매우 간단하고 매우 편리합니다.

    코드 디버깅 프로세스에 적합하며 차가운 AI 언어로 인해 버그 작성이 중단됩니다. QAQ

    단점: 시스템 언어(중국어 및 영어)만 지원하고 음성 속도 조정 및 오디오 내보내기를 지원하지 않습니다.
  • 음성을 텍스트로

    를 참조하세요. 기능
  • import speech
    speech.say("甘霖娘,又出bug了")
    speech.say("Don't ask me .I have no idea why bug exist again")
    # 如你所见, 代码编译究极简单, 而且单机, 但是!每次使用都会呼出微软语音助手...

위 내용은 Python 타사 라이브러리 gTTs/pyttsx3/speech를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제