You are on page 1of 9

Міністерство освіти та науки України

Харківський національний університет радіоелектроніки

Лабораторна робота №4
з дисципліни: «Інтелектуальний аналіз даних»
на тему: «ВИКОРИСТАННЯ GOOGLE SPEECH
TO TEXT API ДЛЯ РОЗШИФРОВКИ АУДІОФАЙЛІВ»

Виконав
ст. групи ПЗПІ-17-1
Макєєв О.С.

Перевірив
асистент Данієль Я. Д.

Харків 2020
Мета роботи

Здобути навички з використання Google Speech to Text API для обробки,


аналізу та розшифровки аудіофайлів.

Хід роботи

Першим кроком треба встановити потрібні бібліотеки до проекту.


Посилання до Speech-to-Text Client Libraries:
https://cloud.google.com/speech-to-text/docs/libraries#client-libraries-
install-python

Було використано останю версию Python.


Посилання до офіційного сайту мови програмування Python:
https://www.python.org/

Далі потрібно створити акаунт на Google Cloud, а потім створити проект


для отримання JSON файлу з реквізитами, як показано на рисунку 1.

Рисунок 1 – Створення проекту


Для запису аудіо використовувася сайт :
https://online-voice-recorder.com/ru/
Для тестової конвертації використовувася сайт:
https://audio.online-convert.com/ru/convert-to-wav
Після того як все підключили та записали можемо робити тестові
транскрибінги.

Результат першого транскрибінгу поданого файлу не зішовся з


очікуваним.
В wav файлі була використана фраза «My name is Oleksii».
В результаті транскрибувалося як «My name is Archie», як зображено на
рисунку 1.

Рисунок 1 – Результат першого транскрибінгу

Другий тест пройшов успішно.


В wav файлі була використана фраза «one two three four five six seven»
В результаті транскрибувалося як «1 2 3 4 5 6 7», як зображено на
рисунку 2.

Рисунок 2 –результат другого транскрибінгу

Google Speech транскрибує без помилок, якщо мова людини чітка та без
всіляких дефектів.

Лістенінг коду

filepath = "~/audio_wav/"
output_filepath = "~/Transcripts/"
bucketname = "callsaudiofiles"

import io
import os
import wave

from google.cloud import speech


from pydub import AudioSegment

os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = CREDS

//конвертує mp3 в wav формат


def mp3_to_wav(audio_file_name):
if audio_file_name.split('.')[1] == 'mp3':
sound = AudioSegment.from_mp3(audio_file_name)
audio_file_name = audio_file_name.split('.')[0]
+ '.wav'
sound.export(audio_file_name, format="wav")

//конвертує стерео в моно


def stereo_to_mono(audio_file_name):
sound = AudioSegment.from_wav(audio_file_name)
sound = sound.set_channels(1)
sound.export(audio_file_name, format="wav")

//повертає фрейм та кількість каналів


def frame_rate_channel(audio_file_name):
with wave.open(audio_file_name, "rb") as wave_file:
frame_rate = wave_file.getframerate()
channels = wave_file.getnchannels()
return frame_rate, channels

//Транскрибує поданий звуковий файл


def transcribe_file(speech_file):
client = speech.SpeechClient()
with io.open(speech_file, "rb") as audio_file:
content = audio_file.read()

frame_rate, channels =
frame_rate_channel(speech_file)

audio = speech.RecognitionAudio(content=content)
config = speech.RecognitionConfig(

encoding=speech.RecognitionConfig.AudioEncoding.LINEAR1
6,
sample_rate_hertz=frame_rate,
language_code="en-US",
audio_channel_count=channels,
)

response = client.recognize(config=config,
audio=audio)

for result in response.results:


