반응형
반응형

varchar와 nvarchar은 SQL Server에서 문자열 데이터를 저장하는 데 사용되는 두 가지 주요 데이터 형식입니다. 주된 차이점은 문자열의 저장 방식과 처리 방법에 있습니다.

  1. 저장 방식:
    • varchar: ASCII 문자셋을 사용하여 문자열을 저장합니다. 한글이나 다국어 문자를 저장할 수 있지만, 해당 문자셋에 따라 저장 용량이 다를 수 있습니다.
    • nvarchar: 유니코드 문자셋(UTF-16)을 사용하여 문자열을 저장합니다. 모든 문자를 표현할 수 있으며, 다양한 언어 및 문자에 대한 지원이 내장되어 있습니다. 하지만 저장 용량이 더 크게 필요할 수 있습니다.
  2. 저장 공간:
    • varchar: 저장 공간을 ASCII 문자셋에 맞게 할당합니다. 따라서 한글이나 다국어 문자의 경우에는 두 글자당 2바이트가 아닌 1바이트만 사용합니다.
    • nvarchar: 고정된 2바이트의 저장 공간을 사용합니다. 모든 문자가 2바이트로 저장되므로 저장 공간이 더 큽니다.
  3. 검색 성능:
    • varchar: ASCII 문자셋을 사용하므로, 해당 문자셋으로 제한된 환경에서는 저장 공간 측면에서 더 효율적일 수 있습니다.
    • nvarchar: 유니코드 문자셋을 사용하므로 저장 공간이 더 크며, 이로 인해 저장 및 검색 성능이 더 느릴 수 있습니다.
  4. 사용 사례:
    • ASCII 문자만 다루는 경우나 저장 공간이 중요한 경우에는 varchar를 고려할 수 있습니다.
    • 다국어 문자 또는 유니코드 문자를 다뤄야 하는 경우에는 nvarchar를 사용해야 합니다.

일반적으로, 다국어 문자를 다루거나 유니코드 문자셋이 필요한 경우에는 nvarchar를 사용하는 것이 권장됩니다. 하지만 저장 공간이나 특정한 문자셋의 경우에는 varchar를 고려할 수 있습니다.

반응형
반응형

[python] gTTS 한글 speak

 

# gTTS : Google Text to Speech API : Google에서 제공하는 TTS 서비스. gTTS라는 모듈을 인스톨해야 함
"""
    'en'으로 지정했을 때 한글이 text에 포함되어 있으면 이를 무시하지만, 'ko'일때 text내의 영문은 무시되지 않고 음성합성을 수행한다(아주 이상함)
    영어는 여자 성우, 한글은 남자 성우이다(변경 불가능)
"""

from gtts import gTTS
import pygame
import time

text ="안녕하세요, 여러분. 파이썬으로 노는 것은 재미있습니다!!!"

tts = gTTS(text=text, lang='ko')

tts.save("helloKO.mp3")



# Initialize Pygame mixer
pygame.mixer.init()

# Load the audio file
pygame.mixer.music.load("helloKO.mp3")

# Play the audio file
pygame.mixer.music.play()

# Allow time for the audio to play
time.sleep(10)

# Stop the playback
pygame.mixer.music.stop()

 

반응형
반응형

pyttsx3

*** https://medium.com/analytics-vidhya/easy-way-to-build-an-audiobook-using-python-20fc7d6fb1af

 

Easy Way To Build An Audiobook Using Python

An audiobook is nothing but a book that was recorded in an audio format. It can also be stated as a book that is being read aloud…

medium.com

 

pip install gTTS  https://pypi.org/project/gTTS/

 

https://pypi.org/project/pyttsx3/

 

pyttsx3

Text to Speech (TTS) library for Python 2 and 3. Works without internet connection or delay. Supports multiple TTS engines, including Sapi5, nsss, and espeak.

pypi.org

Text to Speech (TTS) library for Python 2 and 3. Works without internet connection or delay. Supports multiple TTS engines, including Sapi5, nsss, and espeak.

 

pip install pyttsx3

Project description

pyttsx3 is a text-to-speech conversion library in Python. Unlike alternative libraries, it works offline, and is compatible with both Python 2 and 3.

Installation

pip install pyttsx3

If you recieve errors such as No module named win32com.client, No module named win32, or No module named win32api, you will need to additionally install pypiwin32.

Usage :

import pyttsx3
engine = pyttsx3.init()
engine.say("I will speak this text")
engine.runAndWait()

Changing Voice , Rate and Volume :

import pyttsx3
engine = pyttsx3.init() # object creation

""" RATE"""
rate = engine.getProperty('rate')   # getting details of current speaking rate
print (rate)                        #printing current voice rate
engine.setProperty('rate', 125)     # setting up new voice rate


"""VOLUME"""
volume = engine.getProperty('volume')   #getting to know current volume level (min=0 and max=1)
print (volume)                          #printing current volume level
engine.setProperty('volume',1.0)    # setting up volume level  between 0 and 1

"""VOICE"""
voices = engine.getProperty('voices')       #getting details of current voice
#engine.setProperty('voice', voices[0].id)  #changing index, changes voices. o for male
engine.setProperty('voice', voices[1].id)   #changing index, changes voices. 1 for female

engine.say("Hello World!")
engine.say('My current speaking rate is ' + str(rate))
engine.runAndWait()
engine.stop()

