欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python詳解文字轉語音的實現(xiàn)

 更新時間:2022年02月14日 16:31:14   作者:迢迢x  
在自然語言處理上,文字、音頻互轉是一個很關鍵的技術點。對于語音轉文字,個人實現(xiàn)較為困難,我們可以使用語音轉文字的軟件或借助各API(如科大訊飛等)進行移植開發(fā)。不過文字轉語音就相對而言容易實現(xiàn)很多了

前言:

這是一篇簡單的Python文字(漢字)轉語音教程,當然對于其他語言工具在實現(xiàn)的方法上也是一樣的 。

漢字轉語音實現(xiàn)就分為兩步,第一步將漢字轉為拼音,第二步通過拼音調用相匹配的音頻文件。下面是具體的開發(fā)實例教程。

開發(fā)環(huán)境:Windows

Python版本:3.x

外置模塊準備:pygame(可直接在cmd命令行中pip install pygame安裝)

漢字轉拼音

我使用的是將漢字轉為Unicode碼,然后通過查詢一個匹配文件(我使用的是unicode_py.txt)獲取該漢字的拼音,該文件中列有從4E00-9FA5標準漢字的Unicode編碼所對應的拼音,外加一個落單的3007編碼的“〇”。

文件如下:

在大寫拼音英文后的1,2,3,4,5分別表示一,二,三,四和輕聲(注意到存在有多音字)

我們將其封裝成一個函數(shù),參數(shù)為一個全是漢字的字符串,返回是一個拼音字符串。(即chinese_to_pinyin("秋水共長天一色") 返回的是"QIU1 SHUI3 GONG4 CHANG2 TIAN1 YI1 SE4 ")

源碼如下:

def chinese_to_pinyin(x):
    y = ''
    dic = {}
    with open("unicode_py.txt") as f:
        for i in f.readlines():
            dic[i.split()[0]] = i.split()[1]
    for i in x:
        i = str(i.encode('unicode_escape'))[-5:-1].upper()
        try:
            y += dic[i] + ' '
        except:
            y += 'XXXX ' #非法字符我們用XXXX代替
    return y

說明:將該文件與"unicode_py.txt"文件放在同一目錄下,代碼比較簡陋,因為主要給大家講實現(xiàn)教學,所以沒有對多音字進行處理(所以默認使用第一個使用頻率最高的音)

拼音轉語音

這一步也比較簡單,我們根據(jù)拼音調用相對應的單個音的音頻文件即可。單個音的音頻文件可以自己錄或找人錄,渠道有很多哦。注意文件格式,最好是mp3或wav文件。

部分文件展示如下:

我們將其置入一個voice文件夾下。準備工作就做好了。

我們同樣將漢字轉語音封裝成一個make_voice函數(shù),參數(shù)為一個漢字字符串,然后調用chinese_to_pinyin函數(shù),返回值不重要,可為空,功能實現(xiàn)是調用音頻文件發(fā)音。

源碼如下:

import pygame
def make_voice(x):
    pygame.mixer.init()
    voi = chinese_to_pinyin(x).split()
    for i in voi:
        if i == 'XXXX':  #處理'XXXX'的音,可將其忽略
            continue
        pygame.mixer.music.load("voice/" + i + ".mp3")
        pygame.mixer.music.play()
        while pygame.mixer.music.get_busy() == True:
            pass
    return None

我們展示一下這個教學版的最后完整的代碼圖(該文件名為"test.py"):

import pygame
 
def chinese_to_pinyin(x):
    y = ''
    dic = {}
    with open("unicode_py.txt") as f:
        for i in f.readlines():
            dic[i.split()[0]] = i.split()[1]
    for i in x:
        i = str(i.encode('unicode_escape'))[-5:-1].upper()
        try:
            y += dic[i] + ' '
        except:
            y += 'XXXX '
    return y
 
def make_voice(x):
    pygame.mixer.init()
    voi = chinese_to_pinyin(x).split()
    for i in voi:
        if i == 'XXXX':
            continue
        pygame.mixer.music.load("voice/" + i + ".mp3")
        pygame.mixer.music.play()
        while pygame.mixer.music.get_busy() == True:
            pass
    return None
 
