Jadual Kandungan
Pengenalan kepada cara pengecaman pertuturan berfungsi
Pilih pakej pengecaman pertuturan python yang sesuai
Pasang SpeechRecognition
Kelas Pengecam
Penggunaan mikrofon
Pengecaman pertuturan bahasa Cina
Sintesis pertuturan
Rumah pembangunan bahagian belakang Tutorial Python Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

May 11, 2023 am 08:04 AM
linux python

Pengenalan kepada cara pengecaman pertuturan berfungsi

Pengecaman pertuturan berasal daripada penyelidikan yang dilakukan di Bell Labs pada awal 1950-an. Sistem pengecaman pertuturan awal hanya boleh mengecam seorang pembesar suara dan perbendaharaan kata hanya kira-kira sedozen perkataan. Sistem pengecaman pertuturan moden telah berjalan jauh untuk mengenali berbilang pembesar suara dan mempunyai perbendaharaan kata yang besar yang mengenali berbilang bahasa.
Bahagian pertama pengecaman pertuturan sudah tentu pertuturan. Melalui mikrofon, pertuturan ditukar daripada bunyi fizikal kepada isyarat elektrik, dan kemudian kepada data melalui penukar analog-ke-digital. Setelah didigitalkan, beberapa model boleh digunakan untuk menyalin audio kepada teks.
Kebanyakan sistem pengecaman pertuturan moden bergantung pada Hidden Markov Models (HMM). Prinsip kerjanya ialah: isyarat pertuturan boleh dianggarkan sebagai proses pegun pada skala masa yang sangat singkat (seperti 10 milisaat), iaitu proses yang ciri statistiknya tidak berubah mengikut masa.
Banyak sistem pengecaman pertuturan moden menggunakan rangkaian saraf sebelum pengecaman HMM untuk memudahkan isyarat pertuturan melalui transformasi ciri dan teknik pengurangan dimensi. Pengesan aktiviti suara (VAD) juga boleh digunakan untuk mengurangkan isyarat audio kepada bahagian yang mungkin hanya mengandungi pertuturan.
Nasib baik untuk pengguna Python, beberapa perkhidmatan pengecaman pertuturan tersedia dalam talian melalui API, dan kebanyakannya turut menyediakan SDK Python.

Pilih pakej pengecaman pertuturan python yang sesuai

Terdapat beberapa pakej pengecaman pertuturan siap sedia dalam PyPI. Ini termasuk:
apiai
google-cloud-speech
pocketsphinx
SpeechRcognition
watson-developer-cloud
wit
Sesetengah pakej (seperti kecerdasan dan apiai) menyediakan beberapa Built -dalam keupayaan di luar pengecaman pertuturan asas, seperti pemprosesan bahasa semula jadi untuk mengenal pasti niat penutur. Pakej perisian lain, seperti Google Cloud Speech, memfokuskan pada penukaran pertuturan ke teks.
Antaranya, SpeechRecognition menonjol kerana kemudahan penggunaannya.
Mengecam pertuturan memerlukan input audio dan mendapatkan semula input audio dalam Pengecaman Pertuturan adalah sangat mudah. ​​Ia tidak memerlukan membina skrip untuk mengakses mikrofon dan memproses fail audio dari awal. Ia hanya mengambil masa beberapa minit untuk melengkapkan pengambilan dan jalankan secara automatik.

Pasang SpeechRecognition

SpeechRecognition serasi dengan Python2.6, 2.7 dan 3.3+, tetapi beberapa langkah pemasangan tambahan diperlukan jika digunakan dalam Python 2. Anda boleh menggunakan arahan pip untuk memasang SpeechRecognition dari terminal: pip3 install SpeechRecognition

Selepas pemasangan selesai, anda boleh membuka tetingkap penterjemah untuk mengesahkan pemasangan:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Nota : Jangan tutup sesi ini, anda akan menggunakannya dalam beberapa langkah seterusnya.
Jika berurusan dengan fail audio sedia ada, hubungi SpeechRecognition terus, memberi perhatian kepada beberapa kebergantungan untuk kes penggunaan tertentu. Juga ambil perhatian, pasang pakej PyAudio untuk mendapatkan input mikrofon

Kelas Pengecam