"""Saving Voice to a file"""
# On linux make sure that 'espeak' and 'ffmpeg' are installed
engine.save_to_file('Hello World', 'test.mp3')
engine.runAndWait()

Full documentation of the Library

https://pyttsx3.readthedocs.io/en/latest/

Included TTS engines:

  • sapi5
  • nsss
  • espeak

Feel free to wrap another text-to-speech engine for use with pyttsx3.

반응형
반응형

‘굶주린 짐승’처럼 물·전기 퍼먹는 이것, 전세계 골머리

https://www.chosun.com/economy/tech_it/2024/03/07/Z7WTVPHCAVAMPA5NHMROJG2QPU/

 

‘굶주린 짐승’처럼 물·전기 퍼먹는 이것, 전세계 골머리

굶주린 짐승처럼 물·전기 퍼먹는 이것, 전세계 골머리 비즈 톡

www.chosun.com

인공지능(AI) 시대 필수 인프라로 꼽히는 데이터센터가 ‘굶주린 짐승’처럼 전기와 물을 먹어치우면서 각국 정부와 기업들이 골머리를 앓고 있습니다. 데이터센터에서 물과 전기 사용량을 줄이기 위해 당국이 규제 강도를 높이자 기업들은 기술 개발에 나서는 등 대책 마련에 분주합니다.

네이버 데이터센터 내 '서버룸'. 수많은 서버를 보관하는 공간 (네이버 제공) /뉴스1

최근 생성형 AI 열풍이 불면서 AI 학습과 서비스에 필요한 데이터센터가 세계 곳곳에서 건설되고 있습니다. 현재 8000개에 달하는 데이터센터가 운영 중입니다. 문제는 데이터센터에서 발생하는 열을 식히기 위해 엄청난 양의 물이 필요하다는 겁니다. 2022년 데이터센터 유지를 위해 마이크로소프트(MS)는 물 사용량을 전년보다 34%, 구글은 22% 늘렸습니다. 2027년에는 세계 데이터센터 물 소비량이 영국의 한 해 물 소비량의 절반에 해당할 것이란 전망도 나왔습니다. 특히 AI 데이터센터는 일반 데이터센터보다 배 이상 전력을 소모하기 때문에 국가 전력망에도 큰 부담을 줍니다.

칠레 환경 법원은 구글의 데이터센터 건설 허가를 일부 취소하며, 구글에 서버 냉각 시스템 변경을 요청했습니다. 아일랜드 더블린 시 당국은 지난해 신규 데이터센터 건설 프로젝트를 거부했고, 미국 버지니아주와 독일은 최근 주거 지역 인근에 데이터센터 허가를 제한하고 재생 에너지 사용과 폐열 재사용을 요구하고 있습니다. 극심한 가뭄을 겪고 있는 우루과이에서는 구글의 신규 데이터센터 건설을 두고 주민들이 거세게 반발하고 있습니다. 기업들은 전력 효율을 높일 시스템을 도입하고 물을 재사용하는 방식으로 대처하고 있습니다. 24시간 운영 가능한 소형 모듈 원자로(SMR)까지 대안으로 거론되고 있습니다.

산업통상자원부에 따르면 국내 데이터센터 전력 수요는 2022년 1762MW(메가와트)에서 2029년 4만9397MW로 폭증할 전망입니다. 한국도 몇 년 내에 데이터센터발 물 부족과 전력망 문제를 겪게 될 수도 있다는 뜻입니다. 각국의 사례를 반면교사 삼아 미리 대비해야 데이터센터가 한국의 AI 경쟁력을 발목 잡는 일을 막을 수 있을 것 같습니다.

반응형
반응형

https://pandas.pydata.org/pandas-docs/stable/index.html

 

pandas documentation — pandas 2.2.1 documentation

API reference The reference guide contains a detailed description of the pandas API. The reference describes how the methods work and which parameters can be used. It assumes that you have an understanding of the key concepts.

pandas.pydata.org

 

Community tutorials — pandas 2.2.1 documentation

 

pandas.pydata.org

 

반응형
반응형

[python] PyMuPDF 에서 해상도 올리기. PDF to IMG

How to Increase Image Resolution

 

https://pymupdf.readthedocs.io/en/latest/recipes-images.html

 

Images - PyMuPDF 1.23.25 documentation

Previous Text

pymupdf.readthedocs.io

The image of a document page is represented by a Pixmap, and the simplest way to create a pixmap is via method Page.get_pixmap().

This method has many options to influence the result. The most important among them is the Matrix, which lets you zoom, rotate, distort or mirror the outcome.

Page.get_pixmap() by default will use the Identity matrix, which does nothing.

In the following, we apply a zoom factor of 2 to each dimension, which will generate an image with a four times better resolution for us (and also about 4 times the size):

zoom_x = 2.0  # horizontal zoom
zoom_y = 2.0  # vertical zoom
mat = fitz.Matrix(zoom_x, zoom_y)  # zoom factor 2 in each dimension
pix = page.get_pixmap(matrix=mat)  # use 'mat' instead of the identity matrix

dpi = 600
pix = page.get_pixmap(dpi)

Since version 1.19.2 there is a more direct way to set the resolution: Parameter "dpi" (dots per inch) can be used in place of "matrix". To create a 300 dpi image of a page specify pix = page.get_pixmap(dpi=300). Apart from notation brevity, this approach has the additional advantage that the dpi value is saved with the image file – which does not happen automatically when using the Matrix notation.

 
반응형

+ Recent posts