Personalized font

Automatically create personalized fonts through deep learning technology, solving the problem of lack of personalization of fonts in text communication in the existing technology, and achieving a more attractive and personalized user experience.

CN114514527BActive Publication Date: 2025-06-13SNAP INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080066725.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-09-23
Filing Date
2020-08-24
Publication Date
2025-06-13
Estimated Expiration
2040-08-24

AI Technical Summary

Technical Problem

Existing electronic devices use standardized computer fonts in text communication, which lacks personalization, resulting in poor user experience.

Method used

Automatically create personalized fonts through deep learning technology, allowing each user to chat with unique fonts, improving the user experience.

Benefits of technology

It realizes personalized font chat unique to each user, improving the attractiveness and personalization of the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114514527B_ABST
    Figure CN114514527B_ABST
Patent Text Reader

Abstract

Methods and systems for creating and managing personalized fonts. The personalized fonts are created by applying personalized parameters to a base font using a style application method or module such as neural style transfer. The personalized fonts can be transmitted to recipients of text communications so that the recipients can read messages from the sender in the sender's personalized font.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross - Reference to Related Applications

[0002] This application claims the benefit of priority to U.S. Provisional Patent Application 62 / 904,114, filed September 23, 2019, entitled "Personalized Fonts", the content of which is incorporated herein by reference in its entirety. Technical Field

[0003] The subject matter relates to electronic devices, and more particularly, to creating and using personalized fonts to enhance communication using electronic devices. Background Art

[0004] Text communication is a common form of communication between users of electronic devices, such as text messages. Standardized computer fonts are typically used for text communication. A computer font (or typeface) is typically implemented as a digital data file that contains a set of graphically - related glyphs, characters, or symbols. Brief Description of the Drawings

[0005] The drawings illustrate one or more embodiments by way of example and not by way of limitation. In the drawings, like reference numerals represent like or similar elements.

[0006] Figure 1 is a block diagram showing a system configured to create and use personalized fonts;

[0007] Figure 2 is a block diagram showing communication with a personalized font;

[0008] Figure 3 is a block diagram showing a personalized font creation engine for creating a personalized font;

[0009] Figure 4 is a block diagram showing a personalized font management engine for communicating with a personalized font;

[0010] Figure 5A is an illustration of an example base font for creating a personalized font;

[0011] Figure 5B is an illustration representing an example of a personalized font;

[0012] Figure 6A 、 6B 、6C and 6D are representative examples of character features in a personalized font;

[0013] Figure 7A is a flowchart showing an example of steps for creating a personalized font;

[0014] Figure 7B is a flowchart showing an example of steps for managing communication with a personalized font;

[0015] Figure 8 is a high - level functional block diagram of an exemplary client device that includes a mobile device communicating with a server system via a network;

[0016] Figure 9 is a graphical representation of a machine in the form of a computer system, in which, according to some examples, a set of instructions can be executed to cause the machine to perform any one or more of the methods discussed herein; and

[0017] Figure 10 is a block diagram showing a software architecture in which the present invention can be implemented according to an example. Detailed Description

[0018] One aspect of the present invention describes the creation and use of personalized fonts. Deep learning techniques automatically create personalized fonts for, for example, the "chat" section of a mobile device application. This enables each user to chat using a personalized font that is unique to the user, for example, providing a more engaging user experience.

[0019] The following description includes systems, methods, techniques, instruction sequences, and computer program products of examples of the present invention. In the following description, for purposes of explanation, numerous specific details are set forth to provide an understanding of the disclosed subject matter. However, it will be apparent to those skilled in the art that examples of the disclosed subject matter may be practiced without these specific details. Generally, well - known instruction instances, protocols, structures, and techniques are not necessarily shown in detail.

[0020] Figure 1 is a block diagram showing a system 100 configured to create and use personalized fonts according to some examples; the system 100 includes one or more client devices, such as client device 110. The client device 110 includes, but is not limited to, a mobile phone, a desktop computer, a laptop computer, a portable digital assistant (PDA), a smart phone, a tablet computer, an ultra - book, a netbook, a notebook computer, a multi - processor system, a microprocessor - based or programmable consumer electronics product, a game console, a set - top box, an in - vehicle computer, or any other communication device that a user can use to access the system 100. In some examples, the client device 110 includes a display module (not shown) for displaying information (e.g., in the form of a user interface). In further examples, the client device 110 includes one or more of a touch screen, an accelerometer, a gyroscope, a camera, a microphone, a global positioning system (GPS) device, etc. The client device 110 can be a user device for accessing and utilizing an online social platform.

[0021] For example, the client device 110 is a given user device that uses the application 114 on an online social platform, a gaming platform, and a communication application. The client device 110 accesses a website, such as an online social platform hosted by the server system 108. The user inputs login credentials associated with the user. The server system 108 receives the request and provides access to the online social platform.

[0022] The user of the client device 110 launches and uses the application 114 hosted by the server system 108. The client device 110 includes one or more personalized font modules 116 that include a processor running client code for creating and / or using personalized fonts on the client device 110.