Teras SpeechRecognition ialah kelas pengecam.
Tujuan utama API Pengecam adalah untuk mengenali pertuturan Setiap API mempunyai pelbagai tetapan dan fungsi untuk mengecam pertuturan sumber audio Di sini saya memilih recognizer(): CMU Sphinx - memerlukan pemasangan PocketSphinx (menyokong Pengecaman pertuturan luar talian ) Kemudian kita perlu memasang PocketSphinx melalui arahan pip Semasa proses pemasangan, sejumlah besar ralat dalam fon merah juga cenderung berlaku.

Penggunaan fail audio

Muat turun fail audio yang berkaitan dan simpannya ke direktori tertentu (simpan terus ke desktop ubuntu)

Nota:
Kelas AudioFile boleh digunakan melalui laluan fail audio Memulakan dan menyediakan antara muka pengurus konteks untuk membaca dan memproses kandungan fail.
SpeechRecognition pada masa ini menyokong jenis fail:

  • WAV: mestilah dalam format PCM/LPCM

  • AIFF

  • AIFF-CFLAC: mestilah format FLAC awal; format OGG-FLAC tidak tersedia

Pengecaman pertuturan Bahasa Inggeris

Selepas menyelesaikan kerja asas di atas , anda boleh melakukan pengecaman pertuturan bahasa Inggeris.

(1) Buka terminal
(2) Masukkan direktori di mana fail ujian suara terletak (penulis blog ialah desktop)
(3) Buka penterjemah python
(4) Masukkan arahan yang berkaitan seperti yang ditunjukkan di bawah

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Akhir sekali anda dapat melihat kandungan pertuturan ke teks (ini mereka’akan berbau …), kesannya sebenarnya sangat bagus! Kerana ia dalam bahasa Inggeris dan tiada bunyi bising.

Kesan hingar pada pengecaman pertuturan

Bunyi memang wujud di dunia nyata, semua rakaman mempunyai tahap hingar tertentu dan hingar yang tidak diproses boleh memusnahkan ketepatan aplikasi pengecaman pertuturan seks.

Dengan cuba menyalin kesan yang tidak baik, kita boleh cuba memanggil perintah adjust_for_ambient_noise() kelas Recognizer.

Penggunaan mikrofon

Untuk menggunakan SpeechRecognizer untuk mengakses mikrofon, anda mesti memasang pakej PyAudio.
Jika anda menggunakan Linux berasaskan Debian (seperti Ubuntu), anda boleh menggunakan apt untuk memasang PyAudio: sudo apt-get install python-pyaudio python3-pyaudioAnda mungkin masih perlu mendayakan pip3 install pyaudio selepas pemasangan selesai, terutamanya jika dijalankan dalam keadaan maya.
Selepas memasang pyaudio, anda boleh menggunakan python untuk melaksanakan rakaman suara dan menjana fail berkaitan.
Nota tentang penggunaan pocketsphinx:
Format fail yang disokong: wav
Keperluan penyahkodan untuk fail audio: 16KHZ, mono
Gunakan python untuk merakam dan menjana fail yang berkaitan Kod program adalah seperti berikut:

from pyaudio import PyAudio, paInt16
import numpy as np
import wave
class recoder:
     NUM_SAMPLES = 2000   
     SAMPLING_RATE = 16000  
     LEVEL = 500     
     COUNT_NUM = 20   
     SAVE_LENGTH = 8     
     Voice_String = []
     def savewav(self,filename):
         wf = wave.open(filename, 'wb')
         wf.setnchannels(1)
         wf.setsampwidth(2)
         wf.setframerate(self.SAMPLING_RATE)
         wf.writeframes(np.array(self.Voice_String).tostring())
         wf.close()
     def recoder(self):
         pa = PyAudio()
         stream = pa.open(format=paInt16, channels=1, rate=self.SAMPLING_RATE, input=True,frames_per_buffer=self.NUM_SAMPLES)
         save_count = 0
         save_buffer = []
         while True:
            string_audio_data = stream.read(self.NUM_SAMPLES)
            audio_data = np.fromstring(string_audio_data, dtype=np.short)
            large_sample_count = np.sum(audio_data > self.LEVEL)
            print(np.max(audio_data))
            if large_sample_count > self.COUNT_NUM:
                save_count = self.SAVE_LENGTH
            else:
                save_count -= 1
            if save_count < 0:
                save_count = 0
            if save_count > 0:
                save_buffer.append(string_audio_data )
            else:
                if len(save_buffer) > 0:
                    self.Voice_String = save_buffer
                    save_buffer = []
                    print("Recode a piece of voice successfully!")
                    return True
		 else:
                    return False