print(u"Transcript:
{}".format(result.alternatives[0].transcript))

def main():
transcribe_file('Record.wav')

if __name__ == '__main__':
main()

Висновок

В даній лабораторній роботі були отримані навички з використанням


Google Speech to Text API для обробки, аналізу та розшифровки аудіофайлів.

Контрольні запитання

Що таке розпізнавання мови?


Задача розпізнавання мови буквально означає відповідь на запитання,
якою мовою, діалектом або акцентом послуговується користувач, котрого ми
називатимемо терміном "диктор".

Що таке розпізнавання мовлення?


Розпізнавання – автоматизований процес перетворення мовленнєвого
сигналу в текстовий потік.

За якими ознаками класифікуються системи розпізнавання мовлення?


Системи розпізнавання мовлення класифікуються за такими ознаками:
1) розмір словника (обмежений набір слів або великий словник) – чим
більший розмір словника, з яким працює система розпізнавання мови, тим
більше помилок при розпізнаванні слів. Словник, що складається тільки з
цифр, може бути розпізнаний практично безпомилково, тоді як вірогідність
помилок при розпізнаванні словника в сто тисяч слів може досягати 45%.
Потрібно також враховувати унікальність слів у словнику. Якщо слова дуже
схожі, то похибка розпізнавання збільшується;
2) залежність від диктора (дикторозалежні або дикторонезалежні системи) –
дикторозалежна система призначена для роботи тільки з людиною,
яка навчала цю систему, в той час як дикторонезалежна система призначена
для роботи з будь-яким диктором. На поточному етапі розвитку систем
розпізнавання мовлення вірогідність виникнення помилок в
дикторонезалежній системі в 35 разів більша, ніж у дикторозалежних;
3) тип мови (злитна, роздільна). Роздільна мова – це мова, в якій слова
відокремлюються одне від одного проміжком тиші. Злитна мова – це природно
вимовлений текст. Розпізнавання злитного мовлення складніше, тому що у
вимовлених слів немає чітких меж. Системи розпізнавання мовлення, що
працюють з ізольованими словами, досягли високо рівня точності
розпізнавання – 95-99%, в той час як задача розпізнавання злитної мови в
достатній мірі не вирішена.
4) призначення (системи диктування, командні системи) – визначає
необхідний рівень абстракції, на якому буде відбуватися розпізнавання мови.
Системи голосового набору мобільного телефону, де здійснюється
розпізнавання за шаблоном, називаються командними. На відміну від них,
система диктування вимагає розпізнавання на базі виділення лексичних
елементів. При інтерпретації виголошеної фрази вона буде покладатися не
тільки на те, що було виголошено в поточний момент, але і на те, як це
співвідноситься з тим, що було вимовлено до цього. Також в таку систему
повинен бути вбу- дований набір граматичних правил. Чим суворіші ці
правила, тим простіше реалізовувати систему розпізнавання, але набір слів, які
вона зможе розпізнати, буде меншим;
5) алгоритм, що використовується. Після того, як мовний сигнал розбивається
на певні частини, відбувається імовірнісна оцінка належності цих частин до
того чи іншого елемента словника, що здійснюється за допомогою одного з
алгоритмів розпізнавання;
6) за типом структурної одиниці (фрази, слова, фонеми, діфони, алофони)
– системі розпізнавання мовлення, які використовують цілі слова або фрази,
називаються шаблонними. Вони, як правило, дикторозалежні, і їх реалізація є
простішою, ніж створення систем, які розпізнають мовлення на базі виділення
лексичних елементів. У таких системах структурними одиницями мови є
лексичні елементи;
7) за принципом виділення структурних одиниць. Найпоширеніший
підхід виділення структурних одиниць заснований на перетворенні Фур’є, яке
переводить вихідний сигнал з амплітудно-часового простору в частотний.
Однак аналіз Фур’є має цілу низку недоліків, в результаті яких відбувається
втрата інформації стосовно часових характеристик оброблюваних сигналів. У
зв’язку з цим для завдання виділення структурних одиниць мови виправдано
використання вейвлет-аналізу. Вейвлет – це математична функція, яка
дозволяє аналізувати частотні компоненти даних. В загальному випадку,
аналіз сигналів проводиться в площині вейвлет-коефіцієнтів – масштаб-час-
рівень (Scale-Time-Amplitude). Отримані вейвлет-спектри відрізняються від
спектрів Фур’є тим, що дають чітку прив’язку властивостей сигналу до часу.
Крім вейвлет і Фур’є-аналізу в системах розпізнавання мовлення
використовується кепстральний аналіз, але створення таких систем є
трудомістким і вимагає високої кваліфікації розробника.

Подайте опис схеми роботи системи розпізнавання мовлення.


Що таке модель розпізнавання мови і прийняття рішення?
Модель розпізнавання мови і прийняття рішення – це блок, в рамках якого
здійснюється формування розпізнаного повідомлення на основі аналізу
послідовності параметрів, отриманих після аналізу мовного сигналу. У процесі
розпізнавання мови найскладніше полягає в здійсненні процедури порівняння
вхідного та еталонного елемента, задача ускладнюється ще й тим, що вхідні
сигнали характеризуються протяжністю в часі.

Які типи аудіокодування оброблює Google Speech to text API?


Synchronous, Asynchronous, Streaming

You might also like