[0023] One or more users can be a person, a machine, or other means of interacting with the client device 110. In an example, a user may not be part of the system 100 but can interact with the system 100 via the client device 110 or other means. For example, a user can provide input to the client device 110 (e.g., touchscreen input, alphanumeric input, voice input, or visual input), and the input can be transmitted via the network 102 (e.g., the Internet) to other entities in the system 100 (e.g., the third-party server 128, the server system 108, etc.). In such a case, in response to receiving the input from the user, other entities in the system 100 can pass the information to be presented to the user to the client device 110 via the network 102. In this way, the user uses the client device 110 to interact with various entities in the system 100.

[0024] One or more portions of the network 102 can be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a wireless wide area network (WWAN), a metropolitan area network (MAN), a part of the Internet, a part of the public switched telephone network (PSTN), a cellular telephone network, a wireless network, a WiFi network, a 4G LTE network, another type of network, or a combination of two or more such networks.

[0025] The client device 110 can access various data and applications provided by other entities in the system 100 via a web client 112 (e.g., a browser) or one or more client applications 114. The client device 110 can include one or more client applications 114 (also referred to as “apps”), such as but not limited to a web browser, a messaging application, a multi-player gaming application, an email application, an e-commerce site application, a mapping or location application, etc.

[0026] In some examples, one or more client applications 114 are included in one of the given client devices 110 and are configured to provide a user interface and at least some functionality locally. The client applications 114 are configured to communicate with other entities in the system 100 (e.g., third-party server 128, server system 108, etc.) as needed to obtain data processing capabilities not available locally (e.g., access location information, authenticate users, etc.). Conversely, one or more client applications 114 may not be included in the client device 110, and then the client device 110 may use its web browser to access one or more applications hosted on other entities in the system 100 (e.g., third-party server 128, server system 108, etc.).

[0027] The server system 108 provides server-side functionality to one or more third-party servers 128 and one or more client devices 110 via a network 102 (e.g., the Internet or a wide area network (WAN)). The server system 108 includes an application server 104, which includes an application programming interface (API) server 120, a web server 122, and one or more personalized font modules 124, which may be communicatively coupled to one or more databases 126. The one or more databases 126 may be storage devices that store data related to users of the server system 108, applications associated with the server system 108, cloud services, etc. The one or more databases 126 may further store information related to third-party servers 128, third-party applications 130, client devices 110, client applications 114, users, etc. In one example, the one or more databases 126 may be cloud-based storage.

[0028] According to some examples, the server system 108 may be a cloud computing environment. In one example, the server system 108 and any servers associated with the server system 108 may be associated with cloud-based applications.

[0029] The one or more client device personalized font modules 116 and the one or more application personalized font modules 124 are stored on the device 110 and / or the server 108 to optimize processing efficiency. In some examples, all modules for performing a specific task (such as creating a font) are stored on the device / server that performs that operation.

[0030] In other examples, some modules for performing a task are stored on the device 110, and other modules for performing that task are stored on the server 108 and / or other devices. In some examples, modules may be replicated on the device 110 and the server 108.

[0031] The one or more third-party applications 130 executing on the third-party server 128 may interact with the server system 108 via a programming interface provided by the API server 120. For example, the one or more third-party applications 130 may request and utilize information from the server system 108 via the API server 120 to support one or more features or functions on a third-party-hosted website or a third-party-hosted application. For example, the third-party application 130 may provide a software version analysis function supported by relevant functions and data in the server system 108.

[0032] Figure 2 An overview of an example for communicating using personalized fonts among multiple user devices 110a-n is provided. Figure 2 Each of the mobile devices 110 therein includes respective screens 200a-n. On the respective screens, the text origin of the mobile device 110 is depicted adjacent to the right edge of the screen 200, and the text received from another device 110 is depicted adjacent to the left edge of the screen 200. The server system 108 coordinates communication among the devices 110 via the network 102.

[0033] The user of device 110a first creates a personalized font (e.g., the font used to depict "Hello" 202 on screen 200a; e.g., font 550; FIG. 5b), and the user of device 110b creates another personalized font (e.g., the font used to depict "Hi" on screen 200b). The user of device 110a sends a text message "Hello" 202 to the users of other devices 110b-n. The other devices 110b-n display the text message "Hello" 202 in the personalized font of the user of device 110a. The user of device 110b responds to the users of other devices 110a and c-n with the text message "Hi!" 204. The other devices 110a and c-n display the text message "Hi!" 204 in the personalized font of the user of device 110b. Thus, each user of the devices 110 can have their own personalized font for text communication.

[0034] Figure 3 A personalized font creation engine 300 is depicted. The personalized font creation engine 300 includes a personalized parameter module 302, a font template module 304, a style application module 306 (e.g., a module implementing a neural style transfer algorithm; NST), and a personalized font storage module 308. When executed (e.g., by a processor within the device 110 and / or the server 108), the modules of the engine 300 enable a user to create personalized fonts and store the personalized fonts for later use.