if __name__ == "__main__":
    r = recoder()
    r.recoder()
    r.savewav("test.wav")
Salin selepas log masuk

Nota: Pastikan anda memberi perhatian kepada ruang apabila melaksanakan menggunakan penterjemah python! ! !
Fail hasil akhir berada dalam direktori tempat penterjemah Python berada Anda boleh memainkannya melalui main untuk mengujinya Jika main tidak dipasang, anda boleh memasangnya melalui arahan apt.

Pengecaman pertuturan bahasa Cina

Selepas menyiapkan kerja sebelumnya, kami mempunyai pemahaman tertentu tentang proses pengecaman pertuturan, tetapi sebagai orang Cina, kami perlu melakukan pengecaman pertuturan bahasa Cina.

Kami perlu memuat turun model kemasukan dan bahasa Mandarin yang sepadan daripada kit alat pengecaman pertuturan CMU Sphinx.

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Perkataan yang ditanda dalam gambar adalah bahasa Mandarin! Muat turun kit alat pengecaman pertuturan yang berkaitan.

Tetapi kita perlu menukar zh_broadcastnews_64000_utf8.DMP ke dalam language-model.lm.bin dan kemudian nyahzip zh_broadcastnews_16k_ptm256_8000.tar.bz2 untuk mendapatkan folder _zh00broadcast6_zh00m
Belajar daripada kaedah blogger tadi dan cari folder speech_recognition di bawah Ubuntu. Mungkin terdapat ramai rakan yang tidak dapat mencari folder yang berkaitan, tetapi mereka sebenarnya berada di bawah fail tersembunyi. Anda boleh mengklik pada tiga bar di sudut kanan atas folder. Seperti yang ditunjukkan dalam gambar di bawah:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Kemudian tandai Tunjukkan fail tersembunyi, seperti yang ditunjukkan dalam gambar di bawah:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Kemudian Anda boleh mencarinya dengan mengikuti direktori berikut:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Kemudian namakan semula en-US asal kepada en-US-bak, buat folder baharu en-US dan nyahzip kepada zh_broadcastnews_ptm256_8000, tukar acoustic-model kepada chinese.lm.bin, tukar akhiran language-model.lm.bin kepada pronounciation-dictionary.dic dan salin ketiga-tiga fail ini ke en-US. Pada masa yang sama, salin LICENSE.txt dalam direktori fail en-US asal ke folder semasa. dictAkhir sekali, terdapat fail berikut dalam folder ini:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Kemudian kita boleh merakam fail suara ("test.wav") melalui mikrofon

Dalam ini Buka penterjemah python dalam direktori fail dan masukkan kandungan berikut:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

dan anda akan melihat kandungan output, tetapi saya bercakap tentang dua China, dan saya juga menguji kesan penemuan dan pengiktirafan lain Sangat teruk! ! !


Pengiktirafan Cina berskala kecil

Kesan yang diberikan oleh versi rasmi sangat lemah sehingga hampir tidak boleh digunakan! Kemudian saya memikirkan kaedah pengoptimuman selepas membaca banyak artikel, tetapi ia hanya sesuai untuk pengiktirafan berskala kecil! Sesetengah arahan dan seumpamanya sepatutnya baik, tetapi bersembang dan seumpamanya mungkin tidak berfungsi dengan baik.

Cari 4 folder yang baru anda salin. Terdapat folder sebutan-kamus.dict Selepas membukanya, kandungan berikut ditemui:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Rasanya. kandungan ini serupa dengan Terdapat jurang yang besar antara perkataan yang digunakan dalam kamus dengan perkataan yang digunakan dalam komunikasi harian. Kemudian kita boleh menukarnya kepada perkataan yang biasa kita gunakan! Dengan idea untuk mencubanya, hasilnya sangat bagus. Kesan pengecaman sangat bagus!