while True:
    p = input("請輸入文字:")
    make_voice(p)
 

教程文件的目錄結構:

test.py
unicode_py.txt
voice----A1.mp3
         A2.mp3
         A3.mp3
         ...

實現(xiàn)原理就是這樣,同時也可以視一些具體情況做一些拓展,例如將阿拉伯數(shù)字轉漢字讀法(即1234006.15讀作“一百二十三萬四千零六點一五”,這個實現(xiàn)不難),還有將多音字問題攻破也是很棒的。

當然只要想法夠豐富用pygame的音頻功能也能實現(xiàn)很多有趣的功能(如播放器制作或電子音樂簡單創(chuàng)作等)。

結尾:

以上就是本文的全部內容了,大家喜歡的記得點點贊!

到此這篇關于Python詳解文字轉語音的實現(xiàn)的文章就介紹到這了,更多相關Python 文字轉語音內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python讀取TIF影像的多種方法

    Python讀取TIF影像的多種方法

    Python提供了豐富的庫來讀取和處理TIFF文件,其中PIL庫是最常用的,本文給大家介紹Python讀取TIF影像的幾種方法,需要的朋友可以參考下
    2023-07-07
  • Python函數(shù)參數(shù)的4種方式

    Python函數(shù)參數(shù)的4種方式

    本文主要介紹了Python函數(shù)參數(shù)的4種方式,主要包括必選參數(shù),默認參數(shù),可選參數(shù),關鍵字參數(shù),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • Python圖像處理之圖片文字識別功能(OCR)

    Python圖像處理之圖片文字識別功能(OCR)

    Tesseract 是一個OCR 庫,目前由Google 贊助(Google 也是一家以OCR 和機器學習技術聞名于世的公司)。這篇文章主要介紹了Python圖像處理之圖片文字識別功能 OCR的相關知識,需要的朋友可以參考下
    2019-07-07
  • 關于python的縮進規(guī)則的知識點詳解

    關于python的縮進規(guī)則的知識點詳解

    在本篇文章里小編給大家整理了關于python的縮進規(guī)則的知識點詳解,有興趣的朋友們可以學習下。
    2020-06-06
  • python 獲取文件列表(或是目錄例表)

    python 獲取文件列表(或是目錄例表)

    在python的應用過程中,經常會用到獲取文件列表的方法,常規(guī)的做法是這樣的
    2009-03-03
  • Python的垃圾回收機制深入分析

    Python的垃圾回收機制深入分析

    這篇文章主要介紹了Python的垃圾回收機制,有助于深入的理解Python的內存分配與回收機制,需要的朋友可以參考下
    2014-07-07
  • Python continue繼續(xù)循環(huán)用法總結

    Python continue繼續(xù)循環(huán)用法總結

    本篇文章給大家總結了關于Python continue繼續(xù)循環(huán)的相關知識點以及用法,有需要的朋友跟著學習下吧。
    2018-06-06
  • 最新python 字符串數(shù)組互轉問題

    最新python 字符串數(shù)組互轉問題

    這篇文章主要介紹了最新python 字符串數(shù)組互轉問題,主要介紹了字符串轉list數(shù)組問題和list數(shù)組轉字符串問題,本文結合示例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • Python實現(xiàn)圖片壓縮的案例詳解

    Python實現(xiàn)圖片壓縮的案例詳解

    這篇文章主要介紹了如何用最簡潔的Python代碼實現(xiàn)圖片壓縮效果,還可以保證照片不失真,感興趣的小伙伴可以跟隨小編一起動手試試
    2022-01-01
  • Python實現(xiàn)字符串中某個字母的替代功能

    Python實現(xiàn)字符串中某個字母的替代功能

    小編想實現(xiàn)這樣一個功能:將輸入字符串中的字母 “i” 變成字母 “p”。想著很簡單,怎么實現(xiàn)呢?下面小編給大家?guī)砹薖ython實現(xiàn)字符串中某個字母的替代功能,感興趣的朋友一起看看吧
    2019-10-10

最新評論