[0035] The personalized parameter module 302 collects one or more personalized parameters of the user and / or one or more personalized parameters associated with the user for creating a personalized font. The personalized parameters can be selected by the user or automatically determined by the device. The personalized parameters can include one or more images or a set of images (e.g., favorite paintings, favorite pictures, images most viewed by the client device 110, pictures of existing fonts, and so on), or other parameters associated with the user.

[0036] The font template module 304 identifies a font template suitable for creating a personalized font. In one example, the font template module includes a single basic font, such as font 500 (including multiple characters 502a-n; Figure 5A ). In another example, the font template module 304 includes multiple basic fonts for the user to choose from. In yet another example, the font template module 304 requests basic font information from the user. For example, the font template module can receive an image including one or more characters of an existing font from the user, and the module extracts the font features of one or more characters by processing the image. Then, the module can generate the obtained font through the extracted font attribute features.

[0037] The style application module 306 creates a personalized font based on the personalized parameters and the font template. The font template module creates a personalized font, represented by font 550 (including multiple characters 552a-n; Figure 5A ), which is a simplified representation for illustrative purposes.

[0038] In one example, the style application module 306 feeds a basic font (e.g., font 550; Figure 5A ) through a convolutional neural network (CNN), and samples the network excitation within the neural network architecture at a later stage to obtain the "content". Then, the personalized parameters are fed through the same convolutional neural network, and the network excitation is sampled within the neural network architecture at an early stage (e.g., early to mid-stage). Then, the style application module 306 encodes the excitation of the personalized parameters into a matrix representation (e.g., Gram matrix representation) to obtain the "style". The style application module 306 applies iterative optimization (e.g., gradient descent) through the samples and excitations to synthesize a personalized output font that exhibits the content of the basic font with the style of the personalized parameters applied. Those skilled in the art will understand other techniques for creating personalized fonts using neural style transfer through the description herein.

[0039] The personalized font storage module 308 stores personalized fonts (e.g., in device 110 and / or server 108) for later use. The personalized font storage module can create bitmap fonts or vector fonts. In one example, the fonts are stored in a color font file, which is a regular computer font file that embeds additional data to display more graphical attributes than just the character outline shape. The color font can be stored as Scalable Vector Graphics (SVG) data in an OpenType font file, which can contain vector shapes with colors or gradients and can also include bitmap images. Like any regular font, a color font based on vector glyphs can be resized without losing any content. A color bitmap font, like any other photo- or pixel-based image, will be scaled up appropriately to a certain size according to its original resolution. Letters beyond that resolution may look pixelated. Additionally, if the image used for personalization is much smaller than the font, pixelation may occur.

[0040] Figure 4 Illustrated is a personalized font management engine 400. The personalized font management engine 400 includes a personalized font selection module 402, a personalized font distribution module 404, a personalized font retrieval module 406, and a personalized font display module 408. When executed (e.g., by a processor within device 110 and / or server 108), the modules of the engine 400 use personalized fonts to enable text communication.

[0041] The personalized font selection module 402 selects a personalized font for text communication. In one example, the personalized font selection module 402 presents a plurality of fonts including one or more personalized fonts to the user in response to the user's manual selection request. In another example, the personalized font selection module 402 automatically selects a personalized font in response to the user's previous default recognition.

[0042] The personalized font distribution module 404 distributes personalized font files. In an example, the personalized font distribution module 404 monitors device 110 (e.g., the source device) to identify other devices 110 to which a text communication is being sent or will be sent. The personalized font distribution module 404 can identify the intended recipient of a text message or can identify contacts identified as "friends" in, for example, a social media application. The personalized font distribution module 404 can send a font file including the personalized font to the intended recipient (e.g., for storage and caching and subsequent use when receiving a message from the user device corresponding to the personalized font).

[0043] The personalized font retrieval module 406 retrieves a personalized font for displaying a text communication from a user device corresponding to the personalized font. In an example, the personalized font retrieval module 406 monitors source information (e.g., based on a user identification (ID)) of a received text communication and compares the source information with a database including personalized fonts to identify a match for the user. If a match is identified, the personalized font retrieval module retrieves the personalized font corresponding to the identified match.

[0044] The personalized font display module 408 displays the text communication on the recipient's device in the sender's personalized font. The personalized font display module 408 can display the text communication for the device 110 as shown on the display 200. Figure 2 shown.

[0045] Figure 5A Depicted is a font 500 representing a base font for creating a personalized font. The font 500 includes a plurality of characters 502a-n. Although only capital letters are depicted, it should be understood that the characters can include one or more of capital letters, lowercase letters, special characters, symbols, icons, emojis, etc.

[0046] Figure 5B Depicted is a font 550 representing a personalized font created by applying personalized parameters to the base font. The personalized font 550 includes a plurality of characters 552a-n. Although only capital letters are depicted, it should be understood that the characters can include one or more of capital letters, lowercase letters, special characters, symbols, icons, emojis, etc. Each personalized font includes one or more attributes, which may include non-limiting examples of font, font size, font weight, font color, rotation, texture, design, etc.