Pendekatan saya ialah:
(1) Simpan kandungan di atas tanda merah dalam gambar, dan padamkan kandungan di bawah tanda merah. Sudah tentu, atas sebab insurans, anda disyorkan untuk membuat sandaran fail ini!
(2) Masukkan kandungan yang anda ingin kenal pasti di bawah garis merah! (Input mengikut peraturan, berbeza dengan pinyin!!!) Situasi radang paru-paru baru semakin baik baru-baru ini Ayat yang paling banyak didengar ialah "Ayuh, China". teks! Harap-harap sekolah boleh mula cepat, hahahaha.

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

3) Masukkan yang berikut:

Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux

Sintesis pertuturan

Pemahaman peribadi saya tentang sintesis pertuturan ialah teks ke pertuturan. Walau bagaimanapun, anda boleh menetapkan client = AipSpeech(APP_ID, API_KEY, SECRET_KEY) result = client.synthesis('你好百度', 'zh', 1, { 'vol': 5,'spd': 3,'pit':9,'per': 3}) kelantangan, nada, kelajuan, lelaki/perempuan/loli/percuma dalam ayat ini.

Atas ialah kandungan terperinci Cara menggunakan python untuk melaksanakan fungsi pengecaman pertuturan di bawah Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

PHP dan Python: menyelam mendalam ke dalam sejarah mereka PHP dan Python: menyelam mendalam ke dalam sejarah mereka Apr 18, 2025 am 12:25 AM

PHP berasal pada tahun 1994 dan dibangunkan oleh Rasmuslerdorf. Ia pada asalnya digunakan untuk mengesan pelawat laman web dan secara beransur-ansur berkembang menjadi bahasa skrip sisi pelayan dan digunakan secara meluas dalam pembangunan web. Python telah dibangunkan oleh Guidovan Rossum pada akhir 1980 -an dan pertama kali dikeluarkan pada tahun 1991. Ia menekankan kebolehbacaan dan kesederhanaan kod, dan sesuai untuk pengkomputeran saintifik, analisis data dan bidang lain.

Apr 16, 2025 pm 07:39 PM

Walaupun Notepad tidak dapat menjalankan kod Java secara langsung, ia dapat dicapai dengan menggunakan alat lain: menggunakan pengkompil baris arahan (Javac) untuk menghasilkan fail bytecode (fileName.class). Gunakan Java Interpreter (Java) untuk mentafsir bytecode, laksanakan kod, dan output hasilnya.

Cara menjalankan python dengan notepad Cara menjalankan python dengan notepad Apr 16, 2025 pm 07:33 PM

Running Python Code di Notepad memerlukan Python Executable dan NPPExec plug-in untuk dipasang. Selepas memasang Python dan menambahkan laluannya, konfigurasikan perintah "python" dan parameter "{current_directory} {file_name}" dalam plug-in nppexec untuk menjalankan kod python melalui kunci pintasan "f6" dalam notepad.

Cara memeriksa alamat gudang git Cara memeriksa alamat gudang git Apr 17, 2025 pm 01:54 PM

Untuk melihat alamat repositori Git, lakukan langkah -langkah berikut: 1. Buka baris arahan dan navigasi ke direktori repositori; 2. Jalankan perintah "Git Remote -V"; 3. Lihat nama repositori dalam output dan alamat yang sepadan.

Golang vs Python: Perbezaan dan Persamaan Utama Golang vs Python: Perbezaan dan Persamaan Utama Apr 17, 2025 am 12:15 AM

Golang dan Python masing -masing mempunyai kelebihan mereka sendiri: Golang sesuai untuk prestasi tinggi dan pengaturcaraan serentak, sementara Python sesuai untuk sains data dan pembangunan web. Golang terkenal dengan model keserasiannya dan prestasi yang cekap, sementara Python terkenal dengan sintaks ringkas dan ekosistem perpustakaan yang kaya.

Python: Kekuatan pengaturcaraan serba boleh Python: Kekuatan pengaturcaraan serba boleh Apr 17, 2025 am 12:09 AM

Python sangat disukai kerana kesederhanaan dan kuasa, sesuai untuk semua keperluan dari pemula hingga pemaju canggih. Kepelbagaiannya dicerminkan dalam: 1) mudah dipelajari dan digunakan, sintaks mudah; 2) perpustakaan dan kerangka yang kaya, seperti numpy, panda, dan sebagainya; 3) sokongan silang platform, yang boleh dijalankan pada pelbagai sistem operasi; 4) Sesuai untuk tugas skrip dan automasi untuk meningkatkan kecekapan kerja.

See all articles