[0047] Figure 6A-6D Depicted is a representative example of a feature included in a personalized font. In Figure 6A , the character 600 is a rotated character. The character 600 is depicted with coordinate lines 602 to facilitate identification of the attributes. In Figure 6B , the character 604 is an enlarged character. In Figure 6C , the character 606 is a horizontally elongated and shrunk character.

[0048] In Figure 6D , the character 608 includes multiple features. The character 608 includes a circle increase 610 and a corner increase 612. In the example shown, the character 608 includes a first colored portion 614a and a second colored portion 614b extending over a portion of the character. For example, each colored portion 614 can be the user's In another example, the monochromatic portion 614a can extend over the entire character.

[0049] Figure 7A Depicts a flowchart 700 illustrating example steps for creating a personalized font, Figure 7B and a flowchart 750 illustrating example steps for managing personalized fonts for text communication. These steps are described with reference to the hardware described herein, but are not limited to such embodiments. Although shown as occurring sequentially, Figure 7A and 7B the boxes of can be reordered or implemented in parallel according to the embodiment. Additionally, those skilled in the art will understand from the description herein that one or more steps / boxes can be omitted, and one or more additional / alternative steps can be combined.

[0050] At box 702, a font template is obtained. The font template module 304 can obtain the font template through a database stored in the memory of the device 110 or the server 108.

[0051] At box 704, personalized parameters are received. The personalized parameter module 302 can receive a selection of personalized parameters from the user via a user input device such as a touch screen to identify the personalized parameters.

[0052] At box 706, a personalized font is created through style conversion of an image. The style application module 306 can create a personalized font by applying the personalized parameters to the obtained font template.

[0053] At box 708, the personalized font is stored. The personalized font storage module 308 can store the personalized font in the memory of the client device 110 and / or the server 108.

[0054] Now referring to Figure 7B the flowchart 750, at box 752, a personalized font request is received. The personalized font selection module 402 can receive a personalized font request from the user via a user input device such as a touch screen or a microphone.

[0055] At box 754, the target device is identified. The personalized font allocation module 404 can identify the target device. For example, the personalized font allocation module 404 can monitor a communication application to identify the intended recipient of a message, or can monitor a social media application to identify the "friends" of a user who may be the target device for future text communication.

[0056] At box 756, the personalized font file is shared with the target device. The personalized font allocation module 404 on the sender device can share the personalized font file with the target device directly or through a cloud server (for example).

[0057] At block 758, a font file is stored on the target device. The personalized font allocation module 404 at the target / receiver device may store the personalized font file in a cache for quick retrieval when displaying messages from the sender in the personalized font associated with the sender.

[0058] At block 760, a message is sent to the target device. The communication application may send a message to the target device. The message may include a user ID identifying the sender of the message.

[0059] At block 764, the message is displayed at the target device in the sender's personalized font. The personalized font display module 408 may display the message at the target device in the sender's personalized font, e.g., by comparing the user ID with a list of user IDs that have received personalized fonts and retrieving the personalized font associated with the user ID when a match is identified. The retrieved personalized font may then be used to display the message.

[0060] Figure 8 is a high-level functional block diagram of an exemplary client device 110 that is a mobile device including communication with a server system 108 via a network 102. Elements of a touchscreen-type mobile device 890 are shown, but other non-touch-type mobile devices may also be used. Example touchscreen-type mobile devices that may be used include (but are not limited to) smartphones, personal digital assistants (PDAs), tablet computers, laptop computers, or other portable devices. However, the structure and operation of a touchscreen-type device are provided by way of example, and the subject technology described herein is not intended to be limited thereto. Thus, for discussion, Figure 9 a block diagram of an exemplary mobile device 110 is provided that has a touchscreen display for displaying content and receiving user input as (or in part as) a user interface. The mobile device 890 also includes a camera 870 (e.g., a visible light camera) and a microphone 880. Figure 8 The focus here is on creating and managing personalized fonts. The personalized font creation engine 300 may be stored in the memory 840 for the CPU 830 to create personalized fonts. The personalized font management engine 400 may be stored in the memory 840 for the CPU 830 to manage personalized fonts.

[0061]

[0062] Figure 8 ​​As shown, the mobile device 110 includes at least one digital transceiver (XCVR) 810, shown as a WWAN XCVR, for digital wireless communication via a wide-area wireless mobile communication network 102. The mobile device 110 also includes additional digital or analog transceivers, such as a short-range XCVR 820 for short-range network communication, such as via NFC, VLC, DECT, ZigBee, Bluetooth TM , or Wi-Fi. For example, the short-range XCVR 820 may take the form of any available bi-directional wireless local area network (WLAN) transceiver, the type of which is compatible with one or more standard communication protocols implemented in the wireless local area network, such as an IEEE 802.11 and a Wi-Fi standard under 4G LTE.

[0063] To generate position coordinates for locating the mobile device 890, the mobile device 890 may include a Global Positioning System (GPS) receiver (not shown). Alternatively, or additionally, the mobile device 110 may utilize one or both of the short-range XCVR 820 and the WWAN XCVR 810 to generate position coordinates for positioning. For example, a cellular network, WiFi, or a Bluetooth TM -based positioning system can generate very accurate position coordinates, especially when used in combination. Such position coordinates may be transmitted to the glasses device via the XCVR 820 through one or more network connections.

[0064] The transceivers 810, 820 (network communication interfaces) conform to one or more of the various digital wireless communication standards used in modern mobile networks. Examples of the WWAN transceiver 810 include (but are not limited to) transceivers configured to operate according to Code Division Multiple Access (CDMA) and Third Generation Partnership Project (3GPP) network technologies, such as including but not limited to Third Generation Partnership Project 2 (or 3GPP2) and LTE, sometimes referred to as "4G". For example, the transceivers 810, 820 provide bi-directional wireless information communication, including digitized audio signals, static images and video signals, web page information for display, and inputs related to web pages, and various types of mobile message communication with the mobile device 110 for user identification strategies.

[0065] As previously mentioned, some of these communication types through the transceivers 810, 820 and the network involve protocols and procedures that support communication with the server system 108 to obtain and store friend device capabilities. For example, as Figure 1 shown, such communication may transmit packet data to the server system 108 via the wireless connection of the network 102 through the short-range XCVR 820, or receive packet data from the server system 108. For example, such communication may also be through Figure 1The network shown (e.g., the Internet) 102 transmits data using IP packet data transmission via the WWAN XCVR 810. Both the WWAN XCVR 810 and the short-range XCVR 820 are connected to associated antennas (not shown) through radio frequency (RF) transceiver amplifiers (not shown).

[0066] The mobile device 110 also includes a microprocessor 830, shown as a CPU and sometimes referred to herein as the host controller. A processor is a circuit whose elements are constructed and arranged to perform one or more processing functions, typically various data processing functions. Although discrete logic components can be used, components that form a programmable CPU are used in the example. For example, a microprocessor includes one or more integrated circuit (IC) chips that contain electronic elements that perform the CPU functions. For example, the processor 830 can be based on any known or available microprocessor architecture, such as reduced instruction set computing (RISC) using the ARM architecture, as commonly used in mobile devices and other portable electronic devices today. Other processor circuits can be used to form the CPU 830 or processor hardware in smartphones, laptops, and tablets.

[0067] The microprocessor 830 configures the mobile device to perform various operations, for example, according to instructions or programs executable by the processor 830, thereby acting as a programmable host controller for the mobile device 110. For example, such operations can include various general operations of the mobile device, as well as operations related to performance metric monitoring, personalized fonts, reporting to the server system 108, and gating. Although the processor can be configured by using hardwired logic, typical processors in mobile devices are general processing circuits configured by executing programming.

[0068] The mobile device 110 includes a memory or storage device system for storing data and programming. In the example, the memory system can include flash memory 840A and random access memory (RAM) 840B. The random access memory 840B serves as a short-term memory for instructions and data processed by the processor 830, for example, as a working data processing memory. The flash memory 840A generally provides longer-term storage. The flash memory 840A and / or the random access memory 840B can include a personalized font cache 845 for storing personalized fonts.

[0069] Thus, in the example of the mobile device 110, the flash memory 840A is used to store programs or instructions executed by the processor 830. Depending on the type of device, the mobile device 110 stores and runs a mobile operating system, through which specific applications including application 114 are executed. Examples of mobile operating systems include Google Apple (I-Phone or iPad device), Windows Amazon Fire RIM Operating systems, etc.

[0070] Figure 9 is an illustrative representation of a machine 900, in which instructions 908 (e.g., software, program, application, applet, app, or other executable code) can be executed to cause the machine 900 to perform any one or more of the methods discussed herein. For example, the instructions 908 can cause the machine 900 to perform any one or more of the methods described herein. The instructions 908 transform a general, unprogrammed machine 900 into a particular machine 900 programmed to perform the described and illustrated functions in the manner described. The machine 900 can operate as a stand-alone device or can be coupled (e.g., networked) to other machines. In a networked deployment, the machine 900 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine 900 can include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, set-top boxes (STBs), PDAs, entertainment media systems, cellular telephones, smartphones, mobile devices, wearable devices (e.g., smart watches), smart home devices (e.g., smart appliances), other smart devices, web devices, network routers, network switches, bridges, or any machine capable of executing the instructions 908, which specify actions to be taken by the machine 900. Further, although only a single machine 900 is shown, the term "machine" shall also be taken to include a collection of machines that individually or jointly execute the instructions 908 to perform any one or more of the methods discussed herein.

[0071] The machine 900 can include a processor 902, a memory 904, and input / output components 942, which can be configured to communicate with each other via a bus 944. In an example, the processor 902 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) can include, for example, a processor 906 and a processor 910 that execute the instructions 908. The term "processor" is intended to include multi-core processors that can include two or more independent processors (sometimes referred to as "cores of silicon") that can execute instructions simultaneously. Although Figure 9A plurality of processors 902 are shown, but machine 900 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.

[0072] Memory 904 includes main memory 912, static memory 914, and storage unit 916, all of which are accessible by processors 902 via bus 944. Main memory 904, static memory 914, and storage unit 916 store instructions 908 embodying any one or more of the methods or functions described herein. Instructions 908 may also be present, in whole or in part, within main memory 912, within static memory 914, within machine-readable medium 918 of storage unit 916 (e.g., a non-transitory machine-readable storage medium), within at least one of processors 902 (e.g., within a cache memory of the processor), or in any suitable combination thereof during execution of machine 900.

[0073] Furthermore, machine-readable medium 918 is a non-transitory machine-readable medium (in other words, it does not contain any transient signals) because it does not contain propagating signals. However, labeling machine-readable medium 918 as "non-transitory" should not be construed to mean that the medium cannot be moved; the medium should be considered capable of being transported from one physical location to another. Additionally, since machine-readable medium 918 is tangible, the medium can be a machine-readable device.

[0074] Input / output components 942 may include a variety of components for receiving input, providing output, generating output, sending information, exchanging information, capturing measurements, etc. The specific input / output components 942 included in a particular machine will depend on the type of the machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanisms, while a headless server machine will likely not include such a touch input device. It should be understood that input / output components 942 may include Figure 9Many other components not shown. In various examples, input / output component 942 may include output component 928 and input component 930. Output component 928 may include visual components (e.g., displays such as plasma display panels (PDPs), light emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (e.g., speakers), haptic components (e.g., vibrating motors, resistance mechanisms), other signal generators, and the like. Input component 930 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, optical keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing devices), haptic input components (e.g., physical buttons, touchscreens that provide touch location and force or touch gestures, or other haptic input components), audio input components (e.g., microphones), and the like.

[0075] In further examples, input / output component 942 may include biometric component 932, motion component 934, environmental component 936, or location component 938, as well as a variety of other components. For example, biometric component 932 includes components for detecting expressions (e.g., hand expressions, facial expressions, voice expressions, body postures, or eye tracking), measuring biometric signals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying persons (e.g., voice recognition, retina recognition, facial recognition, fingerprint recognition, or electroencephalogram-based recognition), and the like. Motion component 934 includes acceleration sensor components (e.g., accelerometers), gravity sensor components, rotation sensor components (e.g., gyroscopes), and the like. Environmental component 936 includes, for example, lighting sensor components (e.g., photometers), temperature sensor components (e.g., one or more thermometers that detect ambient temperature), humidity sensor components, pressure sensor components (e.g., barometers), acoustic sensor components (e.g., one or more microphones that detect background noise), proximity sensor components (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors that detect hazardous gas concentrations to ensure safety or measure pollutants in the atmosphere), or other components that may provide indications, measurements, or signals corresponding to the surrounding physical environment. Location component 938 includes location sensor components (e.g., GPS receiver components), altitude sensor components (e.g., altimeters or barometers that detect air pressure and can obtain altitude from air pressure), direction sensor components (e.g., magnetometers), and the like.

[0076] A variety of techniques can be used to implement communication. The input / output component 942 further includes a communication component 940, which can be used to couple the machine 900 to the network 102 and the client device 110 via the couplings 924 and 926 respectively. For example, the communication component 940 can include a network interface component or another suitable device interfacing with the network 102. In a further example, the communication component 940 can include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, components (e.g., low power), components, and other communication components that provide communication in other ways. The device 922 can be another machine or any of a variety of peripheral devices (e.g., a peripheral device coupled via USB).

[0077] In addition, the communication component 940 can detect identifiers, or include components that can be used to detect identifiers. For example: the communication component 940 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes), or an acoustic detection component (e.g., a microphone for identifying tagged audio signals). In addition, various information can be obtained via the communication component 940, such as a location via Internet Protocol (IP) geolocation, a location via signal triangulation, a location via detecting an NFC beacon signal that can indicate a specific location, and so on.

[0078] Various memories (e.g., memory 904, main memory 912, static memory 914, the memory of the processor 902), the storage unit 916 can store one or more sets of instructions and data structures (e.g., software), which embody or are used by any one or more of the methods or functions described herein. When these instructions (e.g., instructions 908) are executed by the processor 902, various operations are enabled to implement the disclosed examples.

[0079] A transmission medium can be used to transmit or receive the instructions 908 over the network 102 via a network interface device (e.g., the network interface component included in the communication component 940) and using any one of a plurality of known transmission protocols (e.g., the Hypertext Transfer Protocol (HTTP)). Similarly, the instructions 908 can be sent or received to / from the device 922 via the coupling 926 (e.g., peer-to-peer coupling).

[0080] Figure 10 FIG. 1000 is a block diagram showing a software architecture 1004 that can be installed on any one or more of the devices described herein. The software architecture 1004 is supported by hardware, such as a machine 1002 that includes a processor 1020, a memory 1026, and input / output components 1038. In this example, the software architecture 1004 can be conceptualized as a stack of layers, where each layer provides a specific function. The software architecture 1004 includes layers such as an operating system 1012, a program library 1010, a framework 1008, and an application 1006. In operation, the application 1006 makes an API call 1050 through the software stack and receives a message 1052 in response to the API call 1050.

[0081] The operating system 1012 manages hardware resources and provides common services. The operating system 1012 includes, for example, a kernel 1014, services 1016, and drivers 1022. The kernel 1014 acts as an abstraction layer between the hardware layer and other software layers. For example, the kernel 1014 provides functions such as memory management, processor management (e.g., scheduling), component management, networking, and security settings. The services 1016 can provide other common services to other software layers. The drivers 1022 are responsible for controlling or interfacing with the underlying hardware. For example, the drivers 1022 may include a display driver, a camera driver, or a low-power driver, a flash memory driver, a serial communication driver (e.g., a universal serial bus (USB) driver), a driver, an audio driver, a power management driver, etc.

[0082] The library 1010 provides a low-level general infrastructure used by the application 1006. The library 1010 may include a system library 1018 (e.g., the C standard library), which provides functions such as memory allocation functions, string processing functions, mathematical functions, etc. In addition, the library 1010 may include an API library 1024, such as a media library (e.g., a library that supports the rendering and manipulation of various media formats such as Moving Picture Experts Group-4 (MPEG4), High Efficiency Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (JPEG or JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., the OpenGL framework for rendering graphic content in two-dimensional (2D) and three-dimensional (3D) forms on a display), a database library (e.g., SQLite that provides various relational database functions), a web library (e.g., WebKit that provides web browsing functions), etc. The library 1010 may also include a variety of other libraries 1028 to provide many other APIs to the application 1006.

[0083] The framework 1008 provides a high-level general infrastructure used by the application 1006. For example, the framework 1008 provides various Graphical User Interface (GUI) functions, advanced resource management, and advanced location services. The framework 1008 may provide a wide range of other APIs that the application 1006 can use, some of which may be specific to a particular operating system or platform.

[0084] In the example, the application 1006 may include a home page application 1036, a contacts application 1030, a browser application 1032, an e-book reader application 1034, a location application 1042, a media application 1044, a messaging application 1046, a game application 1048, and a variety of other applications, such as third-party applications 1040. The application 1006 is a program that executes the functions defined in the program. One or more applications 1006 can be created using various programming languages and constructed in various ways, such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or programming languages (e.g., C or assembly language). In a specific example, a third-party application 1040 (e.g., an application developed using an ANDROID TM or IOS TM software development kit (SDK)) can be an application on IOS TM 、ANDROID TM 、 Mobile software running on mobile operating systems such as Phone (e.g., IOS) or other mobile operating systems. In this example, the third-party application 1040 can call the API call 1050 provided by the operating system 1012 to facilitate the functions described herein.

[0085] It should be understood that, unless otherwise specifically defined herein, the terms and expressions used herein have the general meanings ascribed to such terms and expressions in their respective relevant fields of investigation. Relative terms such as "first" and "second" may be used solely to distinguish one entity or action from another, without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms "comprise", "comprises", "including", "include", "contains", "containing", or any other variant thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises or includes a series of elements or steps does not include only those elements or steps but may also include other elements or steps not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element preceded by "a" or "an" does not exclude the presence of additional identical elements in the process, method, article, or apparatus that includes the element.

[0086] In addition, in the foregoing detailed description, it can be seen that, for the purpose of simplifying the present disclosure, various features are combined in various examples. This method of disclosure should not be construed as reflecting an intention that the claimed examples require more features than those expressly recited in each claim.

[0087] On the contrary, as reflected in the following claims, the subject matter to be protected does not lie in all the features of any single disclosed example. Therefore, the following claims are hereby incorporated into the detailed description, with each claim standing on its own as a separately claimed subject matter.

[0088] The examples shown herein should be described in sufficient detail to enable those skilled in the art to practice the disclosed teachings. Other examples may be used and other examples may be derived therefrom, so as to make structural and logical substitutions and changes without departing from the scope of the present disclosure. Therefore, the detailed description should not be construed in a limiting sense, and the scope of various examples is defined only by the appended claims and the full scope of equivalents of those claims.

[0089] The following description will in part elaborate on other purposes, advantages, and novel features of the examples. Such other purposes, advantages, and novel features will be apparent to those skilled in the art after reviewing the following and the drawings, or may be learned by making or operating the examples. The purposes and advantages of the subject matter may be realized and attained by the methods, means, and combinations particularly pointed out in the appended claims.

Claims

1. A personalized font system, the system comprises: a user interface configured to receive instructions from a user; a personalized font creation engine including a font template module and a style application module, the font template module including a plurality of basic fonts; a memory; a processor coupled to the memory; and instructions stored in the memory which, when executed by the processor, configure the processor to: receive a selection of one of the plurality of basic fonts by presenting the plurality of basic fonts from the font template module to the user, and designate the selected one of the plurality of fonts as the obtained font template in response to the selection to obtain a font template; receive at least one personalized parameter of the user; apply, by the personalized font creation engine, the at least one personalized parameter to one of the selected plurality of basic fonts designated as the font template using the style application module to create a personalized font for the user, wherein the style application module feeds one of the selected plurality of basic fonts designated as the font template through a convolutional neural network (CNN) and samples a first network excitation in a first stage to obtain content, feeds the at least one personalized parameter through the CNN, samples a second network excitation in a second stage earlier than the first stage, encodes the second network excitation of the at least one personalized parameter into a matrix representation to obtain a style, and uses the first and second network excitations for iterative optimization to synthesize the personalized font, the personalized font displaying the content of one of the selected plurality of basic fonts with the style of the at least one personalized parameter applied; and store the personalized font in the memory.

2. The system according to claim 1, wherein the instructions stored in the memory, when executed by the processor, further configure the processor to: identify at least one target device for a text message from the user; share the personalized font with the at least one target device; and send the text message from the user to the at least one target device for the at least one target device to display in the personalized font of the user.

3. The system according to claim 2, further comprising a target device including a cache, a second processor, and a display, wherein the second processor is configured to: store the personalized font in the cache of the at least one target device; receive the text message from the user through the at least one target device; retrieve the personalized font from the cache of the at least one target device in response to receiving the text message; and display the text message on the display of the at least one target device in the personalized font of the user.

4. The system according to claim 1, wherein the at least one personalized parameter is an image selected by the user.

5. The system according to claim 4, wherein the user selects the image using a mobile device having a camera, and the instructions further configure the processor to: Capture the image using the camera of the mobile device.

6. The system according to claim 1, wherein the style application module is a neural style transfer module.

7. A personalized font method, the method comprising: Receiving a selection of one of the plurality of basic fonts by presenting the plurality of basic fonts to a user, and designating, in response to the selection, one of the plurality of basic fonts of the selection as an obtained font template to obtain a font template; Receiving at least one personalized parameter of the user; Applying the at least one personalized parameter to one of the plurality of basic fonts of the selection designated as the font template using a style transfer method to create a personalized font for the user, wherein applying the at least one personalized parameter includes feeding one of the plurality of basic fonts of the selection designated as the font template through a convolutional neural network (CNN), sampling a first network excitation in a first stage to obtain content, feeding the at least one personalized parameter through the CNN, sampling a second network excitation in a second stage earlier than the first stage, encoding the second network excitation of the at least one personalized parameter as a matrix representation to obtain a style, and using the first and second network excitations for iterative optimization to synthesize the personalized font, the personalized font displaying the content of one of the plurality of basic fonts of the selection with the style of the at least one personalized parameter applied; and Storing the personalized font.

8. The method according to claim 7, further comprising: Identifying at least one target device for a text message from the user; Sharing the personalized font with the at least one target device; and Sending the text message from the user to the at least one target device for the at least one target device to display in the personalized font of the user.

9. The method according to claim 8, further comprising: Storing the personalized font in a cache of the at least one target device; Receiving the text message from the user through the at least one target device; Retrieving the personalized font from the cache of the at least one target device in response to receiving the text message; and Displaying the text message through the at least one target device in the personalized font of the user.

10. The method according to claim 7, wherein the at least one personalized parameter is an image selected by the user.

11. The method according to claim 10, wherein the user selects the image using a mobile device having a camera, and the method further comprising: Capturing the image using the camera of the mobile device.

12. The method according to claim 7, wherein the style transfer method is a neural style transfer method.

13. A non - transitory computer - readable medium storing program code that, when executed, causes an electronic processor to perform the following steps: Receive a selection of one of the plurality of base fonts by presenting the plurality of base fonts to a user, and in response to the selection, specify the selected one of the plurality of base fonts as an obtained font template to obtain a font template; Receive at least one personalized parameter from the user; Apply the at least one personalized parameter to the selected one of the plurality of base fonts designated as the font template using a style - transfer method to create a personalized font for the user, wherein applying the at least one personalized parameter includes feeding the selected one of the plurality of base fonts designated as the font template through a convolutional neural network (CNN) and sampling a first network excitation in a first stage to obtain content, feeding the at least one personalized parameter through the CNN and sampling a second network excitation in a second stage earlier than the first stage, encoding the second network excitation of the at least one personalized parameter into a matrix representation to obtain style, and using the first and second network excitations for iterative optimization to synthesize the personalized font, the personalized font showing the content of the selected one of the plurality of base fonts with the style of the at least one personalized parameter applied; And Store the personalized font.

14. The non - transitory computer - readable medium according to claim 13, wherein when the program code is executed, the processor is further caused to perform the following steps: Identify at least one target device for a text message from the user; Share the personalized font with the at least one target device; and Send the text message from the user to the at least one target device for the at least one target device to display in the user's personalized font.

15. The non - transitory computer - readable medium according to claim 13, wherein the style - transfer method is a neural style - transfer method.

Citation Information

Patent Citations

  • Chinese character font migration system based on adversarial networks

    CN107577651A

  • Method for creating individual font and mobile device using thereof

    KR101204615B1

  • Method and apparatus for communication based on personal font

    KR1020170051929A